Conversation
shahar1
force-pushed
the
drop-py310/7-pyproject-metadata
branch
from
October 3, 2026 13:07
c4d62ba to
55366f7
Compare
shahar1
added this pull request to stack #74160
October 3, 2026 13:08
1 task done
shahar1
force-pushed
the
drop-py310/7-pyproject-metadata
branch
from
October 3, 2026 13:38
55366f7 to
63abf3f
Compare
shahar1
marked this pull request as ready for review
October 3, 2026 13:57
shahar1
requested review from
RNHTTR,
amoghrajesh,
ashb,
bolkedebruin,
bugraoz93,
choo121600,
dabla,
dheerajturaga,
ephraimbuddy,
gopidesupavan,
henry3260,
hussein-awala,
jason810496,
jedcunningham,
jscheffl,
mobuchowski,
potiuk,
shubhamraj-git,
vatsrahul1001 and
vincbeck
as code owners
October 3, 2026 13:57
shahar1
requested review from
Fokko,
Lee-W,
Miretpl,
eladkal,
josh-fell,
kaxil,
o-nikolas,
pierrejeambrun and
rawwar
as code owners
October 3, 2026 13:58
shahar1
force-pushed
the
drop-py310/7-pyproject-metadata
branch
2 times, most recently
from
October 3, 2026 20:05
b0e2669 to
5739fe2
Compare
jscheffl
approved these changes
Oct 4, 2026
jscheffl
left a comment
Contributor
There was a problem hiding this comment.
Looks good if CI get's green. Checked code and looks proper.
shahar1
force-pushed
the
drop-py310/7-pyproject-metadata
branch
from
October 4, 2026 17:53
5739fe2 to
fa9a352
Compare
shahar1
force-pushed
the
drop-py310/7-pyproject-metadata
branch
from
October 4, 2026 18:57
fa9a352 to
5ac643e
Compare
Every pyproject.toml now declares requires-python >= 3.11 and drops the Python 3.10 trove classifier, the tomli build requirement that only existed for 3.10 and the per-version dependency markers for 3.10. Lock files are regenerated. ruff infers py311 from the new requires-python, which enables the PEP 646 star-index fix (UP044) applied here and makes two more rules reportable: UP042 (str, Enum to StrEnum) alters what str() and format() return for serialized enum values, and ASYNC109 means dropping the public timeout parameter from async APIs. Both need per-site judgement, so they go on the ignore list with that rationale.
With provider distributions now requiring Python 3.11, breeze can derive requires-python and classifiers from the default and allowed versions again. The datamodel-codegen target bump to 3.11 emits StrEnum, so the Task SDK and airflowctl generated models are refreshed to match.
potiuk
force-pushed
the
drop-py310/7-pyproject-metadata
branch
from
October 4, 2026 23:43
5ac643e to
35412c0
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
As titled - this PR require Python 3.11 in all distributions.
related: #74148
AI Summary
Every `pyproject.toml` (core, Task SDK, airflowctl, all providers, `shared/*`, dev and test distributions) now declares `requires-python = ">=3.11"`, drops the `Programming Language :: Python :: 3.10` classifier, the `tomli` build requirement that only 3.10 needed, and the 3.10-only dependency markers (`numpy`, `jpype1`). Lock files regenerated; the remaining `tomli` fallbacks in prek scripts, `dev/registry` and `docker-tests` become plain `tomllib` imports here (their isort placement depends on the py311 target); provider README/index requirement tables synced by `sync-provider-readme`; `tomli` dropped from prek hook `additional_dependencies`; `blacken-docs` and breeze `black` targets move to py311+.With
requires-pythonat 3.11 ruff infers the py311 target, which enables the PEP 646 fix applied here (Unpack[tuple[...]]→*tuple[...], UP044, 4 sites) and makes two rules reportable that are added to the ignore list with a rationale:UP042(str, Enum→StrEnum, 86 sites): changes whatstr()/format()return for serialized enum values.ASYNC109(async function withtimeoutparameter, 48 sites): the fix is dropping a public parameter in favour ofasyncio.timeout.Both need per-site judgement and are left for follow-ups.
Stack
Layer 7 of 9 of the Python 3.10 drop (supersedes #74144, which carried the whole change in one PR). Each layer is meant to be green on its own: the script metadata bump comes first because prek picks the hook interpreter from it, and the ruff fixes land before the
requires-pythonbump because ruff infers its target per distribution from the nearestpyproject.toml.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Fable 5.1) following the guidelines