Overview
Python 3.14's blocker is fixed and merged (PyAutoFit#1439 / PyAutoFit#1437 — forkserver default start method; the previously-failing factor-graph tutorial completes end-to-end on 3.14.4). This task performs the promotion follow-ups so 3.14 is tested and advertised: required CI matrix legs, classifiers, and the import-time banner.
Plan
- PyAutoHands
python_matrix.yml: promote 3.14 into the required unit matrix and the workspace smoke matrix; delete the now-redundant non-required experimental_python_314 job; drop allow-prereleases.
- Add the
Programming Language :: Python :: 3.14 classifier to PyAutoNerves, PyAutoArray, PyAutoFit, PyAutoGalaxy, PyAutoLens (requires-python >=3.12 unchanged).
- PyAutoNerves: add
(3, 14) to _RECOMMENDED_PYTHON_VERSIONS so 3.14 stops warning as experimental; derive the banner's supported-version strings from the constant.
- Evidence:
workflow_dispatch the python matrix after merge and confirm the 3.14 legs are green.
Detailed implementation plan
Affected Repositories
- PyAutoHands (primary — matrix)
- PyAutoNerves (classifier + banner), PyAutoArray, PyAutoFit, PyAutoGalaxy, PyAutoLens (classifiers)
Branch Survey
| Repository |
Current Branch |
Dirty? |
| ./PyAutoHands |
main (current) |
clean |
| ./PyAutoNerves |
main (current) |
clean |
| ./PyAutoArray |
main (current) |
clean |
| ./PyAutoFit |
main (current, incl. #1439) |
clean |
| ./PyAutoGalaxy |
main (current) |
clean |
| ./PyAutoLens |
main (current) |
clean |
Suggested branch: feature/py314-promotion
Implementation Steps
PyAutoHands/.github/workflows/python_matrix.yml: python-version: ['3.12', '3.13', '3.14'] in the required unit matrix and the workspace smoke matrix; remove the experimental_python_314 job and its explanatory comment; remove allow-prereleases: true.
- Five
pyproject.tomls: add "Programming Language :: Python :: 3.14" after the 3.13 classifier.
PyAutoNerves/autonerves/__init__.py: _RECOMMENDED_PYTHON_VERSIONS = {(3, 12), (3, 13), (3, 14)}; replace the hardcoded "3.12 and 3.13" / "3.12 or 3.13" / "3.12/3.13" strings with strings derived from the sorted constant. Update any banner unit tests in test_autonerves.
- Per-repo PRs (
pending-release on the five libraries); PyAutoHands PR plain.
- Post-merge: dispatch
python_matrix.yml, confirm 3.14 unit + smoke legs green; report.
Key Files
PyAutoHands/.github/workflows/python_matrix.yml
PyAuto{Nerves,Array,Fit,Galaxy,Lens}/pyproject.toml
PyAutoNerves/autonerves/__init__.py
Original Prompt
Click to expand starting prompt
See PyAutoMind/draft/feature/libraries/python_314_promotion.md — original request: "do all follow ups now" (follow-ups from PyAutoFit#1437/#1439, merged 2026-07-31).
Overview
Python 3.14's blocker is fixed and merged (PyAutoFit#1439 / PyAutoFit#1437 — forkserver default start method; the previously-failing factor-graph tutorial completes end-to-end on 3.14.4). This task performs the promotion follow-ups so 3.14 is tested and advertised: required CI matrix legs, classifiers, and the import-time banner.
Plan
python_matrix.yml: promote 3.14 into the required unit matrix and the workspace smoke matrix; delete the now-redundant non-requiredexperimental_python_314job; dropallow-prereleases.Programming Language :: Python :: 3.14classifier to PyAutoNerves, PyAutoArray, PyAutoFit, PyAutoGalaxy, PyAutoLens (requires-python >=3.12unchanged).(3, 14)to_RECOMMENDED_PYTHON_VERSIONSso 3.14 stops warning as experimental; derive the banner's supported-version strings from the constant.workflow_dispatchthe python matrix after merge and confirm the 3.14 legs are green.Detailed implementation plan
Affected Repositories
Branch Survey
Suggested branch:
feature/py314-promotionImplementation Steps
PyAutoHands/.github/workflows/python_matrix.yml:python-version: ['3.12', '3.13', '3.14']in the required unit matrix and the workspace smoke matrix; remove theexperimental_python_314job and its explanatory comment; removeallow-prereleases: true.pyproject.tomls: add"Programming Language :: Python :: 3.14"after the 3.13 classifier.PyAutoNerves/autonerves/__init__.py:_RECOMMENDED_PYTHON_VERSIONS = {(3, 12), (3, 13), (3, 14)}; replace the hardcoded "3.12 and 3.13" / "3.12 or 3.13" / "3.12/3.13" strings with strings derived from the sorted constant. Update any banner unit tests intest_autonerves.pending-releaseon the five libraries); PyAutoHands PR plain.python_matrix.yml, confirm 3.14 unit + smoke legs green; report.Key Files
PyAutoHands/.github/workflows/python_matrix.ymlPyAuto{Nerves,Array,Fit,Galaxy,Lens}/pyproject.tomlPyAutoNerves/autonerves/__init__.pyOriginal Prompt
Click to expand starting prompt
See
PyAutoMind/draft/feature/libraries/python_314_promotion.md— original request: "do all follow ups now" (follow-ups from PyAutoFit#1437/#1439, merged 2026-07-31).