Overview
Align PyAutoHands' scheduled Python census and PyAutoHeart's deep install verification with the ecosystem's newly merged Python 3.12 floor. Required evidence must cover 3.12 and 3.13, Python 3.11 must prove an exact floor release is rejected, and Python 3.14 must remain isolated, visible, and non-required while its known factor-graph regression is outstanding.
This is Phase 2 of the coordinated Python-floor campaign. It changes build and health verification only; it does not publish, yank, tag, or release any package.
Plan
- Reduce required scheduled library and workspace coverage to Python 3.12 and 3.13, removing obsolete below-floor conditionals and support claims.
- Add a distinct, non-required Python 3.14 evidence leg that reports failures without weakening the required 3.12/3.13 jobs.
- Rewrite deep install Check B around the new contract: same exact target succeeds on 3.12/3.13 and is rejected by package metadata on 3.11.
- Add focused regression coverage for the matrix and rejection semantics, then update adjacent help/comments/documentation.
- Run both repository suites, shell/YAML validation, the full manually dispatched scheduled matrix, and install verification without performing a release.
Detailed implementation plan
Work Classification
Library workflow across two organism repositories: PyAutoHands (primary) and PyAutoHeart.
Affected Repositories
- PyAutoHands (primary)
- PyAutoHeart
Branch Survey
| Repository |
Current Branch |
Dirty? |
./PyAutoHands |
main |
unrelated untracked run_logs/; tracked tree clean and equal to origin/main |
./PyAutoHeart |
main |
clean and equal to origin/main; clean campaign worktree already exists at merged Phase 4 head |
The existing python-312-floor campaign owns PyAutoHeart, so this is a same-task continuation rather than a cross-task worktree conflict. PyAutoHands will be attached in the isolated campaign root; its unrelated main-checkout run_logs/ will not be touched.
Suggested branch: feature/python-312-floor
Worktree root: /home/jammy/Code/PyAutoLabs/.codex-worktrees/python-312-floor/
Implementation Steps
- In
PyAutoHands/.github/workflows/python_matrix.yml, set required unit-test and workspace-smoke matrices to exactly Python 3.12 and 3.13. Remove the obsolete 3.11-only JAX branch and old 3.9–3.11 support/banner summary.
- Add an explicitly experimental Python 3.14 job in the same workflow. Keep it isolated from required jobs, run from clean setup-python environments, use
continue-on-error, retain per-library visibility, and report its result separately so it cannot turn required failures green.
- Add or extend PyAutoHands tests (under
tests/) to pin the required version lists, the isolated 3.14 contract, and the absence of stale below-floor support wording. Parse the workflow rather than relying only on grep where practical.
- In
PyAutoHeart/heart/checks/verify_install.sh, replace Check B's 3.9/3.10/3.11 successful-import and soft-banner behavior. Resolve or accept one exact target version, require that target to install/import on 3.12 and 3.13, and require Python 3.11 pip to reject that exact target specifically because of Requires-Python >=3.12. Treat an unexpected success, a network/index error, or an unrelated resolver failure as FAIL rather than a false expected rejection.
- Update
PyAutoHeart/tests/test_verify_install_script.py with fast contract tests for supported-version wiring, exact-target reuse, expected-rejection classification, help text, and removal of banner assertions. Update adjacent workflow comments and docs/release_validation.md where Check B's meaning is described.
- Validate with
bash -n, YAML parsing/action structure checks, the full PyAutoHands and PyAutoHeart test suites on supported interpreters, and a manually dispatched python_matrix.yml run on the feature branch. Exercise Check B end to end against an exact floor artifact available without publication; the authoritative TestPyPI exact-wheel proof remains the coordinated Phase 3 rehearsal.
- Build immutable review commits, obtain formal ReviewSurface and local Claude Opus 5 CLEAN judgments, refresh Heart, and ship separate pending-release PRs. Merge only exact reviewed heads after all checks are green under the standing human authorization; do not release or close issues.
Key Files
PyAutoHands/.github/workflows/python_matrix.yml — scheduled required and experimental Python evidence.
PyAutoHands/tests/ — workflow contract regression coverage.
PyAutoHeart/heart/checks/verify_install.sh — deep install-path contract and result reporting.
PyAutoHeart/tests/test_verify_install_script.py — fast install-check surface tests.
PyAutoHeart/.github/workflows/workspace-validation.yml — release-rehearsal Check B comments/caller contract if needed.
PyAutoHeart/docs/release_validation.md — exact-wheel verification description if needed.
Original Prompt
Click to expand starting prompt
Python 3.12 floor — Phase 2: build and health verification
Type: feature
Target: PyAutoHands
Difficulty: large
Autonomy: supervised
Priority: high
Status: formalised
Parent: python_312_ecosystem_floor.md
Depends on: python_312_floor_phase_1_core.md
Scope
Align @PyAutoHands and @PyAutoHeart with the core floor: required 3.12/3.13
coverage, explicit 3.11 install rejection, and a clean isolated non-required
3.14 evidence leg. Remove old 3.9-3.11 success/banner assertions and duplicated
matrix work without weakening release/install gates.
Gates
Full scheduled matrix and end-to-end install verification pass, and a fresh
Heart verdict contains no new campaign-attributable RED reason.
Overview
Align PyAutoHands' scheduled Python census and PyAutoHeart's deep install verification with the ecosystem's newly merged Python 3.12 floor. Required evidence must cover 3.12 and 3.13, Python 3.11 must prove an exact floor release is rejected, and Python 3.14 must remain isolated, visible, and non-required while its known factor-graph regression is outstanding.
This is Phase 2 of the coordinated Python-floor campaign. It changes build and health verification only; it does not publish, yank, tag, or release any package.
Plan
Detailed implementation plan
Work Classification
Library workflow across two organism repositories: PyAutoHands (primary) and PyAutoHeart.
Affected Repositories
Branch Survey
./PyAutoHandsmainrun_logs/; tracked tree clean and equal toorigin/main./PyAutoHeartmainorigin/main; clean campaign worktree already exists at merged Phase 4 headThe existing
python-312-floorcampaign owns PyAutoHeart, so this is a same-task continuation rather than a cross-task worktree conflict. PyAutoHands will be attached in the isolated campaign root; its unrelated main-checkoutrun_logs/will not be touched.Suggested branch:
feature/python-312-floorWorktree root:
/home/jammy/Code/PyAutoLabs/.codex-worktrees/python-312-floor/Implementation Steps
PyAutoHands/.github/workflows/python_matrix.yml, set required unit-test and workspace-smoke matrices to exactly Python 3.12 and 3.13. Remove the obsolete 3.11-only JAX branch and old 3.9–3.11 support/banner summary.continue-on-error, retain per-library visibility, and report its result separately so it cannot turn required failures green.tests/) to pin the required version lists, the isolated 3.14 contract, and the absence of stale below-floor support wording. Parse the workflow rather than relying only on grep where practical.PyAutoHeart/heart/checks/verify_install.sh, replace Check B's 3.9/3.10/3.11 successful-import and soft-banner behavior. Resolve or accept one exact target version, require that target to install/import on 3.12 and 3.13, and require Python 3.11 pip to reject that exact target specifically because ofRequires-Python >=3.12. Treat an unexpected success, a network/index error, or an unrelated resolver failure as FAIL rather than a false expected rejection.PyAutoHeart/tests/test_verify_install_script.pywith fast contract tests for supported-version wiring, exact-target reuse, expected-rejection classification, help text, and removal of banner assertions. Update adjacent workflow comments anddocs/release_validation.mdwhere Check B's meaning is described.bash -n, YAML parsing/action structure checks, the full PyAutoHands and PyAutoHeart test suites on supported interpreters, and a manually dispatchedpython_matrix.ymlrun on the feature branch. Exercise Check B end to end against an exact floor artifact available without publication; the authoritative TestPyPI exact-wheel proof remains the coordinated Phase 3 rehearsal.Key Files
PyAutoHands/.github/workflows/python_matrix.yml— scheduled required and experimental Python evidence.PyAutoHands/tests/— workflow contract regression coverage.PyAutoHeart/heart/checks/verify_install.sh— deep install-path contract and result reporting.PyAutoHeart/tests/test_verify_install_script.py— fast install-check surface tests.PyAutoHeart/.github/workflows/workspace-validation.yml— release-rehearsal Check B comments/caller contract if needed.PyAutoHeart/docs/release_validation.md— exact-wheel verification description if needed.Original Prompt
Click to expand starting prompt
Python 3.12 floor — Phase 2: build and health verification
Type: feature
Target: PyAutoHands
Difficulty: large
Autonomy: supervised
Priority: high
Status: formalised
Parent:
python_312_ecosystem_floor.mdDepends on:
python_312_floor_phase_1_core.mdScope
Align @PyAutoHands and @PyAutoHeart with the core floor: required 3.12/3.13
coverage, explicit 3.11 install rejection, and a clean isolated non-required
3.14 evidence leg. Remove old 3.9-3.11 success/banner assertions and duplicated
matrix work without weakening release/install gates.
Gates
Full scheduled matrix and end-to-end install verification pass, and a fresh
Heart verdict contains no new campaign-attributable RED reason.