shahar1 opened a new pull request, #74157: URL: https://github.com/apache/airflow/pull/74157
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-python` at 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 what `str()`/`format()` return for serialized enum values. - `ASYNC109` (async function with `timeout` parameter, 48 sites): the fix is dropping a public parameter in favour of `asyncio.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-python` bump because ruff infers its target per distribution from the nearest `pyproject.toml`. 1. Drop Python 3.10 from CI, Breeze and the container images 2. Bump inline script metadata to Python 3.11 3. Remove Python 3.10 compatibility shims 4. Apply ruff Python 3.11 fixes to core, Task SDK, shared and airflowctl 5. Apply ruff Python 3.11 fixes to providers 6. Apply ruff Python 3.11 fixes to dev tooling, scripts and test suites 7. Require Python 3.11 in all distributions 8. Update provider READMEs for the Python 3.11 baseline 9. Update docs for the Python 3.11 baseline --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Fable 5.1) Generated-by: Claude Code (Fable 5.1) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
