Skip to content

feat: require Python 3.12 in PyAutoCTI #100

Description

@Jammy2211

Overview

Adopt Python 3.12 as PyAutoCTI's minimum as the independent-package slice of the ecosystem migration. This updates the package contract and living installation documentation without changing CTI behavior, the archival paper, or PyAutoCTI's separate resurrection/release cadence.

Plan

  • Raise package metadata and classifiers to Python 3.12/3.13.
  • Update the living installation page to state the supported interpreter range.
  • Preserve the JOSS paper, historical traceback material, dependency constraints, and the documented arcticpy==2.6 installation path.
  • Validate the complete suite and built wheel metadata on Python 3.12 and 3.13.
  • Ship an isolated pending-release PR; merge and release remain human/readiness gated.
Detailed implementation plan

Affected Repositories

  • PyAutoCTI (primary)

Branch Survey

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

Suggested branch: feature/python-312-floor

Implementation Steps

  1. In pyproject.toml, change requires-python from >=3.9 to >=3.12 and remove the 3.9, 3.10, and 3.11 classifiers, retaining 3.12 and 3.13.
  2. In docs/installation/overview.rst, replace the stale 3.9-3.12 claim with an explicit Python 3.12/3.13 support statement.
  3. Do not edit paper/paper.md: it is an archival JOSS surface. Leave the Python 3.8 paths in the historical Numba traceback unchanged.
  4. Build a clean wheel and inspect its METADATA for Requires-Python: >=3.12 and only the intended classifiers.
  5. Run test_autocti/ on Python 3.12 and 3.13. Install arcticpy==2.6 only via the documented --no-build-isolation --no-deps route so validation cannot downgrade NumPy.
  6. Run the autonomous ship gate and open a pending-release PR if tests, review, smoke/metadata evidence, and the acknowledged Heart set all pass.

Key Files

  • pyproject.toml — package floor and classifiers.
  • docs/installation/overview.rst — living installation support claim.
  • paper/paper.md — explicitly archival and out of scope.
  • docs/installation/numba.rst — historical traceback, explicitly out of scope.

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 was present at launch. Any new reason invalidates this acknowledgement.

Original Prompt

Click to expand starting prompt

Python 3.12 floor — Phase 4A: PyAutoCTI

Type: feature
Target: PyAutoCTI
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 PyAutoCTI package metadata and classifiers to Python 3.12/3.13 and update its living installation claim. Preserve the archival JOSS paper and historical traceback examples. Validate the full suite on both supported Python versions, including the repository's documented arcticpy==2.6 installation constraint.

Gates

  • Built metadata reports Requires-Python: >=3.12 and only 3.12/3.13 Python classifiers.
  • The full PyAutoCTI suite passes on Python 3.12 and 3.13.
  • The release stays independent of the five-package core release and remains behind PyAutoCTI's resurrection/readiness gate.

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