Skip to content

fix: raise the Python floor to 3.14 - #9

Merged
catinspace-au merged 1 commit into
mainfrom
fix/python-floor-314
Sep 22, 2026
Merged

catinspace-au merged 1 commit into
mainfrom
fix/python-floor-314

Conversation

@catinspace-au

Copy link
Copy Markdown
Contributor

Part of moving the whole suite to 3.14. The owner's rule: any part of the suite still on 3.12 moves.

  • requires-python goes >=3.12 -> >=3.14
  • .python-version follows to 3.14. Left at 3.12 it contradicts the floor and uv refuses the environment -- this repo is the only one of the three with that file
  • uv.lock re-resolved under CPython 3.14.4. 86 packages, and no package dropped -- the 517 removed lines are all cp311/cp312/cp313 wheel rows, confirmed by git diff uv.lock | rg "^-name = " returning nothing. That includes the compiled sets, numpy and scikit-learn
  • the mypy python_version comment said "Matches minimum supported version", which the floor bump made false. Reworded rather than left wrong

Four analysis pins deliberately stay on 3.12: ruff target-version, mypy python_version, ty python-version and vermin targets. That matches scalo-py and hyperi-ci. At py314 the ruff formatter strips the parentheses from multi-exception except clauses (PEP 758). hyperi-ci has a sharper reason than we do -- it loads version_source.py by path with an older interpreter before any install -- but holding the whole suite at one static-analysis level beats splitting it per repo.

.hyperi-ci.yaml carries no Python version and there is no Dockerfile, so nothing else in this repo pins one.

NOT verified: nothing was installed or imported under 3.14. The lock resolving cleanly with every compiled dependency is the evidence here; CI is what proves it runs.

Note scalo-py #28 is still open -- the suite is not actually on 3.14 until that lands.

Done when CI is green.

3.14 is the current stable line and the suite moves off 3.12 together.

- requires-python is now >=3.14
- .python-version follows it to 3.14; left at 3.12 it contradicts the floor
  and uv refuses the environment
- uv.lock re-resolved under CPython 3.14.4: 86 packages, and NO package
  dropped. The 517 removed lines are all cp311/cp312/cp313 wheel rows,
  including the compiled numpy and scikit-learn sets
- the mypy python_version comment claimed it matched the minimum supported
  version, which the floor bump made false

ruff target-version, mypy python_version, ty python-version and vermin
targets all stay on 3.12 deliberately, matching scalo-py and hyperi-ci. At
py314 the ruff formatter strips the parentheses from multi-exception except
clauses (PEP 758), so the suite holds one static-analysis level rather than
splitting it per repo.
@catinspace-au
catinspace-au merged commit 8dd2ce9 into main Sep 22, 2026
15 checks passed
@catinspace-au
catinspace-au deleted the fix/python-floor-314 branch September 22, 2026 05:05
@github-actions

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant