This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch copy-release-notes in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 76bffcae2bf495d27cd27a4199ce5270cc16094d Author: Jarek Potiuk <[email protected]> AuthorDate: Sat Feb 21 03:49:34 2026 +0100 Copy 2.11.1 release notes to main --- RELEASE_NOTES.rst | 85 +++++++++++++++++++++++++++++++++++++++++++++++++ reproducible_build.yaml | 4 +-- 2 files changed, 87 insertions(+), 2 deletions(-) diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst index bbf63a5f3a4..598ab1e7fc7 100644 --- a/RELEASE_NOTES.rst +++ b/RELEASE_NOTES.rst @@ -2405,6 +2405,91 @@ thank everyone who helped shape this release through design discussions, code co community feedback. For full details, migration guidance, and upgrade best practices, refer to the official Upgrade Guide and join the conversation on the Airflow dev and user mailing lists. +Airflow 2.11.1 (2026-02-20) +--------------------------- + +Significant Changes +^^^^^^^^^^^^^^^^^^^ + +Python 3.9 support removed +"""""""""""""""""""""""""" + +Support for Python 3.9 has been removed, as it has reached end-of-life. +Airflow 2.11.1 requires Python 3.10, 3.11, or 3.12. Note that this is unusual to remove +Python version support in patch-level release of Airflow, but since Python 3.9 is already +end-of-life, many libraries do not support it any more, and Airflow 2.11.1 is focused on +improving security by upgrading dependencies, so we decided to remove Python 3.9 support +in this patch release, to improve security of the release. Python 3.10 and 3.11 had almost +no backward-incompatible changes, so you should be able to upgrade to Python 3.10 or 3.11 +easily. If you were using Python 3.9 before, it is recommended to first upgrade Python version +in existing installation and then upgrade to Airflow 2.11.1. + +Publishing timer and timing metrics in seconds is now deprecated +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +In Airflow 3.0, the ``timer_unit_consistency`` setting in the ``metrics`` section will be +enabled by default and setting itself will be removed. This will standardize all timer and timing metrics to +milliseconds across all metric loggers. + +**Users Integrating with Datadog, OpenTelemetry, or other metric backends** should enable this setting. For users, using +``statsd``, this change will not affect you. + +If you need backward compatibility, you can leave this setting disabled temporarily, but enabling +``timer_unit_consistency`` is encouraged to future-proof your metrics setup. (#39908) + +Retrieving historical log templates is disabled in Airflow 2.11.1 +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +When you change the log template in Airflow 2.11.1, the historical log templates are not retrieved. +This means that if you have existing logs that were generated using a different log template, +they will not be accessible using the new log template. + +This change is due to potential security issues that could arise from retrieving historical log templates, +which allow Dag Authors to execute arbitrary code in webserver when retrieving logs. +By disabling the retrieval of historical log templates, Airflow 2.11.1 aims to enhance the security of the +system and prevent potential vulnerabilities in case the potential of executing arbitrary code in webserver +is important for Airflow deployment. + +Users who need to access historical logs generated with a different log template will need to manually +update their log files to match the naming of their historical log files with the latest log template +configured in Airflow configuration, or they can set the "core.use_historical_filename_templates" +configuration option to True to enable the retrieval of historical log templates, if they are fine with +the Dag Authors being able to execute arbitrary code in webserver when retrieving logs. (#61880) + +Updated dependencies +"""""""""""""""""""" + +Airflow 2.11.1 includes updates to a number of dependencies including connexion, Flask-Session, Werkzeug, +that were not possible to upgrade before, because the dependencies did not have compatible versions +with Airflow 2.11.0, but we worked together with the community to update them. Many thanks to connexion +team and a number of community members to help with the updates so that we could upgrade to newer +versions and get rid of some dependency versions that had known security vulnerabilities (#51681) + +Bug fixes +""""""""" + +- Add proxy values to be masked by secrets manager (#61906) +- Masking details while creating connections using json & uri (#61882) +- Fix redaction of illegal args (#61883) +- Fix stuck queued tasks by calling executor fail method and invoking failure callbacks (#53038) +- Fix recursion depth error in _redact_exception_with_context (#61797) +- Avoid warning when passing none as dataset alias (#61791) +- Add pool name validation to avoid XSS from the DAG file (#61732) +- Prevent scheduler to crash due to RecursionError when making a SQL query (#55778) +- Fix root logger level cache invalidation in LoggerMutationHelper (#61644) +- update null event values to empty string in downgrade for migration revision_id d75389605139 (#57131) +- Fix WeightRule spec (#53947) +- Correctly treat request on reschedule sensors as resetting after each reschedule (#51410) (#52638) +- Allow more empty loops before stopping log streaming (#52614) (#52636) +- Ensuring XCom return value can be mapped for dynamically-mapped @task_group's (#51668) +- Fix archival for cascading deletes by archiving dependent tables first (#51952) (#52211) +- Stop streaming task logs if end of log mark is missing (#51904) +- Fix bad width w/no options in multi-select DAG parameter (#51516) +- Fix remove filter button visibility in Pools list page (#51161) +- Fix delete button visibility in search filters (#51100) +- Fix migration from 2.2.0 to 2.11.0 for Sqlite (#50745) +- Check if stand alone dag processor is active in get_health endpoint (#48612) + Airflow 2.11.0 (2025-05-20) --------------------------- diff --git a/reproducible_build.yaml b/reproducible_build.yaml index d64a2256bd2..37f32a0bb8f 100644 --- a/reproducible_build.yaml +++ b/reproducible_build.yaml @@ -1,2 +1,2 @@ -release-notes-hash: 4a7d5c57fe99617722351ddc3d0721ed -source-date-epoch: 1770209523 +release-notes-hash: b70d35a9f25bf4c0d4a8e16361becc4b +source-date-epoch: 1771642162
