-
Notifications
You must be signed in to change notification settings - Fork 548
chore: drop Python 3.9 support ahead of October 2025 EOL #1426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
Python 3.9 reaches end-of-life on October 5, 2025. Remove support across: - CI/CD workflows (GitHub Actions, GitLab CI) - Testing configurations (tox.ini) - Development containers - Documentation and requirements
3f1ee6b
to
043fdcb
Compare
Documentation preview |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
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 drops Python 3.9 support ahead of its October 2025 End-of-Life date and updates the minimum Python requirement to 3.10. The changes ensure all project configurations, CI workflows, and documentation reflect the new Python version requirements of 3.10-3.13.
- Updated Python version ranges from 3.9-3.12/3.13 to 3.10-3.13 across all configurations
- Removed Python 3.9 from CI/CD test matrices and build configurations
- Updated documentation to reflect the new minimum Python requirement
Reviewed Changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
tox.ini | Updated test environment list and pyenv install commands to exclude Python 3.9 |
pyproject.toml | Removed Python 3.9 classifier and updated dependency version constraints |
docs/getting-started/installation-guide.md | Updated software requirements to specify Python 3.10+ |
README.md | Updated Python version requirements in main documentation |
CONTRIBUTING.md | Updated development setup requirements to Python 3.10+ |
.pre-commit-config.yaml | Updated commented pylint language version reference |
.gitlab-ci.yml | Removed Python 3.9 test job |
.github/workflows/*.yml | Removed Python 3.9 from test matrices across all GitHub Actions workflows |
.devcontainer/devcontainer.json | Updated Python version comment to reflect new supported versions |
.devcontainer/Dockerfile | Updated Python version options comment |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! I did a quick grep and there aren't any references to 3.9 remaining.
Not needed for this PR, but FYI did a check with pyupgrade to remove deprecated syntax from Python 3.9 in the codebase:
$ find . -name '*.py' -exec pyupgrade --py310-plus {} +
There were 177 modified files. I spot-checked a few files and the updates were all to type syntax, for example using list
instead of List
, dict
instead of Dict
, and typeA | typeB
rather than Optional[TypeA, TypeB]
. I can address these in the ongoing type-cleaning PRs after the release.
Summary
https://peps.python.org/pep-0596/
Files Changed