diff --git a/.github/ISSUE_TEMPLATE/airflow_bug_report.yml b/.github/ISSUE_TEMPLATE/airflow_bug_report.yml index df79c1e96d29c..d1ee0a25b0603 100644 --- a/.github/ISSUE_TEMPLATE/airflow_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/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: - - "2.10.4" + - "2.10.5" - "3.0.0a1" - "main (development)" - "Other Airflow 2 version (please specify below)" diff --git a/Dockerfile b/Dockerfile index 6af0174f7310e..703d381ddceee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,7 +45,7 @@ ARG AIRFLOW_UID="50000" ARG AIRFLOW_USER_HOME_DIR=/home/airflow # latest released version here -ARG AIRFLOW_VERSION="2.10.4" +ARG AIRFLOW_VERSION="2.10.5" ARG PYTHON_BASE_IMAGE="python:3.9-slim-bookworm" diff --git a/README.md b/README.md index 4dcf885a72e8f..5ecfd7e6027a2 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,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 (2.10.4) | +| | Main version (dev) | Stable version (2.10.5) | |------------|----------------------------|----------------------------| | Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 | | Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | @@ -175,15 +175,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==2.10.4' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.9.txt" +pip install 'apache-airflow==2.10.5' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash -pip install 'apache-airflow[postgres,google]==2.10.4' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.9.txt" +pip install 'apache-airflow[postgres,google]==2.10.5' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt" ``` For information on installing provider packages, check @@ -288,7 +288,7 @@ Apache Airflow version life cycle: | Version | Current Patch/Minor | State | First Release | Limited Support | EOL/Terminated | |-----------|-----------------------|-----------|-----------------|-------------------|------------------| -| 2 | 2.10.4 | Supported | Dec 17, 2020 | TBD | TBD | +| 2 | 2.10.5 | Supported | Dec 17, 2020 | TBD | TBD | | 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 | | 1.8 | 1.8.2 | EOL | Mar 19, 2017 | Jan 03, 2018 | Jan 03, 2018 | diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index 09ccb3da1cc41..780e33ee8e4af 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -21,6 +21,60 @@ .. towncrier release notes start +Airflow 2.10.5 (2025-02-10) +--------------------------- + +Significant Changes +^^^^^^^^^^^^^^^^^^^ + +Ensure teardown tasks are executed when DAG run is set to failed (#45530) +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +Previously when a DAG run was manually set to "failed" or to "success" state the terminal state was set to all tasks. +But this was a gap for cases when setup- and teardown tasks were defined: If teardown was used to clean-up infrastructure +or other resources, they were also skipped and thus resources could stay allocated. + +As of now when setup tasks had been executed before and the DAG is manually set to "failed" or "success" then teardown +tasks are executed. Teardown tasks are skipped if the setup was also skipped. + +As a side effect this means if the DAG contains teardown tasks, then the manual marking of DAG as "failed" or "success" +will need to keep the DAG in running state to ensure that teardown tasks will be scheduled. They would not be scheduled +if the DAG is directly set to "failed" or "success". + + +Bug Fixes +""""""""" + +- Prevent using ``trigger_rule=TriggerRule.ALWAYS`` in a task-generated mapping within bare tasks (#44751) +- Fix ShortCircuitOperator mapped tasks (#44912) +- Fix premature evaluation of tasks with certain trigger rules (e.g. ``ONE_DONE``) in a mapped task group (#44937) +- Fix task_id validation in BaseOperator (#44938) (#44938) +- Allow fetching XCom with forward slash from the API and escape it in the UI (#45134) +- Fix ``FileTaskHandler`` only read from default executor (#46000) +- Fix empty task instance for log (#45702) (#45703) +- Remove ``skip_if`` and ``run_if`` decorators before TaskFlow virtualenv tasks are run (#41832) (#45680) +- Fix request body for json requests in event log (#45546) (#45560) +- Ensure teardown tasks are executed when DAG run is set to failed (#45530) (#45581) +- Do not update DR on TI update after task execution (#45348) +- Fix object and array DAG params that have a None default (#45313) (#45315) +- Fix endless sensor rescheduling (#45224) (#45250) +- Evaluate None in SQLAlchemy's extended JSON type decorator (#45119) (#45120) +- Allow dynamic tasks to be filtered by ``rendered_map_index`` (#45109) (#45122) +- Handle relative paths when sanitizing URLs (#41995) (#45080) +- Set Autocomplete Off on Login Form (#44929) (#44940) +- Add Webserver parameters ``max_form_parts``, ``max_form_memory_size`` (#46243) (#45749) +- Fixed accessing thread local variable in BaseOperators ``execute`` safeguard mechanism (#44646) (#46280) +- Add map_index parameter to extra links API (#46337) + + +Miscellaneous +""""""""""""" + +- Add traceback log output when SIGTERMs was sent (#44880) (#45077) +- Removed the ability for Operators to specify their own "scheduling deps" (#45713) (#45742) +- Deprecate ``conf`` from Task Context (#44993) + + Airflow 2.10.4 (2024-12-16) --------------------------- diff --git a/airflow/reproducible_build.yaml b/airflow/reproducible_build.yaml index 2a124b78bbf94..0db388d56b975 100644 --- a/airflow/reproducible_build.yaml +++ b/airflow/reproducible_build.yaml @@ -1,2 +1,2 @@ -release-notes-hash: ab7a935709e7a13d5587b7eb727ae2bd -source-date-epoch: 1737531923 +release-notes-hash: 8c02811625ac7262d5ce34eb4cd7c5b0 +source-date-epoch: 1739197544 diff --git a/docs/apache-airflow/installation/supported-versions.rst b/docs/apache-airflow/installation/supported-versions.rst index 233ff0bf3ecd3..6c3f8952b9568 100644 --- a/docs/apache-airflow/installation/supported-versions.rst +++ b/docs/apache-airflow/installation/supported-versions.rst @@ -29,7 +29,7 @@ Apache Airflow® version life cycle: ========= ===================== ========= =============== ================= ================ Version Current Patch/Minor State First Release Limited Support EOL/Terminated ========= ===================== ========= =============== ================= ================ -2 2.10.4 Supported Dec 17, 2020 TBD TBD +2 2.10.5 Supported Dec 17, 2020 TBD TBD 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 1.8 1.8.2 EOL Mar 19, 2017 Jan 03, 2018 Jan 03, 2018 diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md index 7628f5d544448..577ab9e4d1ca2 100644 --- a/generated/PYPI_README.md +++ b/generated/PYPI_README.md @@ -54,7 +54,7 @@ Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Apache Airflow is tested with: -| | Main version (dev) | Stable version (2.10.4) | +| | Main version (dev) | Stable version (2.10.5) | |------------|----------------------------|----------------------------| | Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 | | Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) | @@ -128,15 +128,15 @@ them to the appropriate format and workflow that your tool requires. ```bash -pip install 'apache-airflow==2.10.4' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.9.txt" +pip install 'apache-airflow==2.10.5' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt" ``` 2. Installing with extras (i.e., postgres, google) ```bash -pip install 'apache-airflow[postgres,google]==2.10.4' \ - --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.9.txt" +pip install 'apache-airflow[postgres,google]==2.10.5' \ + --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt" ``` For information on installing provider packages, check diff --git a/scripts/ci/pre_commit/supported_versions.py b/scripts/ci/pre_commit/supported_versions.py index 8524f237dc993..a3a96abb957c0 100755 --- a/scripts/ci/pre_commit/supported_versions.py +++ b/scripts/ci/pre_commit/supported_versions.py @@ -27,7 +27,7 @@ HEADERS = ("Version", "Current Patch/Minor", "State", "First Release", "Limited Support", "EOL/Terminated") SUPPORTED_VERSIONS = ( - ("2", "2.10.4", "Supported", "Dec 17, 2020", "TBD", "TBD"), + ("2", "2.10.5", "Supported", "Dec 17, 2020", "TBD", "TBD"), ("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"), ("1.8", "1.8.2", "EOL", "Mar 19, 2017", "Jan 03, 2018", "Jan 03, 2018"),