ci: drop Python 3.10 from CI matrix and minimum version (#240)#242
Merged
Conversation
Python 3.10 reaches end-of-life in October 2026 (~5 months out from today, 2026-05-14). Drop it from both the CI matrix and the pyproject.toml floor in a single change so the package doesn't claim support for a version we no longer test. - python-package.yml: matrix is now ["3.11", "3.12", "3.13", "3.14"]. - pyproject.toml: python = ">=3.10" → ">=3.11", tool.ruff.target-version = "py310" → "py311". `ruff check --fix` produced no changes — the codebase was already using modern syntax (PEP 604 unions, `from __future__ import annotations`, etc.), so the target-version bump unlocks future rule additions without rewriting anything today. Side benefit: removes the smallest-window-of-wheel-availability risk on transient ruff/dependency releases (3.10 takes the longest to get wheels published for new versions; #241's CI flake earlier today showed this). Closes #240.
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.
Summary
Closes #240. Python 3.10 reaches EOL in October 2026 (~5 months from now). This PR drops it from both the CI matrix and `pyproject.toml`'s minimum, so the package doesn't claim support for a version we no longer test against.
Changes
What
ruff check --fixdidNothing. The codebase was already using modern syntax (PEP 604 unions like `X | None`, `from future import annotations` everywhere, no `typing.Optional` or `typing.Union` left), so bumping the target version unlocks future rule additions but doesn't rewrite anything today. Net diff: 3 insertions, 3 deletions across 2 files.
Why bundle pyproject + workflow in one PR
If we dropped 3.10 from CI but left `python = ">=3.10"` in pyproject, the package would still claim to support a version we no longer test — and a 3.10-specific regression could land silently. Either drop both, or drop neither.
Side benefit
The smallest matrix entry was contributing to today's earlier transient CI failure on #241 (ruff 0.15.13 was published with wheels for 3.12/3.14 but not yet for 3.10/3.11/3.13). Dropping 3.10 doesn't fix that class of issue entirely, but it does shrink the matrix by 20% which means one fewer chance of hitting a partial-wheel-rollout edge case.
Test plan
🤖 Generated with Claude Code