shahar1 opened a new pull request, #74151: URL: https://github.com/apache/airflow/pull/74151
Python 3.10 reaches end of life in October 2026 and a growing number of dependencies have already dropped it. This layer removes 3.10 from the CI matrix, Breeze and the images, and moves the default Python to 3.11. - Breeze: `ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS` / `ALL_PYTHON_MAJOR_MINOR_VERSIONS` are `3.11`–`3.14`, providers compatibility matrix runs on 3.11, dead `PYTHON_TO_MIN_AIRFLOW_MAPPING` + unused `is_airflow_version_supported_for_python` removed. Breeze command output docs regenerated (the ~100 SVG/TXT files are hook output). - CI: default `3.11` in composite actions and workflows; the `--no-explain-why` workaround for 3.10 in `finalize-tests.yml` goes away. - Images: default `AIRFLOW_PYTHON_VERSION` is 3.11; the PGP branch for verifying the Python tarball is removed (3.11+ publish Sigstore bundles), `python-3.10.asc` and its key entry go with it. - Scripts/tests: 3.11 defaults in `scripts/`, test constants and prek utility messages; `get_min_airflow_version_for_python` keyed from 3.11. - README/prerequisites regenerated by the `update-tested-versions` hook; newsfragment added. Deliberately kept: `.github/actions/prepare_all_ci_images` still restores 3.9/3.10 images (shared with release branches, #45268); `ALL_HISTORICAL_PYTHON_VERSIONS`, `PYTHON_3_10_TO_3_14`, `ALL_PYTHON_VERSION_TO_PATCHLEVEL_VERSION["3.10"]` stay for older Airflow releases. Distributions still declare Python 3.10 in this layer; layer 7 bumps them once the code carries no 3.10-only constructs. ### Stack Layer 1 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]
