Skip to content

Require Python 3.11, which the dependencies already do - #33

Merged
timlichtenberg merged 2 commits into
mainfrom
tl/drop-python-310
Aug 24, 2026
Merged

Require Python 3.11, which the dependencies already do#33
timlichtenberg merged 2 commits into
mainfrom
tl/drop-python-310

Conversation

@timlichtenberg

Copy link
Copy Markdown
Member

Description

ZEPHYRUS declared support for Python 3.10 that its own dependencies no longer honour. At their newest releases numpy requires 3.12 or newer, and both matplotlib and fwl-mors require 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-mors from 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 tomllib import 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 grep over 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 2024 fwl-mors since February 2025, anyone on it would have been broken for months already.

Checklist

  • I have followed the contributing guidelines
  • My code follows the style guidelines of this project
  • I have performed a self-review of my code
  • My changes generate no new warnings or errors
  • I have checked that the tests still pass on my computer
  • I have updated the docs, as appropriate
  • I have added tests for these changes, as appropriate
  • I have checked that all dependencies have been updated, as required

Relevant people

@nichollsh

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.
Copilot AI lite review requested due to automatic review settings August 8, 2026 19:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 (tomllib fallback).
  • 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 EmmaPostolec left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me for merging, thanks for doing this Tim!

@timlichtenberg
timlichtenberg merged commit b48b6c3 into main Aug 24, 2026
5 checks passed
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.

3 participants