Repository navigation
infra: bump minimum supported Python version to Python 3.11 - #4170
Conversation
could we just focus on just deprecating python 3.10 in this pr? It's easier to review 1 change instead of 2 |
| @@ -562,15 +550,6 @@ | |||
There was a problem hiding this comment.
This is related to Arrow. Do we know what the lower bound is of Arrow supporting Python 3.11?
There was a problem hiding this comment.
I'll open another PR for pyarrow changes to keep this PR strictly related to the Python version bump, we can discuss there, does that work?
@kevinjqliu fair take, I reverted the other changes, will introduce them in a follow up PR |
6d91216 to
cb7c433
Compare
6fd9ab7 to
6f1c0b7
Compare
Python 3.10 reached end of life on 2026-10-01 and the devguide lists it as unsupported. Current pyarrow and pandas also publish no 3.10 wheels, so a 3.10 install resolved to pyarrow 25.0.1 and pandas 2.3.3 while 3.11 and up resolved to newer versions. Drops the 3.10 classifier and matrix entry, and moves the two once-only CI steps (lock check, linters) to 3.11. The lock loses its pandas 2.3.3 fork, and pyproject loses the google.api_core warning filter that only existed because that library warns on Python versions it does not support. ruff reads requires-python, so it applies the 3.11 rewrites in the same pass: datetime.UTC in place of timezone.utc, and typing.Self in place of typing_extensions.Self where the typing module has it.
6f1c0b7 to
23217ac
Compare
Fokko
left a comment
There was a problem hiding this comment.
LGTM! Thanks for splitting out the Arrow stuff, I've overlooked it that it was part of this PR as well
| # Turns a warning into an error | ||
| filterwarnings = [ | ||
| "error", | ||
| # Ignore Python version deprecation, end-of-life and unsupported warnings from google.api_core while we still support 3.10 |
There was a problem hiding this comment.
Ugh, this error message is still popping up on 3.11. Can you add this back in?
…ing filter The cibuildwheel requires-python override and setup-python list still included 3.10, so releases would build cp310 wheels. google.api_core also warns on 3.11, so its FutureWarning filter is still needed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
kevinjqliu
left a comment
There was a problem hiding this comment.
LGTM
thanks @oresttokovenko
i pushed a commit (eae2b9a) to fix the CI and remove a few other places for 3.10
Rationale for this change
Python 3.10 reached end of life on 2026-10-01, and the Python devguide now lists it as unsupported. This pull request drops Python 3.10.
Note: ruff forces 3.11 changes such as
datetime.UTCin place oftimezone.utcandtyping.Selfin place oftyping_extensions.Self, because it readsrequires-python. They cannot be left out, sincemake lintfails when the rewrites are missing, and both are the same objects at runtimeAre these changes tested?
uv lock --checkpasses.uv run prek run -a passes, including ruff, ruff format and mypy.