chore: drop Python 3.9 from CI matrix and pyproject#22
Conversation
📝 WalkthroughWalkthroughProject minimum Python version is raised from 3.9 to 3.10 across package metadata, classifiers, mypy type-checking, and CI test matrix. Python 3.9 is removed from all test targets and declared supported versions. ChangesPython 3.10 Minimum Version Requirement
🎯 1 (Trivial) | ⏱️ ~3 minutes
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
pyproject.toml (1)
84-84: ⚡ Quick winAlign Ruff's
target-versionwith the Python 3.10 baseline.Ruff is configured with
target-version = "py39"(line 77) whilerequires-python = ">=3.10"andpython_version = "3.10"are both set to 3.10. This mismatch causes Ruff's lint and upgrade behavior to target an older Python version than declared.Proposed change
[tool.ruff] line-length = 100 -target-version = "py39" +target-version = "py310"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@pyproject.toml` at line 84, Ruff's configured target-version ("py39") doesn't match the declared Python baseline (requires-python = ">=3.10" and python_version = "3.10"); update the Ruff configuration key target-version to "py310" so Ruff's linting and upgrade rules align with the project's Python 3.10 baseline (look for the target-version setting in the pyproject.toml alongside requires-python and python_version).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@pyproject.toml`:
- Line 84: Ruff's configured target-version ("py39") doesn't match the declared
Python baseline (requires-python = ">=3.10" and python_version = "3.10"); update
the Ruff configuration key target-version to "py310" so Ruff's linting and
upgrade rules align with the project's Python 3.10 baseline (look for the
target-version setting in the pyproject.toml alongside requires-python and
python_version).
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 6a1c84a2-dba6-4192-b810-cd938bee437e
📒 Files selected for processing (2)
.github/workflows/ci.ymlpyproject.toml
Python 3.9 reached upstream end-of-life on 2025-10-31. Recent test framework releases (pytest 9.0+) have dropped 3.9 support, which is currently blocking the routine pytest update PR (#21) on the 3.9 leg of the matrix while the other four Python versions pass cleanly.
Changes: drop 3.9 from the workflow matrix, bump requires-python to >=3.10, bump mypy python_version to 3.10, remove the Python 3.9 trove classifier.
Effect on users: pip continues to install older releases of pipelock-verify on Python 3.9 environments via standard requires-python resolution. New releases require Python 3.10 or newer.
After this merges, #21 can be force-merged (its tests will now skip the 3.9 leg that no longer exists in the matrix), or closed in favor of letting Renovate re-propose the pytest bump under the new 10-day cooldown policy.
Summary by CodeRabbit