Skip to content

feat: promote Python 3.14 to supported (matrix, classifiers, banner) #219

Description

@Jammy2211

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

  1. 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.
  2. Five pyproject.tomls: add "Programming Language :: Python :: 3.14" after the 3.13 classifier.
  3. 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.
  4. Per-repo PRs (pending-release on the five libraries); PyAutoHands PR plain.
  5. 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).

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