diff --git a/.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml b/.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml index 254b3778d3e62..1a8ecc24b71bb 100644 --- a/.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml @@ -25,7 +25,7 @@ body: the latest release or main to see if the issue is fixed before reporting it. multiple: false options: - - "3.1.0" + - "3.1.1" - "2.11.0" - "main (development)" - "Other Airflow 2/3 version (please specify below)" diff --git a/Dockerfile b/Dockerfile index df636bbf31baf..f27aff91727f1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,7 +46,7 @@ ARG AIRFLOW_UID="50000" ARG AIRFLOW_USER_HOME_DIR=/home/airflow # latest released version here -ARG AIRFLOW_VERSION="3.1.0" +ARG AIRFLOW_VERSION="3.1.1" ARG BASE_IMAGE="debian:bookworm-slim" ARG AIRFLOW_PYTHON_VERSION="3.12.12" diff --git a/README.md b/README.md index 8b689f6497ec8..35eb64dffe4d0 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ Airflow is not a streaming solution, but it is often used to process real-time d Apache Airflow is tested with: -| | Main version (dev) | Stable version (3.1.0) | +| | Main version (dev) | Stable version (3.1.1) | |------------|------------------------------|------------------------| | Python | 3.10, 3.11, 3.12, 3.13 | 3.10, 3.11, 3.12, 3.13 | | Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | @@ -177,15 +177,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==3.1.0' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.0/constraints-3.10.txt" +pip install 'apache-airflow==3.1.1' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-3.10.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash -pip install 'apache-airflow[postgres,google]==3.1.0' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.0/constraints-3.10.txt" +pip install 'apache-airflow[postgres,google]==3.1.1' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-3.10.txt" ``` For information on installing provider distributions, check @@ -275,7 +275,7 @@ packages: Changing limits for versions of Airflow dependencies is not a breaking change on its own. * **Airflow Providers**: SemVer rules apply to changes in the particular provider's code only. SemVer MAJOR and MINOR versions for the packages are independent of the Airflow version. - For example, `google 4.1.0` and `amazon 3.1.0` providers can happily be installed + For example, `google 4.1.0` and `amazon 3.1.1` providers can happily be installed with `Airflow 2.1.2`. If there are limits of cross-dependencies between providers and Airflow packages, they are present in providers as `install_requires` limitations. We aim to keep backwards compatibility of providers with all previously released Airflow 2 versions but @@ -299,7 +299,7 @@ Apache Airflow version life cycle: | Version | Current Patch/Minor | State | First Release | Limited Maintenance | EOL/Terminated | |-----------|-----------------------|-----------|-----------------|-----------------------|------------------| -| 3 | 3.1.0 | Supported | Apr 22, 2025 | TBD | TBD | +| 3 | 3.1.1 | Supported | Apr 22, 2025 | TBD | TBD | | 2 | 2.11.0 | Supported | Dec 17, 2020 | Oct 22, 2025 | Apr 22, 2026 | | 1.10 | 1.10.15 | EOL | Aug 27, 2018 | Dec 17, 2020 | June 17, 2021 | | 1.9 | 1.9.0 | EOL | Jan 03, 2018 | Aug 27, 2018 | Aug 27, 2018 | diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index 8e5f492fa29c9..4c1fb92ee169f 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -24,6 +24,117 @@ .. towncrier release notes start +Airflow 3.1.1 (2025-10-27) +-------------------------- + +Significant Changes +^^^^^^^^^^^^^^^^^^^ + +No significant changes. + +Bug Fixes +^^^^^^^^^ + +- Fix execution failures with NULL ``dag_run.conf`` during upgrades from earlier versions (#56729) +- Fix memory leak in remote logging connection cache (#56695) +- Fix DAG processor crash with pre-import module optimization enabled (#56779) +- Fix scheduler crash with email notifications (#56431) +- Fix scheduler crash during 3.0 to 3.1 migration when ``retry_delay`` is ``None`` (#56236) +- Fix task retries executing wrong method after deferred state (#56737) +- Fix retry callbacks not executing for externally killed tasks (#56607) +- Fix custom timetable ``generate_run_id`` not called for manual triggers (#56699) +- Fix ``KeyError`` when accessing ``retry_delay`` on ``MappedOperator`` without explicit value (#56605) +- Fix ``task-sdk`` connection error handling to match ``airflow-core`` behavior (#56653) +- Fix topological sort for Grid View (#56963) +- Fix ``get_ti_count`` and ``get_task_states`` access in callback requests (#56860) +- Fix ``Connection`` or ``Variable`` access in Server context (#56602) +- Fix ``.airflowignore`` order precedence (#56832) +- Fix migration errors for Pydantic 2.12.0 compatibility (#56581) +- Fix: Correctly parse JSON for ``--dag_run_conf`` in ``airflow dags backfill`` CLI (#56599) +- UI: Fix note modal does not change markdown text after change (#56092) +- UI: Fix Grid for cleared runs when tasks were removed (#56297) +- UI: Fix log text selection contrast in light mode (#56893) +- UI: Fix Advanced Search button overlap in DAG List View (#56777) +- UI: Fix view for many DAG tags (#55604) +- UI: Fix asset name text overflow in DAGs list view (#55914) +- UI: Fix auto refresh when only 1 dag run is running (#56649) +- UI: Fix UI keeps poking pools API when no permission (#56626) +- UI: Fix multi-line drag selection in task log view (#56300) +- UI: Fix task named ``'root'`` causes blue screen on hover (#56926) +- UI: Fix cron expression display for ``Day-of-Month`` and ``Day-of-Week`` conflicts (#56255) +- UI: Fix Grid view performance issues with ``SerializedDagModel`` query optimization (#56938) +- Fix: Gracefully handle FastAPI plugins with empty ``url_prefix`` (#55262) +- Fix: Allow mapped tasks to accept zero-length inputs on rerun (#56162) +- Fix: Enable API to clear task instances by specifying map indexes (#56945) +- Fix: Add ``max_retry_delay`` to ``MappedOperator`` model (#56951) +- Fix: Use name passed to ``@asset`` decorator when fetching the asset (#56611) +- UI: Add English as a fallback locale (#56934) + +Miscellaneous +^^^^^^^^^^^^^ + +- Add Greek UI translation (#56724) +- Add Thai UI translation (#56946) +- Add Polish translations (#56825) +- Close German translation gaps for full UI translation (#56981) +- Fix Hebrew typo in translations (#56168) +- Improve DAG and task missing error handling in callbacks (#56725) +- Improve UI retry strategy on client errors (#56638) +- Improve get dag grid structure endpoint speed (#56937) +- Optimize grid structure query with ``DISTINCT`` for ``dag_version_id`` lookup (#56565) +- Add configurable timeout for Execution API requests (#56969) +- Prevent unnecessary kubernetes client imports in workers (#56692) +- Lazy import ``PodGenerator`` for deserialization (#56733) +- Serialize pydantic models in json mode for JSON serialization compatibility (#56939) +- Update authentication to handle JWT token in backend (#56677) +- Update bulk API permission check to handle ``action_on_existence`` (#56672) +- Migrate ``CreateAssetEventsBody`` to Pydantic v2 ``ConfigDict`` (#56772) +- Restore timetable ``active_runs_limit`` check (#56922) +- Add ``is_favorite`` to UI dags list (#56341) +- Add ``executor``, ``hostname``, and ``queue`` columns to ``TaskInstances`` page (#55922) +- Add resize function for DAG Documentation (#56344) +- Add optional pending dag runs check to auto refresh (#56648) +- Add auto refresh to backfill banner (#56774) +- UI: Add Expand/Collapse all to ``XComs`` page (#56285) +- UI: Update recent runs bar chart and improve responsiveness (#56314) +- UI: Update duration format to show milliseconds (#56961) +- UI: Modify min width for task names in grid view (#56952) +- UI: Use Task Display Name in Graph if existing (#56511) +- UI: Use Task Display Name in Grid if existing (#56410) +- UI: Use TI duration from database instead of UI calculated (#56329) +- UI: Make DAG Run ID visible in DAG Header Card (#56409) +- UI: Modify calendar cell colors (#56161) +- UI: Modify log highlight color (#56894) +- UI: Fix show appropriate time units in grid view (#56414) +- UI: Reduce default columns of DAG Run and Task Instance lists (#55968) +- UI: Add expand and collapse functionality for task groups (#56334) +- UI: Avoid using rem for icons for Safari compatibility (#56304) +- UI: Add ANSI support to log viewer (#56721) +- UI: Support Dynamic UI Alerts (#56259) +- UI: Disable Gantt view by default (#56242) +- UI: Use welcome on dashboard instead of airflow (#56074) +- UI: Improve clipboard button visibility with hover effect (#56484) +- UI: Allow sub-pages in React UI plugins (#56485) +- Include task instance id in log printed by supervisor (#56383) +- Emit log stream stopped warning as ``ndjson`` (#56480) +- Detect interactive terminal to set colored logging with override env variable support (#56157) +- Add back deprecation warning for ``sla_miss_callback`` (#56127) +- Move ``natsort`` dependency to ``airflow-core`` (#56582) +- Added missing ``babel`` dependency in Task SDK (#56592) +- Remove unused ``dagReports`` API endpoint (#56621) + +Doc Only Changes +^^^^^^^^^^^^^^^^ + +- Improve API sort documentation (#56617) +- Improve API doc for ordering query param (#55988) +- Add Audit Logs detailed documentation (#56719) +- Update serializer document to reflect latest changes in codebase (#56857) +- Update ASF logos in documentation to the new Oak logo (#56601) +- Enhance ``triggering_asset_event`` retrieval documentation in DAGs (#56957) +- Remove self-reference in best practices documentation (#56111) +- Fix supported Python versions in README (#56734) + Airflow 3.1.0 (2025-09-25) -------------------------- diff --git a/airflow-core/docs/installation/supported-versions.rst b/airflow-core/docs/installation/supported-versions.rst index 6e7d0dda5071b..34a04d5c7a23c 100644 --- a/airflow-core/docs/installation/supported-versions.rst +++ b/airflow-core/docs/installation/supported-versions.rst @@ -29,7 +29,7 @@ Apache Airflow® version life cycle: ========= ===================== ========= =============== ===================== ================ Version Current Patch/Minor State First Release Limited Maintenance EOL/Terminated ========= ===================== ========= =============== ===================== ================ -3 3.1.0 Supported Apr 22, 2025 TBD TBD +3 3.1.1 Supported Apr 22, 2025 TBD TBD 2 2.11.0 Supported Dec 17, 2020 Oct 22, 2025 Apr 22, 2026 1.10 1.10.15 EOL Aug 27, 2018 Dec 17, 2020 June 17, 2021 1.9 1.9.0 EOL Jan 03, 2018 Aug 27, 2018 Aug 27, 2018 diff --git a/airflow-core/docs/start.rst b/airflow-core/docs/start.rst index 3ad574bdeefab..2f934118e255d 100644 --- a/airflow-core/docs/start.rst +++ b/airflow-core/docs/start.rst @@ -68,7 +68,7 @@ This quick start guide will help you bootstrap an Airflow standalone instance on :substitutions: - AIRFLOW_VERSION=3.0.3 + AIRFLOW_VERSION=3.1.1 # Extract the version of Python you have installed. If you're currently using a Python version that is not supported by Airflow, you may want to set this manually. # See above for supported versions. diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md index 715eb1076fb87..1aa680f803ec7 100644 --- a/generated/PYPI_README.md +++ b/generated/PYPI_README.md @@ -56,7 +56,7 @@ Use Airflow to author workflows (Dags) that orchestrate tasks. The Airflow sched Apache Airflow is tested with: -| | Main version (dev) | Stable version (3.1.0) | +| | Main version (dev) | Stable version (3.1.1) | |------------|------------------------------|------------------------| | Python | 3.10, 3.11, 3.12, 3.13 | 3.10, 3.11, 3.12, 3.13 | | Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | @@ -130,15 +130,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==3.1.0' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.0/constraints-3.10.txt" +pip install 'apache-airflow==3.1.1' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-3.10.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash -pip install 'apache-airflow[postgres,google]==3.1.0' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.0/constraints-3.10.txt" +pip install 'apache-airflow[postgres,google]==3.1.1' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.1.1/constraints-3.10.txt" ``` For information on installing provider distributions, check diff --git a/reproducible_build.yaml b/reproducible_build.yaml index 15ac7f8ea66ed..d2ef45ff642d5 100644 --- a/reproducible_build.yaml +++ b/reproducible_build.yaml @@ -1,2 +1,2 @@ -release-notes-hash: decf692f4614345c187317f600697668 -source-date-epoch: 1759372174 +release-notes-hash: a449253a6789334b408e2b28073c9a08 +source-date-epoch: 1761610265 diff --git a/scripts/ci/prek/supported_versions.py b/scripts/ci/prek/supported_versions.py index be807e6527f48..2721aa0b0fafe 100755 --- a/scripts/ci/prek/supported_versions.py +++ b/scripts/ci/prek/supported_versions.py @@ -39,7 +39,7 @@ ) SUPPORTED_VERSIONS = ( - ("3", "3.1.0", "Supported", "Apr 22, 2025", "TBD", "TBD"), + ("3", "3.1.1", "Supported", "Apr 22, 2025", "TBD", "TBD"), ("2", "2.11.0", "Supported", "Dec 17, 2020", "Oct 22, 2025", "Apr 22, 2026"), ("1.10", "1.10.15", "EOL", "Aug 27, 2018", "Dec 17, 2020", "June 17, 2021"), ("1.9", "1.9.0", "EOL", "Jan 03, 2018", "Aug 27, 2018", "Aug 27, 2018"),