Drop Python 3.11, declare and test up to Python 3.14 - #686
Conversation
MridulS
commented
Jul 31, 2026
- Require Python >= 3.12 in all packages (pixi pin, requires-python, classifiers, copier answers, workflow pins) and re-lock
- Declare Python 3.14 support in classifiers and copier max_python
- Bump minimum scipp to 26.7.0
- Nightly: run latest-dependencies on 3.12/3.13/3.14 and add a free-threaded 3.14t job; essnmx is excluded (bitshuffle re-enables the GIL) as is essdiffraction (numba aborts in dask worker threads)
- Unify uv at 0.12.0 across nightly jobs
- Require Python >= 3.12 in all packages (pixi pin, requires-python, classifiers, copier answers, workflow pins) and re-lock - Declare Python 3.14 support in classifiers and copier max_python - Bump minimum scipp to 26.7.0 - Nightly: run latest-dependencies on 3.12/3.13/3.14 and add a free-threaded 3.14t job; essnmx is excluded (bitshuffle re-enables the GIL) as is essdiffraction (numba aborts in dask worker threads) - Unify uv at 0.12.0 across nightly jobs
With requires-python >= 3.12 ruff enforces the PEP 695 type keyword for TypeAlias annotations. These aliases cannot use the type keyword: sciline needs the concrete generic alias at runtime, and PEP 695 aliases are lazily evaluated TypeAliasType objects. Use plain assignments instead, which ruff accepts and which keep the runtime objects unchanged. Also drop the invalid bare-prefix noqa directive in essspectroscopy; it suppressed nothing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Re-ran copier update for each package (pinned to its recorded template commit, with min_python=3.12 max_python=3.14) instead of relying on the manual edits. Copier's output confirmed the .copier-answers.yml contents byte-for-byte and caught one thing the manual edit missed: the tox environment in docs/developer/getting-started.md still said py311. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| @@ -2,8 +2,8 @@ | |||
| _commit: 024a41b | |||
There was a problem hiding this comment.
Maybe I missed something but we do we still have copier answers? I thought we were not using copier in the monorepo?
There was a problem hiding this comment.
We still have copier.yml lying around, I am happy to remove copier.yml files here if we have fully decided on not using copier in the monorepo. I am not sure if we had a final decision here? cc @YooSunYoung
|
|
||
| ```sh | ||
| tox -e py311 | ||
| tox -e py312 |
There was a problem hiding this comment.
This documentation seems out of date? We no longer use tox. Left over from copier?
| "graphviz>=0.20", | ||
| "sciline>=25.11.0", | ||
| "scipp>=26.3.1", | ||
| "scipp>=26.7.0", |
There was a problem hiding this comment.
What was the reason for the scipp version bump?
There was a problem hiding this comment.
I don't actually remember, I think there was some local failure with py314 scipp build but I can't reproduce the failure anymore. I'll revert.