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

rahulvats pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-2-test by this push:
     new 346f3329ec5 Add 3.2.0 release notes
346f3329ec5 is described below

commit 346f3329ec556755a14c0acf1d57cd172d4b3b6b
Author: vatsrahul1001 <[email protected]>
AuthorDate: Tue Mar 3 19:15:47 2026 +0530

    Add 3.2.0 release notes
---
 RELEASE_NOTES.rst                                | 229 +++++++++++++++++++++++
 airflow-core/newsfragments/54505.significant.rst |  61 ------
 airflow-core/newsfragments/56866.significant.rst |  38 ----
 airflow-core/newsfragments/57069.significant.rst |  16 --
 airflow-core/newsfragments/58337.feature.rst     |   1 -
 airflow-core/newsfragments/58524.significant.rst |   7 -
 airflow-core/newsfragments/58992.significant.rst |  43 -----
 airflow-core/newsfragments/59239.feature.rst     |   1 -
 airflow-core/newsfragments/59780.significant.rst |   9 -
 airflow-core/newsfragments/59785.significant.rst |  10 -
 airflow-core/newsfragments/59835.significant.rst |   6 -
 airflow-core/newsfragments/59855.significant.rst |   1 -
 airflow-core/newsfragments/59880.bugfix.rst      |   1 -
 airflow-core/newsfragments/59938.bugfix.rst      |   1 -
 airflow-core/newsfragments/60268.improvement.rst |   1 -
 airflow-core/newsfragments/60619.significant.rst |  22 ---
 airflow-core/newsfragments/60803.significant.rst |   1 -
 airflow-core/newsfragments/60921.significant.rst |  51 -----
 airflow-core/newsfragments/60951.significant.rst |   7 -
 airflow-core/newsfragments/61400.significant.rst |  20 --
 reproducible_build.yaml                          |   4 +-
 21 files changed, 231 insertions(+), 299 deletions(-)

diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index 598ab1e7fc7..201c555437c 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -24,6 +24,235 @@
 
 .. towncrier release notes start
 
+Airflow 3.2.0b1 (2026-03-03)
+--------------------------
+
+Significant Changes
+^^^^^^^^^^^^^^^^^^^
+
+- Move task-level exception imports into the Task SDK
+
+  Airflow now sources task-facing exceptions (``AirflowSkipException``, 
``TaskDeferred``, etc.) from
+  ``airflow.sdk.exceptions``. ``airflow.exceptions`` still exposes the same 
exceptions, but they are
+  proxies that emit ``DeprecatedImportWarning`` so Dag authors can migrate 
before the shim is removed.
+
+  **What changed:**
+
+  - Runtime code now consistently raises the SDK versions of task-level 
exceptions.
+  - The Task SDK redefines these classes so workers no longer depend on 
``airflow-core`` at runtime.
+  - ``airflow.providers.common.compat.sdk`` centralizes compatibility imports 
for providers.
+
+  **Behaviour changes:**
+
+  - Sensors and other helpers that validate user input now raise 
``ValueError`` (instead of
+    ``AirflowException``) when ``poke_interval``/ ``timeout`` arguments are 
invalid.
+  - Importing deprecated exception names from ``airflow.exceptions`` logs a 
warning directing users to
+    the SDK import path.
+
+  **Exceptions now provided by ``airflow.sdk.exceptions``:**
+
+  - ``AirflowException`` and ``AirflowNotFoundException``
+  - ``AirflowRescheduleException`` and ``AirflowSensorTimeout``
+  - ``AirflowSkipException``, ``AirflowFailException``, 
``AirflowTaskTimeout``, ``AirflowTaskTerminated``
+  - ``TaskDeferred``, ``TaskDeferralTimeout``, ``TaskDeferralError``
+  - ``DagRunTriggerException`` and ``DownstreamTasksSkipped``
+  - ``AirflowDagCycleException`` and 
``AirflowInactiveAssetInInletOrOutletException``
+  - ``ParamValidationError``, ``DuplicateTaskIdFound``, 
``TaskAlreadyInTaskGroup``, ``TaskNotFound``, ``XComNotFound``
+  - ``AirflowOptionalProviderFeatureException``
+
+  **Backward compatibility:**
+
+  - Existing Dags/operators that still import from ``airflow.exceptions`` 
continue to work, though
+    they log warnings.
+  - Providers can rely on ``airflow.providers.common.compat.sdk`` to keep one 
import path that works
+    across supported Airflow versions.
+
+  **Migration:**
+
+  - Update custom operators, sensors, and extensions to import exception 
classes from
+    ``airflow.sdk.exceptions`` (or from the provider compat shim).
+  - Adjust custom validation code to expect ``ValueError`` for invalid sensor 
arguments if it
+    previously caught ``AirflowException``.
+
+- Support numeric multiplier values for retry_exponential_backoff parameter
+
+  The ``retry_exponential_backoff`` parameter now accepts numeric values to 
specify custom exponential backoff multipliers for task retries. Previously, 
this parameter only accepted boolean values (``True`` or ``False``), with 
``True`` using a hardcoded multiplier of ``2.0``.
+
+  **New behavior:**
+
+  - Numeric values (e.g., ``2.0``, ``3.5``) directly specify the exponential 
backoff multiplier
+  - ``retry_exponential_backoff=2.0`` doubles the delay between each retry 
attempt
+  - ``retry_exponential_backoff=0`` or ``False`` disables exponential backoff 
(uses fixed ``retry_delay``)
+
+  **Backwards compatibility:**
+
+  Existing DAGs using boolean values continue to work:
+
+  - ``retry_exponential_backoff=True`` → converted to ``2.0`` (maintains 
original behavior)
+  - ``retry_exponential_backoff=False`` → converted to ``0.0`` (no exponential 
backoff)
+
+  **API changes:**
+
+  The REST API schema for ``retry_exponential_backoff`` has changed from 
``type: boolean`` to ``type: number``. API clients must use numeric values 
(boolean values will be rejected).
+
+  **Migration:**
+
+  While boolean values in Python DAGs are automatically converted for 
backwards compatibility, we recommend updating to explicit numeric values for 
clarity:
+
+  - Change ``retry_exponential_backoff=True`` → 
``retry_exponential_backoff=2.0``
+  - Change ``retry_exponential_backoff=False`` → 
``retry_exponential_backoff=0``
+
+- Move serialization/deserialization (serde) logic into Task SDK
+
+  Airflow now sources serde logic from ``airflow.sdk.serde`` instead of
+  ``airflow.serialization.serde``. Serializer modules have moved from 
``airflow.serialization.serializers.*``
+  to ``airflow.sdk.serde.serializers.*``. The old import paths still work but 
emit ``DeprecatedImportWarning``
+  to guide migration. The backward compatibility layer will be removed in 
Airflow 4.
+
+  **What changed:**
+
+  - Serialization/deserialization code moved from ``airflow-core`` to 
``task-sdk`` package
+  - Serializer modules moved from ``airflow.serialization.serializers.*`` to 
``airflow.sdk.serde.serializers.*``
+  - New serializers should be added to ``airflow.sdk.serde.serializers.*`` 
namespace
+
+  **Code interface changes:**
+
+  - Import serializers from ``airflow.sdk.serde.serializers.*`` instead of 
``airflow.serialization.serializers.*``
+  - Import serialization functions from ``airflow.sdk.serde`` instead of 
``airflow.serialization.serde``
+
+  **Backward compatibility:**
+
+  - Existing serializers importing from 
``airflow.serialization.serializers.*`` continue to work with deprecation 
warnings
+  - All existing serializers (builtin, datetime, pandas, numpy, etc.) are 
available at the new location
+
+  **Migration:**
+
+  - **For existing custom serializers**: Update imports to use 
``airflow.sdk.serde.serializers.*``
+  - **For new serializers**: Add them to ``airflow.sdk.serde.serializers.*`` 
namespace (e.g., create 
``task-sdk/src/airflow/sdk/serde/serializers/your_serializer.py``)
+
+- Methods removed from PriorityWeightStrategy and TaskInstance
+
+  On (experimental) class ``PriorityWeightStrategy``, functions ``serialize()``
+  and ``deserialize()`` were never used anywhere, and have been removed. They
+  should not be relied on in user code.
+
+  On class ``TaskInstance``, functions ``run()``, ``render_templates()``, and
+  private members related to them have been removed. The class has been
+  considered internal since 3.0, and should not be relied on in user code. 
(#59780)
+- Modify the information returned by ``DagBag``
+
+  **New behavior:**
+  - ``DagBag`` now uses ``Path.relative_to`` for consistent cross-platform 
behavior.
+  - ``FileLoadStat`` now has two additional nullable fields: ``bundle_path`` 
and ``bundle_name``.
+
+  **Backward compatibility:**
+  ``FileLoadStat`` will no longer produce paths beginning with ``/`` with the 
meaning of "relative to the dags folder".
+  This is a breaking change for any custom code that performs string-based 
path manipulations relying on this behavior.
+  Users are advised to update such code to use ``pathlib.Path``. (#59785)
+- Methods removed from TaskInstance
+
+  On class ``TaskInstance``, functions ``run()``, ``render_templates()``,
+  ``get_template_context()``, and private members related to them have been
+  removed. The class has been considered internal since 3.0, and should not be
+  relied on in user code. (#59835)
+- Removed the redundant ``--conn-id`` option from the ``airflow connections 
list`` CLI command. Use ``airflow connections get`` instead. (#59855)
+- Add operator-level ``render_template_as_native_obj`` override
+
+  Operators can now override the DAG-level ``render_template_as_native_obj`` 
setting,
+  enabling fine-grained control over whether templates are rendered as native 
Python
+  types or strings on a per-task basis. Set 
``render_template_as_native_obj=True`` or
+  ``False`` on any operator to override the DAG setting, or leave as ``None`` 
(default)
+  to inherit from the DAG.
+
+- Add gunicorn support for API server with zero-downtime worker recycling
+
+  The API server now supports gunicorn as an alternative server with rolling 
worker restarts
+  to prevent memory accumulation in long-running processes.
+
+  **Key Benefits:**
+
+  * **Rolling worker restarts**: New workers spawn and pass health checks 
before old workers
+    are killed, ensuring zero downtime during worker recycling.
+
+  * **Memory sharing**: Gunicorn uses preload + fork, so workers share memory 
via
+    copy-on-write. This significantly reduces total memory usage compared to 
uvicorn's
+    multiprocess mode where each worker loads everything independently.
+
+  * **Correct FIFO signal handling**: Gunicorn's SIGTTOU kills the oldest 
worker (FIFO),
+    not the newest (LIFO), which is correct for rolling restarts.
+
+  **Configuration:**
+
+  .. code-block:: ini
+
+      [api]
+      # Use gunicorn instead of uvicorn
+      server_type = gunicorn
+
+      # Enable rolling worker restarts every 12 hours
+      worker_refresh_interval = 43200
+
+      # Restart workers one at a time
+      worker_refresh_batch_size = 1
+
+  Or via environment variables:
+
+  .. code-block:: bash
+
+      export AIRFLOW__API__SERVER_TYPE=gunicorn
+      export AIRFLOW__API__WORKER_REFRESH_INTERVAL=43200
+
+  **Requirements:**
+
+  Install the gunicorn extra: ``pip install 'apache-airflow-core[gunicorn]'``
+
+  **Note on uvicorn (default):**
+
+  The default uvicorn mode does not support rolling worker restarts because:
+
+  1. With workers=1, there is no master process to send signals to
+  2. uvicorn's SIGTTOU kills the newest worker (LIFO), defeating rolling 
restart purposes
+  3. Each uvicorn worker loads everything independently with no memory sharing
+
+  If you need worker recycling or memory-efficient multi-worker deployment, 
use gunicorn. (#60921)
+- Improved performance of rendered task instance fields cleanup for DAGs with 
many mapped tasks (~42x faster).
+
+  The config ``max_num_rendered_ti_fields_per_task`` is renamed to 
``num_dag_runs_to_retain_rendered_fields``
+  (old name still works with deprecation warning).
+
+  Retention is now based on the N most recent dag runs rather than N most 
recent task executions,
+  which may result in fewer records retained for conditional/sparse tasks. 
(#60951)
+- AuthManager Backfill permissions are now handled by the 
``requires_access_dag`` on the ``DagAccessEntity.Run``
+
+  ``is_authorized_backfill`` of the ``BaseAuthManager`` interface has been 
removed. Core will no longer call this method and their
+  provider counterpart implementation will be marked as deprecated.
+  Permissions for backfill operations are now checked against the 
``DagAccessEntity.Run`` permission using the existing
+  ``requires_access_dag`` decorator. In other words, if a user has permission 
to run a DAG, they can perform backfill operations on it.
+
+  Please update your security policies to ensure that users who need to 
perform backfill operations have the appropriate ``DagAccessEntity.Run`` 
permissions. (Users
+  having the Backfill permissions without having the DagRun ones will no 
longer be able to perform backfill operations without any update)
+
+
+Features
+^^^^^^^^
+
+- Enable FIPS Support by making Python LTO configurable via ``PYTHON_LTO`` 
build argument (#58337)
+- Support for task queue-based Trigger assignment to specific Triggerer hosts 
via the new ``--queues`` CLI option for the ``trigger`` command. (#59239)
+
+
+Improvements
+^^^^^^^^^^^^
+
+- The ``PythonOperator`` parameter ``python_callable`` now also supports async 
callables in Airflow 3.2, allowing users to run async def functions without 
manually managing an event loop. (#60268)
+
+
+Bug Fixes
+^^^^^^^^^
+
+- Always mask sensitive configuration values in public config APIs and treat 
the deprecated ``non-sensitive-only`` value as ``True``. (#59880)
+- Pool names with invalid characters for stats reporting are now automatically 
normalized (invalid characters replaced with underscores) when emitting 
metrics, preventing ``InvalidStatsNameException``. A warning is logged when 
normalization occurs, suggesting the pool be renamed. (#59938)
+
+
 Airflow 3.1.7 (2026-02-04)
 --------------------------
 
diff --git a/airflow-core/newsfragments/54505.significant.rst 
b/airflow-core/newsfragments/54505.significant.rst
deleted file mode 100644
index 3289308fa0f..00000000000
--- a/airflow-core/newsfragments/54505.significant.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-Move task-level exception imports into the Task SDK
-
-Airflow now sources task-facing exceptions (``AirflowSkipException``, 
``TaskDeferred``, etc.) from
-``airflow.sdk.exceptions``. ``airflow.exceptions`` still exposes the same 
exceptions, but they are
-proxies that emit ``DeprecatedImportWarning`` so Dag authors can migrate 
before the shim is removed.
-
-**What changed:**
-
-- Runtime code now consistently raises the SDK versions of task-level 
exceptions.
-- The Task SDK redefines these classes so workers no longer depend on 
``airflow-core`` at runtime.
-- ``airflow.providers.common.compat.sdk`` centralizes compatibility imports 
for providers.
-
-**Behaviour changes:**
-
-- Sensors and other helpers that validate user input now raise ``ValueError`` 
(instead of
-  ``AirflowException``) when ``poke_interval``/ ``timeout`` arguments are 
invalid.
-- Importing deprecated exception names from ``airflow.exceptions`` logs a 
warning directing users to
-  the SDK import path.
-
-**Exceptions now provided by ``airflow.sdk.exceptions``:**
-
-- ``AirflowException`` and ``AirflowNotFoundException``
-- ``AirflowRescheduleException`` and ``AirflowSensorTimeout``
-- ``AirflowSkipException``, ``AirflowFailException``, ``AirflowTaskTimeout``, 
``AirflowTaskTerminated``
-- ``TaskDeferred``, ``TaskDeferralTimeout``, ``TaskDeferralError``
-- ``DagRunTriggerException`` and ``DownstreamTasksSkipped``
-- ``AirflowDagCycleException`` and 
``AirflowInactiveAssetInInletOrOutletException``
-- ``ParamValidationError``, ``DuplicateTaskIdFound``, 
``TaskAlreadyInTaskGroup``, ``TaskNotFound``, ``XComNotFound``
-- ``AirflowOptionalProviderFeatureException``
-
-**Backward compatibility:**
-
-- Existing Dags/operators that still import from ``airflow.exceptions`` 
continue to work, though
-  they log warnings.
-- Providers can rely on ``airflow.providers.common.compat.sdk`` to keep one 
import path that works
-  across supported Airflow versions.
-
-**Migration:**
-
-- Update custom operators, sensors, and extensions to import exception classes 
from
-  ``airflow.sdk.exceptions`` (or from the provider compat shim).
-- Adjust custom validation code to expect ``ValueError`` for invalid sensor 
arguments if it
-  previously caught ``AirflowException``.
-
-* Types of change
-
-  * [ ] Dag changes
-  * [ ] Config changes
-  * [ ] API changes
-  * [ ] CLI changes
-  * [x] Behaviour changes
-  * [ ] Plugin changes
-  * [ ] Dependency changes
-  * [x] Code interface changes
-
-* Migration rules needed
-
-  * Import task-level exceptions such as ``AirflowSkipException``, 
``TaskDeferred``,
-    ``AirflowFailException``, etc. from ``airflow.sdk.exceptions`` instead of 
``airflow.exceptions``.
-  * Update custom sensors/operators that validated arguments by catching 
``AirflowException`` to
-    expect ``ValueError`` for invalid ``poke_interval`` / ``timeout`` inputs.
diff --git a/airflow-core/newsfragments/56866.significant.rst 
b/airflow-core/newsfragments/56866.significant.rst
deleted file mode 100644
index ac3806334a5..00000000000
--- a/airflow-core/newsfragments/56866.significant.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-Support numeric multiplier values for retry_exponential_backoff parameter
-
-The ``retry_exponential_backoff`` parameter now accepts numeric values to 
specify custom exponential backoff multipliers for task retries. Previously, 
this parameter only accepted boolean values (``True`` or ``False``), with 
``True`` using a hardcoded multiplier of ``2.0``.
-
-**New behavior:**
-
-- Numeric values (e.g., ``2.0``, ``3.5``) directly specify the exponential 
backoff multiplier
-- ``retry_exponential_backoff=2.0`` doubles the delay between each retry 
attempt
-- ``retry_exponential_backoff=0`` or ``False`` disables exponential backoff 
(uses fixed ``retry_delay``)
-
-**Backwards compatibility:**
-
-Existing DAGs using boolean values continue to work:
-
-- ``retry_exponential_backoff=True`` → converted to ``2.0`` (maintains 
original behavior)
-- ``retry_exponential_backoff=False`` → converted to ``0.0`` (no exponential 
backoff)
-
-**API changes:**
-
-The REST API schema for ``retry_exponential_backoff`` has changed from ``type: 
boolean`` to ``type: number``. API clients must use numeric values (boolean 
values will be rejected).
-
-**Migration:**
-
-While boolean values in Python DAGs are automatically converted for backwards 
compatibility, we recommend updating to explicit numeric values for clarity:
-
-- Change ``retry_exponential_backoff=True`` → ``retry_exponential_backoff=2.0``
-- Change ``retry_exponential_backoff=False`` → ``retry_exponential_backoff=0``
-
-* Types of change
-
-  * [ ] Dag changes
-  * [ ] Config changes
-  * [x] API changes
-  * [ ] CLI changes
-  * [x] Behaviour changes
-  * [ ] Plugin changes
-  * [ ] Dependency changes
-  * [ ] Code interface changes
diff --git a/airflow-core/newsfragments/57069.significant.rst 
b/airflow-core/newsfragments/57069.significant.rst
deleted file mode 100644
index a4d1c22bb7a..00000000000
--- a/airflow-core/newsfragments/57069.significant.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-Git provider: Remove '.git' folder from versions in GitDagBundle
-
-A new option(``prune_dotgit_folder``) has been added to the GitDagBundle to 
remove ``.git`` from
-versioned bundles by default to reduce disk usage; set 
prune_dotgit_folder=False to keep
-repo metadata in the dag bundle's versions folders.
-
-* Types of change
-
-  * [ ] Dag changes
-  * [ ] Config changes
-  * [ ] API changes
-  * [ ] CLI changes
-  * [x] Behaviour changes
-  * [ ] Plugin changes
-  * [ ] Dependency changes
-  * [ ] Code interface changes
diff --git a/airflow-core/newsfragments/58337.feature.rst 
b/airflow-core/newsfragments/58337.feature.rst
deleted file mode 100644
index e2720735819..00000000000
--- a/airflow-core/newsfragments/58337.feature.rst
+++ /dev/null
@@ -1 +0,0 @@
-Enable FIPS Support by making Python LTO configurable via ``PYTHON_LTO`` build 
argument
diff --git a/airflow-core/newsfragments/58524.significant.rst 
b/airflow-core/newsfragments/58524.significant.rst
deleted file mode 100644
index ef94f296dcf..00000000000
--- a/airflow-core/newsfragments/58524.significant.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-FastAPI dependency is updated and lower bound set to ``0.121.0``
-
-Airflow now requires FastAPI ``>=0.121.0`` and removes the previous upper
-constraint. This aligns with FastAPI's new dependency lifecycle scopes
-(e.g. request/function) that change how dependencies with ``yield`` are
-exited.
-See `FastAPI PR #14262 <https://github.com/fastapi/fastapi/pull/14262>`_.
diff --git a/airflow-core/newsfragments/58992.significant.rst 
b/airflow-core/newsfragments/58992.significant.rst
deleted file mode 100644
index 22eb8fe6d8a..00000000000
--- a/airflow-core/newsfragments/58992.significant.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-Move serialization/deserialization (serde) logic into Task SDK
-
-Airflow now sources serde logic from ``airflow.sdk.serde`` instead of
-``airflow.serialization.serde``. Serializer modules have moved from 
``airflow.serialization.serializers.*``
-to ``airflow.sdk.serde.serializers.*``. The old import paths still work but 
emit ``DeprecatedImportWarning``
-to guide migration. The backward compatibility layer will be removed in 
Airflow 4.
-
-**What changed:**
-
-- Serialization/deserialization code moved from ``airflow-core`` to 
``task-sdk`` package
-- Serializer modules moved from ``airflow.serialization.serializers.*`` to 
``airflow.sdk.serde.serializers.*``
-- New serializers should be added to ``airflow.sdk.serde.serializers.*`` 
namespace
-
-**Code interface changes:**
-
-- Import serializers from ``airflow.sdk.serde.serializers.*`` instead of 
``airflow.serialization.serializers.*``
-- Import serialization functions from ``airflow.sdk.serde`` instead of 
``airflow.serialization.serde``
-
-**Backward compatibility:**
-
-- Existing serializers importing from ``airflow.serialization.serializers.*`` 
continue to work with deprecation warnings
-- All existing serializers (builtin, datetime, pandas, numpy, etc.) are 
available at the new location
-
-**Migration:**
-
-- **For existing custom serializers**: Update imports to use 
``airflow.sdk.serde.serializers.*``
-- **For new serializers**: Add them to ``airflow.sdk.serde.serializers.*`` 
namespace (e.g., create 
``task-sdk/src/airflow/sdk/serde/serializers/your_serializer.py``)
-
-* Types of change
-
-  * [ ] Dag changes
-  * [ ] Config changes
-  * [ ] API changes
-  * [ ] CLI changes
-  * [x] Behaviour changes
-  * [ ] Plugin changes
-  * [ ] Dependency changes
-  * [x] Code interface changes
-
-* Migration rules needed
-
-  * Import serializers from ``airflow.sdk.serde.serializers.*`` instead of 
``airflow.serialization.serializers.*``
-  * Add new custom serializers to ``airflow.sdk.serde.serializers.*`` namespace
diff --git a/airflow-core/newsfragments/59239.feature.rst 
b/airflow-core/newsfragments/59239.feature.rst
deleted file mode 100644
index e4292a4b906..00000000000
--- a/airflow-core/newsfragments/59239.feature.rst
+++ /dev/null
@@ -1 +0,0 @@
-Support for task queue-based Trigger assignment to specific Triggerer hosts 
via the new ``--queues`` CLI option for the ``trigger`` command.
diff --git a/airflow-core/newsfragments/59780.significant.rst 
b/airflow-core/newsfragments/59780.significant.rst
deleted file mode 100644
index fb989784a25..00000000000
--- a/airflow-core/newsfragments/59780.significant.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Methods removed from PriorityWeightStrategy and TaskInstance
-
-On (experimental) class ``PriorityWeightStrategy``, functions ``serialize()``
-and ``deserialize()`` were never used anywhere, and have been removed. They
-should not be relied on in user code.
-
-On class ``TaskInstance``, functions ``run()``, ``render_templates()``, and
-private members related to them have been removed. The class has been
-considered internal since 3.0, and should not be relied on in user code.
diff --git a/airflow-core/newsfragments/59785.significant.rst 
b/airflow-core/newsfragments/59785.significant.rst
deleted file mode 100644
index f92ccbc0122..00000000000
--- a/airflow-core/newsfragments/59785.significant.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-Modify the information returned by ``DagBag``
-
-**New behavior:**
-- ``DagBag`` now uses ``Path.relative_to`` for consistent cross-platform 
behavior.
-- ``FileLoadStat`` now has two additional nullable fields: ``bundle_path`` and 
``bundle_name``.
-
-**Backward compatibility:**
-``FileLoadStat`` will no longer produce paths beginning with ``/`` with the 
meaning of "relative to the dags folder".
-This is a breaking change for any custom code that performs string-based path 
manipulations relying on this behavior.
-Users are advised to update such code to use ``pathlib.Path``.
diff --git a/airflow-core/newsfragments/59835.significant.rst 
b/airflow-core/newsfragments/59835.significant.rst
deleted file mode 100644
index 02b9d709a49..00000000000
--- a/airflow-core/newsfragments/59835.significant.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Methods removed from TaskInstance
-
-On class ``TaskInstance``, functions ``run()``, ``render_templates()``,
-``get_template_context()``, and private members related to them have been
-removed. The class has been considered internal since 3.0, and should not be
-relied on in user code.
diff --git a/airflow-core/newsfragments/59855.significant.rst 
b/airflow-core/newsfragments/59855.significant.rst
deleted file mode 100644
index 94507ca9e3c..00000000000
--- a/airflow-core/newsfragments/59855.significant.rst
+++ /dev/null
@@ -1 +0,0 @@
-Removed the redundant ``--conn-id`` option from the ``airflow connections 
list`` CLI command. Use ``airflow connections get`` instead.
diff --git a/airflow-core/newsfragments/59880.bugfix.rst 
b/airflow-core/newsfragments/59880.bugfix.rst
deleted file mode 100644
index e1c35a9d640..00000000000
--- a/airflow-core/newsfragments/59880.bugfix.rst
+++ /dev/null
@@ -1 +0,0 @@
-Always mask sensitive configuration values in public config APIs and treat the 
deprecated ``non-sensitive-only`` value as ``True``.
diff --git a/airflow-core/newsfragments/59938.bugfix.rst 
b/airflow-core/newsfragments/59938.bugfix.rst
deleted file mode 100644
index db9ecabfc0c..00000000000
--- a/airflow-core/newsfragments/59938.bugfix.rst
+++ /dev/null
@@ -1 +0,0 @@
-Pool names with invalid characters for stats reporting are now automatically 
normalized (invalid characters replaced with underscores) when emitting 
metrics, preventing ``InvalidStatsNameException``. A warning is logged when 
normalization occurs, suggesting the pool be renamed.
diff --git a/airflow-core/newsfragments/60268.improvement.rst 
b/airflow-core/newsfragments/60268.improvement.rst
deleted file mode 100644
index 8c7e92b8f0d..00000000000
--- a/airflow-core/newsfragments/60268.improvement.rst
+++ /dev/null
@@ -1 +0,0 @@
-The ``PythonOperator`` parameter ``python_callable`` now also supports async 
callables in Airflow 3.2, allowing users to run async def functions without 
manually managing an event loop.
diff --git a/airflow-core/newsfragments/60619.significant.rst 
b/airflow-core/newsfragments/60619.significant.rst
deleted file mode 100644
index 2d975f624bd..00000000000
--- a/airflow-core/newsfragments/60619.significant.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-Add operator-level ``render_template_as_native_obj`` override
-
-Operators can now override the DAG-level ``render_template_as_native_obj`` 
setting,
-enabling fine-grained control over whether templates are rendered as native 
Python
-types or strings on a per-task basis. Set 
``render_template_as_native_obj=True`` or
-``False`` on any operator to override the DAG setting, or leave as ``None`` 
(default)
-to inherit from the DAG.
-
-* Types of change
-
-  * [ ] Dag changes
-  * [ ] Config changes
-  * [ ] API changes
-  * [ ] CLI changes
-  * [x] Behaviour changes
-  * [ ] Plugin changes
-  * [ ] Dependency changes
-  * [ ] Code interface changes
-
-* Migration rules needed
-
-  * None - this is a new optional feature with backwards-compatible defaults
diff --git a/airflow-core/newsfragments/60803.significant.rst 
b/airflow-core/newsfragments/60803.significant.rst
deleted file mode 100644
index 1054258ad38..00000000000
--- a/airflow-core/newsfragments/60803.significant.rst
+++ /dev/null
@@ -1 +0,0 @@
-Move ``upstream_map_indexes`` computation from API server to Task SDK, 
reducing memory usage on task start by eliminating ``SerializedDAG`` loads.
diff --git a/airflow-core/newsfragments/60921.significant.rst 
b/airflow-core/newsfragments/60921.significant.rst
deleted file mode 100644
index c97bbcdf97a..00000000000
--- a/airflow-core/newsfragments/60921.significant.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-Add gunicorn support for API server with zero-downtime worker recycling
-
-The API server now supports gunicorn as an alternative server with rolling 
worker restarts
-to prevent memory accumulation in long-running processes.
-
-**Key Benefits:**
-
-* **Rolling worker restarts**: New workers spawn and pass health checks before 
old workers
-  are killed, ensuring zero downtime during worker recycling.
-
-* **Memory sharing**: Gunicorn uses preload + fork, so workers share memory via
-  copy-on-write. This significantly reduces total memory usage compared to 
uvicorn's
-  multiprocess mode where each worker loads everything independently.
-
-* **Correct FIFO signal handling**: Gunicorn's SIGTTOU kills the oldest worker 
(FIFO),
-  not the newest (LIFO), which is correct for rolling restarts.
-
-**Configuration:**
-
-.. code-block:: ini
-
-    [api]
-    # Use gunicorn instead of uvicorn
-    server_type = gunicorn
-
-    # Enable rolling worker restarts every 12 hours
-    worker_refresh_interval = 43200
-
-    # Restart workers one at a time
-    worker_refresh_batch_size = 1
-
-Or via environment variables:
-
-.. code-block:: bash
-
-    export AIRFLOW__API__SERVER_TYPE=gunicorn
-    export AIRFLOW__API__WORKER_REFRESH_INTERVAL=43200
-
-**Requirements:**
-
-Install the gunicorn extra: ``pip install 'apache-airflow-core[gunicorn]'``
-
-**Note on uvicorn (default):**
-
-The default uvicorn mode does not support rolling worker restarts because:
-
-1. With workers=1, there is no master process to send signals to
-2. uvicorn's SIGTTOU kills the newest worker (LIFO), defeating rolling restart 
purposes
-3. Each uvicorn worker loads everything independently with no memory sharing
-
-If you need worker recycling or memory-efficient multi-worker deployment, use 
gunicorn.
diff --git a/airflow-core/newsfragments/60951.significant.rst 
b/airflow-core/newsfragments/60951.significant.rst
deleted file mode 100644
index 1f203b34a62..00000000000
--- a/airflow-core/newsfragments/60951.significant.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-Improved performance of rendered task instance fields cleanup for DAGs with 
many mapped tasks (~42x faster).
-
-The config ``max_num_rendered_ti_fields_per_task`` is renamed to 
``num_dag_runs_to_retain_rendered_fields``
-(old name still works with deprecation warning).
-
-Retention is now based on the N most recent dag runs rather than N most recent 
task executions,
-which may result in fewer records retained for conditional/sparse tasks.
diff --git a/airflow-core/newsfragments/61400.significant.rst 
b/airflow-core/newsfragments/61400.significant.rst
deleted file mode 100644
index 7bdee4390a7..00000000000
--- a/airflow-core/newsfragments/61400.significant.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-AuthManager Backfill permissions are now handled by the 
``requires_access_dag`` on the ``DagAccessEntity.Run``
-
-``is_authorized_backfill`` of the ``BaseAuthManager`` interface has been 
removed. Core will no longer call this method and their
-provider counterpart implementation will be marked as deprecated.
-Permissions for backfill operations are now checked against the 
``DagAccessEntity.Run`` permission using the existing
-``requires_access_dag`` decorator. In other words, if a user has permission to 
run a DAG, they can perform backfill operations on it.
-
-Please update your security policies to ensure that users who need to perform 
backfill operations have the appropriate ``DagAccessEntity.Run`` permissions. 
(Users
-having the Backfill permissions without having the DagRun ones will no longer 
be able to perform backfill operations without any update)
-
-* Types of change
-
-  * [ ] Dag changes
-  * [ ] Config changes
-  * [x] API changes
-  * [ ] CLI changes
-  * [x] Behaviour changes
-  * [ ] Plugin changes
-  * [ ] Dependency changes
-  * [ ] Code interface changes
diff --git a/reproducible_build.yaml b/reproducible_build.yaml
index 37f32a0bb8f..a40fbcd1b4b 100644
--- a/reproducible_build.yaml
+++ b/reproducible_build.yaml
@@ -1,2 +1,2 @@
-release-notes-hash: b70d35a9f25bf4c0d4a8e16361becc4b
-source-date-epoch: 1771642162
+release-notes-hash: 2a829d64295e423a1b0c8f546addbb6a
+source-date-epoch: 1772545530

Reply via email to