Skip to content

feat: align build and install checks with Python 3.12 #206

Description

@Jammy2211

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions