-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
[py] Support Python 3.14 and drop Python 3.9 #16342
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: trunk
Are you sure you want to change the base?
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
No issues if the CI passes with 3.10, which it does, there seems to be a minor issue with docs and mypy CI, it is looking for python 3.1 instead of 3.10. |
I agree w/ @navin772, as long as we can fully support the next up I'd like to keep us from supporting anything not supported by the Python project. To answer your question directly though, I am not aware of any issues w/ dropping 3.9 specifically. |
Fixed. I'll merge this in a few days after 3.14 is officially released. |
User description
💥 What does this PR do?
This PR adds support for the upcoming Python 3.14 release (expected 10/7/2025): https://docs.python.org/3.14/whatsnew/3.14.html
This PR also drops support for Python 3.9. This version is officially EOL as of 10/31/2025. Some of our dependencies have already dropped support for 3.9 and it is becoming problematic to continue supporting it.
This PR also changes the default version of Python we use in CI to 3.10 and updates all Python dependencies for testing and packaging.
I am marking this as a draft until the official release. Hopefully Bazel's
rules_python
will be updated soon (https://github.com/bazel-contrib/rules_python) to support this.💡 Additional Considerations
We only run tests in CI against the oldest supported Python version, so someone should run all tests locally with 3.14 to make sure all tests and dependencies work fine before merging this.
🔄 Types of changes
PR Type
Enhancement
Description
Add Python 3.14 support to Bazel toolchain configuration
Update package metadata and classifiers for Python 3.14
Modify Python version requirement from ~=3.9 to >=3.9
Diagram Walkthrough
File Walkthrough
MODULE.bazel
Add Python 3.14 Bazel toolchain support
MODULE.bazel
BUILD.bazel
Update wheel classifiers for Python 3.14
py/BUILD.bazel
pyproject.toml
Update Python version requirements and classifiers
py/pyproject.toml