Skip to content

Drop Python 3.9 (EOL); require patched pytest 9.x (v2.4.0) - #71

Merged
jedymatt merged 1 commit into
mainfrom
chore/drop-python-3.9
Jul 4, 2026
Merged

Drop Python 3.9 (EOL); require patched pytest 9.x (v2.4.0)#71
jedymatt merged 1 commit into
mainfrom
chore/drop-python-3.9

Conversation

@jedymatt

@jedymatt jedymatt commented Jul 4, 2026

Copy link
Copy Markdown
Owner

Summary

Python 3.9 reached end-of-life on 2025-10-05 and no longer receives CPython security fixes. pytest 9.x already dropped 3.9, which left the 3.9 test environment pinned to pytest 8.4.2 — the version flagged by GHSA-6w46-j5rx-g56g (vulnerable tmpdir handling), with no fix available for 3.9 (the patch, 9.0.3, requires Python ≥3.10).

Raising the floor to Python 3.10 makes every supported runtime resolve to patched pytest 9.x, removing the vulnerable pin from uv.lock and clearing the Dependabot alert.

Changes

  • requires-python = ">=3.10" and dropped the Python :: 3.9 trove classifier.
  • Removed 3.9 from the CI test matrix and switched the min deps job's floor interpreter to 3.10.
  • Pinned pytest>=9.0.3 in the dev group (replacing the temporary per-version marker workaround); uv.lock now resolves a single patched pytest 9.1.1 instead of the 8.4.2 / 9.1.1 split.
  • Bumped version to 2.4.0.

Verification

  • Full suite: 90 passing.
  • Min-deps floor re-checked on Python 3.10 with --resolution lowest-direct (SQLAlchemy 2.0.0 floor): 90 passing.
  • The vulnerable pytest==8.4.2 pin no longer appears in uv.lock.

Resolves the open Dependabot alert (GHSA-6w46-j5rx-g56g).

🤖 Generated with Claude Code

Python 3.9 reached end-of-life on 2025-10-05 and no longer receives CPython
security fixes. pytest 9.x already dropped it, which left the 3.9 test
environment stuck on pytest 8.4.2 — the version flagged by GHSA-6w46-j5rx-g56g
(tmpdir handling), with no fix available for 3.9.

Raise the floor to Python 3.10 so every supported runtime resolves to patched
pytest 9.x, clearing the advisory. Bump requires-python and the trove
classifier, drop 3.9 from the CI matrix and the min-deps job, pin
pytest>=9.0.3, and bump the version to 2.4.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jedymatt
jedymatt merged commit 8a8a29b into main Jul 4, 2026
16 checks passed
@jedymatt
jedymatt deleted the chore/drop-python-3.9 branch July 4, 2026 15:24
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.

1 participant