Skip to content

feat: require Python 3.12 in PyAutoNerves - #143

Merged
Jammy2211 merged 2 commits into
mainfrom
feature/python-312-floor
Jul 29, 2026
Merged

feat: require Python 3.12 in PyAutoNerves#143
Jammy2211 merged 2 commits into
mainfrom
feature/python-312-floor

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Summary

Require Python 3.12 or newer in PyAutoNerves as Phase 1A of the ecosystem-wide Python-floor migration. The package now advertises 3.12/3.13 support, drops obsolete Python and pathlib compatibility metadata, preserves the existing JAX caps while removing tautological markers, and clearly distinguishes unsupported older interpreters from experimental newer ones.

API Changes

No public Python symbols or signatures changed. Packaging and runtime compatibility behaviour changed: installers now reject Python below 3.12, and the import-time version warning distinguishes unsupported <3.12 from experimental >3.13 interpreters while retaining the YAML bypass.
See full details below.

Test Plan

  • Python 3.12: 154 passed
  • Python 3.13 isolated environment: 154 passed
  • Downstream suites: PyAutoFit 1559 passed, 1 skipped; PyAutoArray 930 passed; PyAutoGalaxy 1009 passed; PyAutoLens 488 passed
  • Six-workspace curated smoke gate: 62 passed, 0 failed, 3 intentionally skipped
  • Clean wheel metadata: Requires-Python: >=3.12; JAX/JAXLIB <0.11 and jaxnnls==1.0.1 preserved without Python markers; no pathlib dependency
  • Independent review-faculty verdict: CLEAN

Validation checklist (--auto run — plan was not pre-approved)

  • Effective level: safe (header: supervised, cap: feature medium → safe)
  • Plan: on issue feat: require Python 3.12 in PyAutoNerves #142, written at start and unmodified since
  • Gate: tests PASS (154 on 3.12 + 154 on 3.13; 3986 downstream with 1 skip) · smoke PASS (62/62 runnable, 3 intentional skips) · review CLEAN · Heart YELLOW within the exact launch acknowledgement
  • Human: plan sound in hindsight?
  • Human: diff matches plan (no scope creep)?
  • Human: merge, amend, or reject — then log the outcome
Full API Changes (for automation & release notes)

Removed

  • Python 3.9, 3.10, and 3.11 package classifiers.
  • The PyPI pathlib backport dependency; pathlib is part of the supported Python standard library.
  • Redundant python_version >= '3.11' markers from the JAX optional dependencies.

Changed Behaviour

  • The autonerves distribution now declares Requires-Python: >=3.12.
  • autonerves._emit_python_version_warning() reports Python below 3.12 as unsupported and Python above 3.13 as experimental.
  • The existing version.python_version_check: false configuration bypass remains unchanged.
  • JAX constraints remain jax>=0.7.0,<0.11.0, jaxlib>=0.7.0,<0.11.0, and jaxnnls==1.0.1.

Migration

  • Upgrade Python 3.9-3.11 environments to Python 3.12 or 3.13.
  • Environments that cannot upgrade should pin the last compatible PyAutoNerves release, 2026.7.27.1.

Generated by the PyAutoLabs agent workflow.

@Jammy2211 Jammy2211 added the pending-release PR queued for the next release build label Jul 28, 2026
@Jammy2211
Jammy2211 merged commit a9bf456 into main Jul 29, 2026
4 checks passed
@Jammy2211
Jammy2211 deleted the feature/python-312-floor branch July 30, 2026 17:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending-release PR queued for the next release build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant