Skip to content

ci: drop Python 3.10 from CI matrix and minimum version (#240)#242

Merged
Olen merged 1 commit into
mainfrom
fix/drop-python-3.10
May 14, 2026
Merged

ci: drop Python 3.10 from CI matrix and minimum version (#240)#242
Olen merged 1 commit into
mainfrom
fix/drop-python-3.10

Conversation

@Olen
Copy link
Copy Markdown
Owner

@Olen Olen commented May 14, 2026

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

  • `.github/workflows/python-package.yml` — matrix becomes `["3.11", "3.12", "3.13", "3.14"]`.
  • `pyproject.toml` — `python = ">=3.10"` → `">=3.11"`, `tool.ruff.target-version` = `"py310"` → `"py311"`.

What ruff check --fix did

Nothing. 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

  • Local `pytest` — 23 tests pass
  • Local `ruff check` — clean (target now `py311`)
  • Local `ruff format --check` — clean
  • Local `ruff check --fix` — no changes proposed (code already modern enough)
  • CI: 4-version matrix green
  • Merge order: this PR first, then rebase docs+fix: expand docstrings, sanitise AuthenticationError message #241 on top to pick up the 4-version matrix

🤖 Generated with Claude Code

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.
@Olen Olen merged commit 9dbbaa0 into main May 14, 2026
7 checks passed
@Olen Olen deleted the fix/drop-python-3.10 branch May 14, 2026 13:51
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.

Drop Python 3.10 from CI matrix and minimum supported version

1 participant