Skip to content

Commit 4f17668

Browse files
committed
Update docs with Airflow 2.11.0 info (#50832)
(cherry picked from commit 6ee5949)
1 parent 792d8e6 commit 4f17668

File tree

8 files changed

+105
-10
lines changed

8 files changed

+105
-10
lines changed

.github/ISSUE_TEMPLATE/airflow_bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ body:
2525
the latest release or main to see if the issue is fixed before reporting it.
2626
multiple: false
2727
options:
28-
- "2.10.5"
29-
- "3.0.0"
28+
- "3.0.1"
29+
- "2.11.0"
3030
- "main (development)"
3131
- "Other Airflow 2 version (please specify below)"
3232
validations:

.github/actions/migration_tests/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ runs:
2424
- name: "Test migration file 2 to 3 migration: ${{env.BACKEND}}"
2525
shell: bash
2626
run: |
27-
breeze shell "${{ env.AIRFLOW_2_CMD }}" --use-airflow-version 2.10.5 --answer y &&
27+
breeze shell "${{ env.AIRFLOW_2_CMD }}" --use-airflow-version 2.11.0 --answer y &&
2828
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${{env.DB_MANGERS}}
2929
${{ env.AIRFLOW_3_CMD }}" --no-db-cleanup
3030
env:
@@ -47,7 +47,7 @@ runs:
4747
- name: "Test ORM migration 2 to 3: ${{env.BACKEND}}"
4848
shell: bash
4949
run: >
50-
breeze shell "${{ env.AIRFLOW_2_CMD }}" --use-airflow-version 2.10.5 --answer y &&
50+
breeze shell "${{ env.AIRFLOW_2_CMD }}" --use-airflow-version 2.11.0 --answer y &&
5151
breeze shell "export AIRFLOW__DATABASE__EXTERNAL_DB_MANAGERS=${{env.DB_MANGERS}}
5252
${{ env.AIRFLOW_3_CMD }}" --no-db-cleanup
5353
env:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ Apache Airflow version life cycle:
300300
| Version | Current Patch/Minor | State | First Release | Limited Maintenance | EOL/Terminated |
301301
|-----------|-----------------------|-----------|-----------------|-----------------------|------------------|
302302
| 3 | 3.0.2 | Supported | Apr 22, 2025 | TBD | TBD |
303-
| 2 | 2.10.5 | Supported | Dec 17, 2020 | TBD | TBD |
303+
| 2 | 2.11.0 | Supported | Dec 17, 2020 | TBD | TBD |
304304
| 1.10 | 1.10.15 | EOL | Aug 27, 2018 | Dec 17, 2020 | June 17, 2021 |
305305
| 1.9 | 1.9.0 | EOL | Jan 03, 2018 | Aug 27, 2018 | Aug 27, 2018 |
306306
| 1.8 | 1.8.2 | EOL | Mar 19, 2017 | Jan 03, 2018 | Jan 03, 2018 |

RELEASE_NOTES.rst

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,99 @@ thank everyone who helped shape this release through design discussions, code co
987987
community feedback. For full details, migration guidance, and upgrade best practices, refer to the official Upgrade
988988
Guide and join the conversation on the Airflow dev and user mailing lists.
989989

990+
Airflow 2.11.0 (2025-05-20)
991+
---------------------------
992+
993+
Significant Changes
994+
^^^^^^^^^^^^^^^^^^^
995+
996+
``DeltaTriggerTimetable`` for trigger-based scheduling (#47074)
997+
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
998+
999+
This change introduces DeltaTriggerTimetable, a new built-in timetable that complements the existing suite of
1000+
Airflow timetables by supporting delta-based trigger schedules without relying on data intervals.
1001+
1002+
Airflow currently has two major types of timetables:
1003+
- Data interval-based (e.g., ``CronDataIntervalTimetable``, ``DeltaDataIntervalTimetable``)
1004+
- Trigger-based (e.g., ``CronTriggerTimetable``)
1005+
1006+
However, there was no equivalent trigger-based option for delta intervals like ``timedelta(days=1)``.
1007+
As a result, even simple schedules like ``schedule=timedelta(days=1)`` were interpreted through a data interval
1008+
lens—adding unnecessary complexity for users who don't care about upstream/downstream data dependencies.
1009+
1010+
This feature is backported to Airflow 2.11.0 to help users begin transitioning before upgrading to Airflow 3.0.
1011+
1012+
- In Airflow 2.11, ``schedule=timedelta(...)`` still defaults to ``DeltaDataIntervalTimetable``.
1013+
- A new config option ``[scheduler] create_delta_data_intervals`` (default: ``True``) allows opting in to ``DeltaTriggerTimetable``.
1014+
- In Airflow 3.0, this config defaults to ``False``, meaning ``DeltaTriggerTimetable`` becomes the default for timedelta schedules.
1015+
1016+
By flipping this config in 2.11, users can preview and adopt the new scheduling behavior in advance — minimizing surprises during upgrade.
1017+
1018+
1019+
Consistent timing metrics across all backends (#39908, #43966)
1020+
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
1021+
1022+
Previously, Airflow reported timing metrics in milliseconds for ``StatsD`` but in seconds for other backends
1023+
such as ``OpenTelemetry`` and ``Datadog``. This inconsistency made it difficult to interpret or compare
1024+
timing metrics across systems.
1025+
1026+
Airflow 2.11 introduces a new config option:
1027+
1028+
- ``[metrics] timer_unit_consistency`` (default: ``False`` in 2.11, ``True`` and dropped in Airflow 3.0).
1029+
1030+
When enabled, all timing metrics are consistently reported in milliseconds, regardless of the backend.
1031+
1032+
This setting has become mandatory and always ``True`` in Airflow 3.0 (the config will be removed), so
1033+
enabling it in 2.11 allows users to migrate early and avoid surprises during upgrade.
1034+
1035+
Ease migration to Airflow 3
1036+
"""""""""""""""""""""""""""
1037+
This release introduces several changes to help users prepare for upgrading to Airflow 3:
1038+
1039+
- All models using ``execution_date`` now also include a ``logical_date`` field. Airflow 3 drops ``execution_date`` entirely in favor of ``logical_date`` (#44283)
1040+
- Added ``airflow config lint`` and ``airflow config update`` commands in 2.11 to help audit and migrate configs for Airflow 3.0. (#45736, #50353, #46757)
1041+
1042+
Python 3.8 support removed
1043+
""""""""""""""""""""""""""
1044+
Support for Python 3.8 has been removed, as it has reached end-of-life.
1045+
Airflow 2.11 requires Python 3.9, 3.10, 3.11, or 3.12.
1046+
1047+
New Features
1048+
""""""""""""
1049+
1050+
- Introduce ``DeltaTriggerTimetable`` (#47074)
1051+
- Backport ``airflow config update`` and ``airflow config lint`` changes to ease migration to Airflow 3 (#45736, #50353)
1052+
- Add link to show task in a DAG in DAG Dependencies view (#47721)
1053+
- Align timers and timing metrics (ms) across all metrics loggers (#39908, #43966)
1054+
1055+
Bug Fixes
1056+
"""""""""
1057+
1058+
- Don't resolve path for DAGs folder (#46877)
1059+
- Fix ``ti.log_url`` timestamp format from ``"%Y-%m-%dT%H:%M:%S%z"`` to ``"%Y-%m-%dT%H:%M:%S.%f%z"`` (#50306)
1060+
- Ensure that the generated ``airflow.cfg`` contains a random ``fernet_key`` and ``secret_key`` (#47755)
1061+
- Fixed setting ``rendered_map_index`` via internal api (#49057)
1062+
- Store rendered_map_index from ``TaskInstancePydantic`` into ``TaskInstance`` (#48571)
1063+
- Allow using ``log_url`` property on ``TaskInstancePydantic`` (Internal API) (#50560)
1064+
- Fix Trigger Form with Empty Object Default (#46872)
1065+
- Fix ``TypeError`` when deserializing task with ``execution_timeout`` set to ``None`` (#46822)
1066+
- Always populate mapped tasks (#46790)
1067+
- Ensure ``check_query_exists`` returns a bool (#46707)
1068+
- UI: ``/xcom/list`` got exception when applying filter on the ``value`` column (#46053)
1069+
- Allow to set note field via the experimental internal api (#47769)
1070+
1071+
Miscellaneous
1072+
"""""""""""""
1073+
1074+
- Add ``logical_date`` to models using ``execution_date`` (#44283)
1075+
- Drop support for Python 3.8 (#49980, #50015)
1076+
- Emit warning for deprecated ``BaseOperatorLink.get_link`` signature (#46448)
1077+
1078+
Doc Only Changes
1079+
""""""""""""""""
1080+
- Unquote executor ``airflow.cfg`` variable (#48084)
1081+
- Update ``XCom`` docs to show examples of pushing multiple ``XComs`` (#46284, #47068)
1082+
9901083
Airflow 2.10.5 (2025-02-10)
9911084
---------------------------
9921085

airflow-core/docs/installation/supported-versions.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Apache Airflow® version life cycle:
3030
Version Current Patch/Minor State First Release Limited Maintenance EOL/Terminated
3131
========= ===================== ========= =============== ===================== ================
3232
3 3.0.2 Supported Apr 22, 2025 TBD TBD
33-
2 2.10.5 Supported Dec 17, 2020 TBD TBD
33+
2 2.11.0 Supported Dec 17, 2020 TBD TBD
3434
1.10 1.10.15 EOL Aug 27, 2018 Dec 17, 2020 June 17, 2021
3535
1.9 1.9.0 EOL Jan 03, 2018 Aug 27, 2018 Aug 27, 2018
3636
1.8 1.8.2 EOL Mar 19, 2017 Jan 03, 2018 Jan 03, 2018

dev/breeze/src/airflow_breeze/global_constants.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ def get_default_platform_machine() -> str:
392392
PYTHON_3_7_TO_3_11 = ["3.7", "3.8", "3.9", "3.10", "3.11"]
393393
PYTHON_3_8_TO_3_11 = ["3.8", "3.9", "3.10", "3.11"]
394394
PYTHON_3_8_TO_3_12 = ["3.8", "3.9", "3.10", "3.11", "3.12"]
395+
PYTHON_3_9_TO_3_12 = ["3.9", "3.10", "3.11", "3.12"]
395396

396397

397398
AIRFLOW_PYTHON_COMPATIBILITY_MATRIX = {
@@ -444,6 +445,7 @@ def get_default_platform_machine() -> str:
444445
"2.10.3": PYTHON_3_8_TO_3_12,
445446
"2.10.4": PYTHON_3_8_TO_3_12,
446447
"2.10.5": PYTHON_3_8_TO_3_12,
448+
"2.11.0": PYTHON_3_9_TO_3_12,
447449
}
448450

449451
DB_RESET = False
@@ -712,7 +714,7 @@ def generate_provider_dependencies_if_needed():
712714
},
713715
{
714716
"python-version": "3.9",
715-
"airflow-version": "2.10.5",
717+
"airflow-version": "2.11.0",
716718
"remove-providers": "cloudant common.messaging fab git",
717719
"run-tests": "true",
718720
},

reproducible_build.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
release-notes-hash: f0de3cc1fba3d6a82b13d253db70869a
2-
source-date-epoch: 1747938033
1+
release-notes-hash: 27a6ab5414dce2dd3883fc6a32e67985
2+
source-date-epoch: 1748945953

scripts/ci/pre_commit/supported_versions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535

3636
SUPPORTED_VERSIONS = (
3737
("3", "3.0.2", "Supported", "Apr 22, 2025", "TBD", "TBD"),
38-
("2", "2.10.5", "Supported", "Dec 17, 2020", "TBD", "TBD"),
38+
("2", "2.11.0", "Supported", "Dec 17, 2020", "TBD", "TBD"),
3939
("1.10", "1.10.15", "EOL", "Aug 27, 2018", "Dec 17, 2020", "June 17, 2021"),
4040
("1.9", "1.9.0", "EOL", "Jan 03, 2018", "Aug 27, 2018", "Aug 27, 2018"),
4141
("1.8", "1.8.2", "EOL", "Mar 19, 2017", "Jan 03, 2018", "Jan 03, 2018"),

0 commit comments

Comments
 (0)