Skip to content

Add actionable Python and pyserial preflight checks - #219

Open
BanjoR wants to merge 1 commit into
DCC-EX:mainfrom
BanjoR:codex/ex-installer-preflight
Open

BanjoR wants to merge 1 commit into
DCC-EX:mainfrom
BanjoR:codex/ex-installer-preflight

Conversation

@BanjoR

@BanjoR BanjoR commented Aug 16, 2026 •

Copy link
Copy Markdown

Scope This PR is a bounded preflight improvement for the Python-run EX-Installer path: - Check for Python 3.10 or newer before importing GUI dependencies. - Check that the serial module supplied by pyserial is importable before startup, and print the exact recovery command when it is missing. - Document venv setup and the supported Python minimum. - Add isolated regression tests for supported/unsupported Python versions, missing pyserial, combined failures, and formatted output. Explicitly out of scope: - A broad dependency-pin rewrite or an unverified claim that every Python 3.13/3.14 package combination installs successfully. - Rebuilding or replacing packaged binaries. - Changes to upload protocols, product configuration, firmware, hardware behavior, or unrelated application modules. - Physical hardware validation or treating the fork as approval to merge. ## Issue and PR context - Issue #208 reports a missing serial module during Linux ESP32 upload; the source requirements already list pyserial, so this makes the missing runtime dependency actionable before the GUI loads. - Issue #216 reports installation problems with Python 3.13.5; this PR enforces and documents the existing Python 3.10 minimum without claiming unverified dependency compatibility. - This PR supersedes the incomplete dependency/README-only approach in PR #214. PR #214 remains open and is not being closed or modified by this PR. ## Verified local results - PASS - bundled Python unittest discover -s tests -v: 4 tests passed. - PASS - no-write AST/compile audit: all 28 tracked Python files compiled successfully. - PASS - git diff --check. - PASS - introduced-line length check against the repository's 120-character configuration. - PASS - bundled Python 3.12.13 pip check: no broken requirements found. - PASS - python -m ex_installer --help launcher smoke test exited 0. - PASS - final diff contains exactly README.md, ex_installer/main.py, ex_installer/preflight.py, and tests/test_preflight.py; worktree is clean. - NOTICE - the no-write compile audit reports two pre-existing invalid-escape warnings in ex_installer/ex_commandstation.py and ex_installer/file_manager.py; neither file is changed here. ## Validation limits - PASS - bundled Python 3.12.13 compileall with PYTHONPYCACHEPREFIX redirected to a writable temporary cache compiled ex_installer and tests successfully; the checkout remained clean. - N/A - flake8 and ruff are not installed in the bundled runtime. - N/A - repository-root unittest discover found no tests; the repository's available suite is under tests and passes with the explicit command above. - N/A - no current fork Actions run exists for this exact head, so there is no hosted application check to report. Required checks could not be independently established because the branch-protection status endpoint returned 404. - NOT RUN - no hardware is available. Maintainer bench criteria for hardware follow-up: in a clean supported-Python virtual environment, install requirements.txt, connect a supported DCC-EX/ESP32 device, launch EX-Installer, reach Compile and Load, and verify that startup/upload proceeds without a missing serial-module error; record OS, Python version, device/USB serial identity, and the resulting log. The PR is ready for maintainer review and is not ready for merge.

Current exact-head CI status

N/A — No BanjoR fork Actions run exists for exact head 6d83dc3151de282fccece101c242277f57db661e; no hosted code-test result is claimed. Local validation above is the available evidence.

@github-actions github-actions Bot added the EX-Installer Item relates to EX-Installer label Aug 16, 2026
@BanjoR
BanjoR force-pushed the codex/ex-installer-preflight branch from e2604a1 to 6d83dc3 Compare August 16, 2026 12:19
@BanjoR
BanjoR marked this pull request as ready for review August 17, 2026 09:29

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

EX-Installer Item relates to EX-Installer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant