Skip to content

fix(install): require python3 3.11+ in preflight - #181

Merged
42piratas merged 1 commit into
4242labs:mainfrom
alexwbend:fix/installer-python-version-preflight
Aug 14, 2026
Merged

fix(install): require python3 3.11+ in preflight#181
42piratas merged 1 commit into
4242labs:mainfrom
alexwbend:fix/installer-python-version-preflight

Conversation

@alexwbend

Copy link
Copy Markdown
Contributor

What & why

The installer's preflight checks that git and python3 exist, but not which Python. The engine reads workflow.toml with tomllib, stdlib only from 3.11 — so this adds the version to the same preflight block, in the same have … || die style.

On Ubuntu 22.04 LTS (ships 3.10) or macOS system Python (3.9) the installer today reports success:

✓ TRON 0.4.3 installed.

and the first tron start then dies far from the cause, inside a module the user has never opened:

File ".../engine/workflow.py", line 18, in <module>
    import tomllib
ModuleNotFoundError: No module named 'tomllib'

After, it fails at the gate with the fix named, before anything is cloned or symlinked:

✗ python3 is 3.10 — TRON needs 3.11 or newer (the engine reads workflow.toml
with tomllib). Install Python 3.11+ and re-run.

The minimum isn't recorded anywhere today — Getting Started's Requirements says "python3 and git" — so the header comment now carries it next to the check that enforces it.

Notes:

  • Placed inside the existing preflight block so the ordering rule holds: refuse before touching the filesystem. Nothing is cloned or linked on the failure path.
  • PY_VER falls back to ? if python3 -c cannot run at all, so the message is never blank.
  • The || die form is safe under set -eu — POSIX ignores -e for any command of an AND-OR list other than the last, so a failing probe routes to die rather than exiting mute.
  • Behaviour on a supported Python is unchanged.

Source of truth touched?

  • engine/workflow.tomlpython3 engine/workflow.py --write (docs/WORKFLOW.md) + python3 engine/bpmn.py --write (workflow/)
  • engine/glossary.py--write (docs/GLOSSARY.md)
  • engine/events.py--write (docs/EVENTS.md)
  • N/A — no generated artifact affected

Checklist

  • Full selftest suite passes locally (engine/*.py, evaluation/harness.py --selftest)
  • Least-necessary change; matches the surrounding code
  • Docs/comments updated where behaviour changed

Verified both arms on this branch: sh -n install.sh clean; the gate fires on a real 3.10 and exits 1 before cloning; with a python3 reporting 3.12 the install runs through to ✓ TRON 0.4.3 installed. unchanged. No selftest or CI job reads install.sh, and the file mode stays 100755.

@42piratas
42piratas force-pushed the fix/installer-python-version-preflight branch from 82de04f to d9e7812 Compare August 14, 2026 17:28
@42piratas
42piratas force-pushed the fix/installer-python-version-preflight branch from d9e7812 to 8fc287a Compare August 14, 2026 17:46
@42piratas
42piratas merged commit ff27d50 into 4242labs:main Aug 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants