Overview
Coordinate the five-package core release that publishes the already-merged Python 3.12 floor in dependency order. This phase does not add source changes: it locks exact main SHAs, records the pre-floor fallback releases, runs the release rehearsal/integration gates after authorization, and verifies the published metadata on both sides of the floor.
Manual release execution is human-required. TestPyPI/PyPI uploads, tags, and the final release will not be dispatched until the human chooses the version and explicitly authorizes this release.
Plan
- Record the current unyanked PyPI releases that Python 3.11 can continue to resolve.
- Lock and verify clean synchronized main SHAs for PyAutoNerves, PyAutoArray, PyAutoFit, PyAutoGalaxy, and PyAutoLens.
- Obtain the human version choice and explicit authorization for the coordinated manual release.
- After authorization, run the full Stage 0-3 release validation: preflight, unit evidence, TestPyPI rehearsal, exact-wheel workspace integration, ingest, and Heart verdict.
- Require Heart GREEN for release; do not carry the development YELLOW acknowledgement into a release.
- Delegate packaging/tagging/publication to the Build/Hands release path in dependency order.
- Verify published wheels install on Python 3.12/3.13, reject the new exact release on 3.11, and preserve the recorded older unyanked fallback. Do not yank usable historical wheels.
Detailed release plan
Current PyPI fallback census (2026-07-29)
| Distribution |
Last compatible unyanked release |
Current Requires-Python |
| autoconf |
2026.7.15.1 |
>=3.9 |
| autoarray |
2026.7.29.1 |
>=3.9 |
| autofit |
2026.7.29.1 |
>=3.9 |
| autogalaxy |
2026.7.29.1 |
>=3.9 |
| autolens |
2026.7.29.1 |
>=3.9 |
These versions remain usable Python 3.11 fallback candidates after newer releases declare >=3.12.
Exact source heads
| Repository |
Main SHA |
State |
| PyAutoNerves |
a9bf45612ecdf53abb586def7e5635ac7d84872d |
clean, equals origin/main |
| PyAutoArray |
41c55a44f50ad3966591dd6317c59dd55beac7ba |
clean, equals origin/main |
| PyAutoFit |
241f2d69c4d8d0d1df19765431caacfcc3468da9 |
clean, equals origin/main |
| PyAutoGalaxy |
b9d9927fae6b8b3359764f51c512fc2852a78793 |
clean, equals origin/main |
| PyAutoLens |
b40fb0ba6281eb868151f76226f5420a08ba44e7 |
clean, equals origin/main |
Affected repositories
- PyAutoHands (primary release executor)
- PyAutoHeart (release validation and verdict)
- PyAutoNerves
- PyAutoArray
- PyAutoFit
- PyAutoGalaxy
- PyAutoLens
Branch survey
This is a release of already-merged code. No feature branch is proposed; every package must be built from the exact clean main heads above.
Implementation and validation steps
- Refresh Heart and run the Release Agent Stage 0/1 preflight without dispatch.
- Ask for the coordinated version/minor choice and explicit release authorization.
- Only after that authorization, dispatch the TestPyPI rehearsal and capture exact artifacts and commit SHAs.
- Dispatch Heart release-mode workspace validation against the exact TestPyPI version.
- Ingest rehearsal and integration artifacts; require a fresh Heart GREEN verdict.
- Invoke the Build release door with the chosen version. No force on YELLOW or RED.
- Check PyPI JSON/wheel metadata, supported installs, below-floor rejection, and Python 3.11 fallback behavior.
- Record results in PyAutoMind and this issue. Issue closure remains a separate human action.
Key files and workflows
- PyAutoHands .github/workflows/release.yml
- PyAutoHands pre_build.sh
- PyAutoHeart .github/workflows/workspace-validation.yml
- PyAutoHeart heart/checks/verify_install.sh
- PyAutoBrain release validate / release door
Original Prompt
Click to expand starting prompt
Python 3.12 floor — Phase 3: coordinated core release
Recheck PyPI last-compatible unyanked versions, obtain the human version choice, pass fresh Heart/pre-build gates, and release PyAutoNerves, PyAutoArray, PyAutoFit, PyAutoGalaxy, and PyAutoLens coherently. Verify the published wheels reject Python 3.11 and install on 3.12/3.13. Do not yank usable historical wheels. Record every unyanked pre-floor fallback that pip can still select so Phase 6 describes rollback behavior accurately rather than promising a hard resolution error.
Overview
Coordinate the five-package core release that publishes the already-merged Python 3.12 floor in dependency order. This phase does not add source changes: it locks exact main SHAs, records the pre-floor fallback releases, runs the release rehearsal/integration gates after authorization, and verifies the published metadata on both sides of the floor.
Manual release execution is human-required. TestPyPI/PyPI uploads, tags, and the final release will not be dispatched until the human chooses the version and explicitly authorizes this release.
Plan
Detailed release plan
Current PyPI fallback census (2026-07-29)
These versions remain usable Python 3.11 fallback candidates after newer releases declare >=3.12.
Exact source heads
Affected repositories
Branch survey
This is a release of already-merged code. No feature branch is proposed; every package must be built from the exact clean main heads above.
Implementation and validation steps
Key files and workflows
Original Prompt
Click to expand starting prompt
Python 3.12 floor — Phase 3: coordinated core release
Recheck PyPI last-compatible unyanked versions, obtain the human version choice, pass fresh Heart/pre-build gates, and release PyAutoNerves, PyAutoArray, PyAutoFit, PyAutoGalaxy, and PyAutoLens coherently. Verify the published wheels reject Python 3.11 and install on 3.12/3.13. Do not yank usable historical wheels. Record every unyanked pre-floor fallback that pip can still select so Phase 6 describes rollback behavior accurately rather than promising a hard resolution error.