Skip to content

feat: require Python 3.12 in PyAutoHeart #113

Description

@Jammy2211

Overview

Adopt Python 3.12 as PyAutoHeart's own package minimum in the independent-package slice of the ecosystem campaign. This deliberately excludes Heart's release/install verification matrix, whose old-version success paths are owned by campaign Phase 2.

Plan

  • Raise PyAutoHeart package metadata to Python 3.12 and declare 3.12/3.13 support.
  • Leave runtime checks and readiness behavior unchanged.
  • Preserve every 3.9-3.11 install/banner reference for the coordinated Phase 2 rewrite rather than partially changing that contract here.
  • Validate Heart's full suite and built wheel metadata on Python 3.12 and 3.13.
  • Ship a pending-release PR if all autonomous gate legs pass; merge remains human-only.
Detailed implementation plan

Affected Repositories

  • PyAutoHeart (primary)

Work Classification

Library/package maintenance. PyAutoHands is not modified in this slice despite the prompt's campaign folder; build/release matrix work remains Phase 2.

Branch Survey

Repository Current Branch Dirty? Ahead/behind origin/main
PyAutoHeart main clean 0/0

Suggested branch: feature/python-312-floor

Worktree root: /home/jammy/Code/PyAutoLabs/.codex-worktrees/python-312-floor

Implementation Steps

  1. In pyproject.toml, change requires-python from >=3.10 to >=3.12.
  2. Add explicit Programming Language :: Python :: 3.12 and 3.13 classifiers; no older classifiers currently exist.
  3. Confirm the direct package/development census. AGENTS.md and Heart's living docs do not currently claim an older minimum, so do not add unnecessary prose.
  4. Explicitly leave bin/pyauto-heart, heart/checks/verify_install.sh, and skills/verify_install/verify_install.md unchanged: their Python 3.9-3.11 success/banner behavior is the coordinated Phase 2 scope.
  5. Build a clean wheel and inspect METADATA for Requires-Python: >=3.12 and the 3.12/3.13 classifiers.
  6. Run tests/ on Python 3.12 and 3.13, then apply review and Heart gates before PR-open.

Key Files

  • pyproject.toml — Heart's own package floor and supported classifiers.
  • heart/checks/verify_install.sh — Phase 2 owner, explicitly unchanged.
  • skills/verify_install/verify_install.md — Phase 2 contract, explicitly unchanged.

Autonomy / Heart launch acknowledgement

This is a supervised task running under the user-authorized queue/--auto contract. The acknowledged Heart YELLOW launch set is:

  1. workspace validation not passing (13 failed, 2026-07-21T19-05-22Z)
  2. 33 stale parked script(s)
  3. manifest drift: tenant firewall (organ code) — 6 mismatch(es) vs PyAutoMind/repos.yaml
  4. release validation stale: source moved since rehearsal (PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens)

No RED condition is present after fast-forwarding three clean canonical library checkouts that were one commit behind origin/main. Any new Heart reason invalidates this acknowledgement.

Original Prompt

Click to expand starting prompt

Python 3.12 floor — Phase 4C: PyAutoHeart

Type: feature
Target: PyAutoHeart
Difficulty: medium
Autonomy: supervised
Priority: normal
Status: formalised

Parent: python_312_floor_phase_4_independent.md

Original request

Ok, lets remove support for anything below python3.12, do a census to make sure we simplify requriements, build server, testing, etc. Also make sure all docs are updated.

Scope

Raise PyAutoHeart's own package metadata, classifiers, contributor contract, and living documentation to Python 3.12/3.13. Keep the core release/install matrix rewrite in campaign Phase 2; this slice only updates Heart's package and direct development surface, with tests on both supported Python versions.

Gates

  • Built metadata reports Requires-Python: >=3.12 with 3.12/3.13 classifiers.
  • The full PyAutoHeart suite passes on Python 3.12 and 3.13.
  • No release-verification behavior from Phase 2 is duplicated or weakened.

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