This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch v2-11-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v2-11-test by this push:
     new acf6e99bb99 Add release notes for Airflow 2.11.1
acf6e99bb99 is described below

commit acf6e99bb9934e14b61fa17b2cf2739ae0059bfd
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat Feb 14 20:19:06 2026 +0100

    Add release notes for Airflow 2.11.1
---
 README.md                           |  4 +-
 RELEASE_NOTES.rst                   | 84 +++++++++++++++++++++++++++++++++++++
 airflow/reproducible_build.yaml     |  4 +-
 generated/PYPI_README.md            |  4 +-
 newsfragments/39908.significant.rst | 11 -----
 newsfragments/48568.significant.rst |  1 -
 newsfragments/61598.significant.rst | 14 -------
 newsfragments/61880.significant.rst | 17 --------
 8 files changed, 90 insertions(+), 49 deletions(-)

diff --git a/README.md b/README.md
index 557178a2d4a..7fe159189c5 100644
--- a/README.md
+++ b/README.md
@@ -97,9 +97,9 @@ 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.11.0)      |
+|            | Main version (dev)           | Stable version (2.11.1)      |
 |------------|------------------------------|------------------------------|
-| Python     | 3.9, 3.10, 3.11, 3.12        | 3.9, 3.10, 3.11, 3.12        |
+| Python     | 3.9, 3.10, 3.11, 3.12        | 3.10, 3.11, 3.12             |
 | Platform   | AMD64/ARM64(\*)              | AMD64/ARM64(\*)              |
 | Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29, 1.30 |
 | PostgreSQL | 12, 13, 14, 15, 16           | 12, 13, 14, 15, 16           |
diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index 1dedc6a5a92..370b2811f22 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -21,6 +21,90 @@
 
 .. towncrier release notes start
 
+Airflow 2.11.1 (2026-02-14)
+---------------------------
+
+Significant Changes
+^^^^^^^^^^^^^^^^^^^
+
+Python 3.8 support removed
+""""""""""""""""""""""""""
+
+Support for Python 3.8 has been removed, as it has reached end-of-life.
+Airflow 2.11 requires Python 3.10, 3.11, or 3.12.
+
+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)
+
+The ``core.worker_precheck`` config option is not effective any more
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Celery provider uses ``celery.worker_precheck`` config option in celery 
provider < 3.5.0
+and as of 3.5.0 it is not used at all. (#48568)
+
+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/airflow/reproducible_build.yaml b/airflow/reproducible_build.yaml
index 31793bfcd74..7248aece609 100644
--- a/airflow/reproducible_build.yaml
+++ b/airflow/reproducible_build.yaml
@@ -1,2 +1,2 @@
-release-notes-hash: 90471d3817ea140bbdfd8fcb96c19a2a
-source-date-epoch: 1764003839
+release-notes-hash: 149bd98c7837d0722f7d2191bb6e1809
+source-date-epoch: 1771096725
diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md
index 222f125b061..1ac6fb1a8d8 100644
--- a/generated/PYPI_README.md
+++ b/generated/PYPI_README.md
@@ -54,9 +54,9 @@ Use Airflow to author workflows as directed acyclic graphs 
(DAGs) of tasks. The
 
 Apache Airflow is tested with:
 
-|            | Main version (dev)           | Stable version (2.11.0)      |
+|            | Main version (dev)           | Stable version (2.11.1)      |
 |------------|------------------------------|------------------------------|
-| Python     | 3.9, 3.10, 3.11, 3.12        | 3.9, 3.10, 3.11, 3.12        |
+| Python     | 3.9, 3.10, 3.11, 3.12        | 3.10, 3.11, 3.12             |
 | Platform   | AMD64/ARM64(\*)              | AMD64/ARM64(\*)              |
 | Kubernetes | 1.26, 1.27, 1.28, 1.29, 1.30 | 1.26, 1.27, 1.28, 1.29, 1.30 |
 | PostgreSQL | 12, 13, 14, 15, 16           | 12, 13, 14, 15, 16           |
diff --git a/newsfragments/39908.significant.rst 
b/newsfragments/39908.significant.rst
deleted file mode 100644
index d5ba99fa9fa..00000000000
--- a/newsfragments/39908.significant.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-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.
diff --git a/newsfragments/48568.significant.rst 
b/newsfragments/48568.significant.rst
deleted file mode 100644
index 3d5760a6c8a..00000000000
--- a/newsfragments/48568.significant.rst
+++ /dev/null
@@ -1 +0,0 @@
-The ``core.worker_precheck`` config option is not effective any more. Celery 
provider uses ``celery.worker_precheck`` config option in celery provider < 
3.5.0 and as of 3.5.0 it is not used at all.
diff --git a/newsfragments/61598.significant.rst 
b/newsfragments/61598.significant.rst
deleted file mode 100644
index 5c22de5fb4d..00000000000
--- a/newsfragments/61598.significant.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-Airflow 2.11.1 will drop support for Python 3.9 and require Python 3.10 or 
later.
-
-The main point behind upgrading Python version to 3.10 is that
-Python 3.9 is officially end-of-life and many of the dependencies
-had already stopped releasing even security fixes for 3.9.
-
-Since the upcoming 2.11.1 version is mainly a security-focused
-release, we decided to drop support for Python 3.9 in order to
-be able to upgrade all related dependencies to latest security
-patch versions. There are absolutely minimal changes in behaviour
-between Python 3.9 and 3.10 and we have not experienced virtually
-any problems because of this - other than dependency issues, so
-it should be very minimal overhead for anyone to upgrade to
-Python 3.10 even if they used Python 3.9.
diff --git a/newsfragments/61880.significant.rst 
b/newsfragments/61880.significant.rst
deleted file mode 100644
index d00105206c4..00000000000
--- a/newsfragments/61880.significant.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-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.

Reply via email to