Require Python 3.11, which the dependencies already do - #33
Merged
Conversation
The package floor rises to 3.11 and both 3.10 legs leave the check matrix. On 3.10 the resolver can only reach years-old releases of the core dependencies, numpy at its newest needs 3.12 and matplotlib and fwl-mors need 3.11, so a 3.10 install assembles a stack none of the current code is developed or tested against, and the matrix legs were exercising that stack rather than protecting it. With the floor at 3.11 the interpreter guard at the top of the cache-key tests and the tomllib import fallback in the test workflow are dead code and are removed; tomllib is stdlib from 3.11. The ruff target and the installation and test documentation say 3.11 as well. The dependency pins themselves are unchanged.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR raises ZEPHYRUS’s minimum supported Python version to 3.11, aligning the project’s declared support and CI/test tooling with the effective floors already imposed by core dependencies (notably fwl-mors / matplotlib) and removing Python 3.10-specific compatibility workarounds.
Changes:
- Bump declared support floor to Python >= 3.11 (packaging metadata + ruff target).
- Remove Python 3.10 legs from CI and simplify CI tooling that existed only for 3.10 (
tomllibfallback). - Remove the Python 3.10-only skip logic in the nightly cache key tests and update docs/instructions to match the new floor.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/test_nightly_data_cache.py | Removes the Python 3.10 interpreter skip now that 3.10 is no longer supported/CI-tested. |
| pyproject.toml | Updates requires-python to >=3.11 and ruff target-version to py311. |
| docs/How-to/run_tests.md | Updates the documented CI matrix to Python 3.11–3.12. |
| docs/How-to/installation.md | Updates installation prerequisites to Python ≥ 3.11. |
| .github/workflows/tests.yaml | Drops Python 3.10 from the matrix and removes the 3.10-only tomllib fallback. |
| .github/copilot-instructions.md | Updates project language/runtime statements and prerequisites to Python 3.11+. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
EmmaPostolec
approved these changes
Aug 17, 2026
EmmaPostolec
left a comment
Member
There was a problem hiding this comment.
Looks good to me for merging, thanks for doing this Tim!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
ZEPHYRUS declared support for Python 3.10 that its own dependencies no longer honour. At their newest releases
numpyrequires 3.12 or newer, and bothmatplotlibandfwl-morsrequire 3.11 or newer, the last of those since February 2025. So a 3.10 install has for months resolved a 2024 version of three core dependencies, and the two 3.10 legs of the check matrix have been exercising a stack nobody runs.That is not hypothetical. It is why the nightly cache work went red on those legs earlier: 3.10 could only reach an
fwl-morsfrom before the Spada record accessor existed, so tests that read it failed on an interpreter where the feature cannot work at all.The floor moves to 3.11, both 3.10 legs come out of the matrix, and the pieces that existed only to keep 3.10 working go with them: the version-keyed skip in the cache-key tests, and the
tomllibimport fallback, which is stdlib from 3.11 onwards. The documented floors and the ruff target follow.Validation of changes
The reduced matrix is green on all four remaining legs, ubuntu and macOS against 3.11 and 3.12. A
git grepover the whole tree finds no remaining reference to 3.10 in any text file, including the project instructions, which had three. No issue in this repository has ever mentioned 3.10, and since a fresh 3.10 install has resolved a 2024fwl-morssince February 2025, anyone on it would have been broken for months already.Checklist
Relevant people
@nichollsh