Skip to content

feat: require Python 3.12 in PyAutoNerves #142

Description

@Jammy2211

Overview

Adopt Python 3.12 as PyAutoNerves' minimum supported version, beginning the
dependency-ordered PyAuto ecosystem migration. Remove obsolete dependency
markers while preserving behavior-driven caps, and retain a clear warning for
experimental Python 3.14 use.

Plan

  • Require Python 3.12 and advertise support for 3.12/3.13.
  • Simplify JAX requirements without changing their version constraints.
  • Retarget the import-time warning for unsupported/experimental versions.
  • Add focused warning tests and update the contributor contract.
  • Validate tests and built package metadata on Python 3.12 and 3.13.
Detailed implementation plan

Affected Repositories

  • PyAutoNerves (primary)

Branch Survey

Repository Current Branch Dirty?
PyAutoNerves main clean

Suggested branch: feature/python-312-floor

Implementation Steps

  1. Update pyproject.toml:

    • Set requires-python = ">=3.12".
    • Remove Python 3.9-3.11 classifiers.
    • Remove the now-tautological Python markers from jax, jaxlib, and
      jaxnnls.
    • Preserve jax>=0.7.0,<0.11.0, jaxlib>=0.7.0,<0.11.0, and
      jaxnnls==1.0.1.
  2. Update autonerves/__init__.py:

    • Keep the version-warning mechanism and configuration bypass.
    • Remove the unreachable Python <3.11 JAX guidance.
    • Distinguish unsupported Python <3.12 from experimental Python >3.13.
    • Keep version.python_version_check and the containing version: block.
  3. Add test_autonerves/test_python_version.py:

    • Verify 3.12/3.13 produce no warning.
    • Verify 3.11 reports the unsupported floor.
    • Verify 3.14 reports experimental status.
    • Verify the YAML bypass remains effective.
  4. Update AGENTS.md to state requires-python >=3.12.

  5. Validate:

    • Full PyAutoNerves suite on Python 3.12 and 3.13.
    • Built metadata contains Requires-Python: >=3.12.
    • JAX requirements are unmarked but retain their existing caps.

Key Files

  • pyproject.toml
  • autonerves/__init__.py
  • test_autonerves/test_python_version.py
  • AGENTS.md

Out of Scope

JAX 0.11, Python 3.14 support, downstream manifests, Hands/Heart matrices,
release execution, workspaces, and archival documentation.

Original Prompt

Click to expand starting prompt

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.

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