Using datas to include modules/ caused stdlib imports (json etc.) to fail
at runtime. Adding modules/ to pathex lets PyInstaller properly analyse
and compile them into the bundle alongside the rest of the stdlib.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Discard response body with --output NUL and capture HTTP status code
via --write-out to avoid curl failing on connection reset after upload.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces upload-artifact with a curl PUT to the generic registry.
Each build is versioned by run number (e.g. es24n-conf-windows/42/es24n_conf.exe).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Builds on every push to main and on release publication.
Uploads the artifact on every build; attaches es24n_conf.exe
directly to any published release.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- serial_port.py: replace termios/fcntl/select with pyserial wrapper,
same SerialPort interface preserved for all other modules
- workflow_serial.py: detect_serial_device() uses serial.tools.list_ports
to enumerate COM ports; removes _fix_permissions() (not needed on Windows);
multi-device table now shows port description
- es24n_conf.py: enable VT/ANSI colour mode on Windows 10+ via ctypes;
update docstring for Windows edition
- requirements.txt: pyserial >= 3.5, pyinstaller >= 6.0
- es24n_conf.spec: PyInstaller single-file .exe spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Starting point for Windows packaging. Serial backend will be replaced
with pyserial; PyInstaller used to produce a standalone .exe.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>