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

hussein-awala pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new fb6534f1db4 Prepare deferred providers RC2 for 2026-10-29 (#75947)
fb6534f1db4 is described below

commit fb6534f1db4c57cf34be78c57d07a481d21ff7af
Author: Hussein Awala <[email protected]>
AuthorDate: Thu Oct 29 13:00:28 2026 +0100

    Prepare deferred providers RC2 for 2026-10-29 (#75947)
    
    * Prepare deferred providers release 2026-10-29
    
    The providers held from the previous wave need renewed review against the 
merged fixes and clear guidance for consumers affected by the approved behavior 
changes.
    
    * Refresh deferred provider notes after Azure recovery fix
    
    * Describe Azure release changes relative to the stable version
---
 providers/.last_release_date.txt                   |  2 +-
 providers/common/ai/README.rst                     | 55 +++++++++++-----------
 providers/common/ai/docs/changelog.rst             | 42 +++++++++++++----
 providers/common/ai/docs/structured_output.rst     | 10 ++--
 providers/common/ai/provider.yaml                  |  2 +-
 .../providers/common/ai/plugins/www/src/model.tsx  |  4 +-
 providers/microsoft/azure/docs/changelog.rst       | 20 ++++++--
 providers/microsoft/azure/provider.yaml            |  2 +-
 providers/openlineage/docs/changelog.rst           | 24 ++++++++++
 providers/openlineage/provider.yaml                |  2 +-
 10 files changed, 112 insertions(+), 51 deletions(-)

diff --git a/providers/.last_release_date.txt b/providers/.last_release_date.txt
index 68dabea1962..fe72c1261f2 100644
--- a/providers/.last_release_date.txt
+++ b/providers/.last_release_date.txt
@@ -1 +1 @@
-2026-10-20
+2026-10-29
diff --git a/providers/common/ai/README.rst b/providers/common/ai/README.rst
index d2e0d5835e2..2fc139628d4 100644
--- a/providers/common/ai/README.rst
+++ b/providers/common/ai/README.rst
@@ -84,33 +84,34 @@ Dependent package
 Optional dependencies
 ----------------------
 
-===============  
=======================================================================================================================================
-Extra            Dependencies
-===============  
=======================================================================================================================================
-``anthropic``    ``pydantic-ai-slim[anthropic]>=2.36.0``, ``anthropic>=1.1.0``
-``bedrock``      ``pydantic-ai-slim[bedrock]>=2.36.0``
-``google``       ``pydantic-ai-slim[google]>=2.36.0``
-``openai``       ``pydantic-ai-slim[openai]>=2.36.0``, ``openai>=2.47.0``
-``typesafe``     ``typesafe-sdk>=0.6.0``
-``mcp``          ``pydantic-ai-slim[mcp]>=2.36.0``
-``modal``        ``apache-airflow-providers-modal``, ``modal>=1.5.2``
-``opensandbox``  ``opensandbox>=1.1.0``
-``boat``         ``boat-sdk>=1.9.3``
-``openshell``    ``openshell>=0.1.2,<0.2``, ``grpcio>=1.78.0``, 
``protobuf>=6.31.1``
-``code-mode``    ``pydantic-ai-harness[codemode]>=0.35.0``
-``shields``      ``pydantic-ai-shields>=0.3.4``
-``skills``       ``apache-airflow-providers-git>=0.4.0``, 
``pydantic-ai-skills>=1.2.0,<2``
-``islo``         ``islo>=0.3.19``
-``avro``         ``fastavro>=1.10.0; python_version < "3.14"``, 
``fastavro>=1.12.1; python_version >= "3.14"``
-``parquet``      ``pyarrow>=18.0.0; python_version < '3.14'``, 
``pyarrow>=22.0.0; python_version >= '3.14'``
-``sql``          ``apache-airflow-providers-common-sql>=2.2.0``, 
``sqlglot>=30.0.0``
-``common.sql``   ``apache-airflow-providers-common-sql>=2.2.0``
-``langchain``    ``langchain>=1.0.0``
-``llamaindex``   ``dataclasses-json>=0.6.7``, ``llama-index-core>=0.14.5``, 
``llama-index-embeddings-openai>=0.6.0``, ``llama-index-llms-openai>=0.6.8``
-``pdf``          ``pypdf>=4.0.0``
-``docx``         ``python-docx>=1.0.0``
-``git``          ``apache-airflow-providers-git``
-===============  
=======================================================================================================================================
+====================  
=======================================================================================================================================
+Extra                 Dependencies
+====================  
=======================================================================================================================================
+``anthropic``         ``pydantic-ai-slim[anthropic]>=2.36.0``, 
``anthropic>=1.1.0,<2``
+``bedrock``           ``pydantic-ai-slim[bedrock]>=2.36.0``
+``google``            ``pydantic-ai-slim[google]>=2.36.0``
+``openai``            ``pydantic-ai-slim[openai]>=2.36.0``, ``openai>=2.47.0``
+``typesafe``          ``typesafe-sdk>=0.6.0``
+``mcp``               ``pydantic-ai-slim[mcp]>=2.36.0``
+``modal``             ``apache-airflow-providers-modal``, ``modal>=1.5.2``
+``opensandbox``       ``opensandbox>=1.1.0``
+``boat``              ``boat-sdk>=1.9.3``
+``openshell``         ``openshell>=0.1.2,<0.2``, ``grpcio>=1.78.0``, 
``protobuf>=6.31.1``
+``code-mode``         ``pydantic-ai-harness[codemode]>=0.35.0``
+``shields``           ``pydantic-ai-shields>=0.3.4``
+``skills``            ``apache-airflow-providers-git>=0.4.0``, 
``pydantic-ai-skills>=1.2.0,<2``
+``islo``              ``islo>=0.3.19``
+``avro``              ``fastavro>=1.10.0; python_version < "3.14"``, 
``fastavro>=1.12.1; python_version >= "3.14"``
+``parquet``           ``pyarrow>=18.0.0; python_version < '3.14'``, 
``pyarrow>=22.0.0; python_version >= '3.14'``
+``sql``               ``apache-airflow-providers-common-sql>=2.2.0``, 
``sqlglot>=30.0.0``
+``common.sql``        ``apache-airflow-providers-common-sql>=2.2.0``
+``langchain``         ``langchain>=1.0.0``
+``llamaindex``        ``dataclasses-json>=0.6.7``, 
``llama-index-core>=0.14.5``, ``llama-index-embeddings-openai>=0.6.0``, 
``llama-index-llms-openai>=0.6.8``
+``pdf``               ``pypdf>=4.0.0``
+``docx``              ``python-docx>=1.0.0``
+``git``               ``apache-airflow-providers-git``
+``claude-agent-sdk``  ``claude-agent-sdk>=0.2.160``
+====================  
=======================================================================================================================================
 
 The changelog for the provider package can be found in the
 `changelog 
<https://airflow.apache.org/docs/apache-airflow-providers-common-ai/1.1.0/changelog.html>`_.
diff --git a/providers/common/ai/docs/changelog.rst 
b/providers/common/ai/docs/changelog.rst
index 1d288a62d4e..bc15df33ebf 100644
--- a/providers/common/ai/docs/changelog.rst
+++ b/providers/common/ai/docs/changelog.rst
@@ -25,7 +25,12 @@
 Changelog
 ---------
 
+1.1.0
+.....
+
 .. note::
+  **Significant change: AgentOperator output serialization**
+
   The worker cannot register a model class for XCom deserialization when 
``output_type`` is a
   list of output types such as ``[Summary, int]``, an output marker such as
   ``ToolOutput(Summary)``, an output function, a ``TypeAliasType`` or a 
``NewType``. For these
@@ -36,8 +41,8 @@ Changelog
   model is still dumped with plain ``model_dump()`` when 
``serialize_output=True`` is set or on
   Airflow < 3.3.
 
-  The new behaviour changes the type that a downstream task receives after an 
upgrade. Versions
-  1.0.0 and 1.1.0 pushed these models as model instances. They dumped a 
top-level model with
+  The new behaviour changes the type that a downstream task receives after an 
upgrade.
+  Version 1.0.0 pushed these models as model instances. It dumped a top-level 
model with
   plain ``model_dump()`` only in HITL review, with ``serialize_output=True`` 
or on
   Airflow < 3.3. A downstream task loaded a model instance when the model's 
class was listed in
   ``[core] allowed_deserialization_classes``, or on Airflow >= 3.3 when 
another task in the
@@ -49,15 +54,16 @@ Changelog
   :doc:`structured_output`.
 
 .. warning::
-  The following changes are breaking for code written against 1.0.0:
+  The following changes affect code written against 1.0.0:
 
   * ``PydanticAIHook``: when a connection supplies credentials (password or 
host) and the provider class
     rejects the resulting keyword arguments (``TypeError``), the hook now 
raises ``ValueError``. In 1.0.0
     it logged a warning and fell back to environment-variable authentication, 
which could authenticate
     as a different identity than the connection. Fix the connection fields for 
that provider, or remove
     the credentials from the connection if environment-variable authentication 
is what you want.
-  * ``airflow.providers.common.ai.policies.retry``: importing it without the 
Airflow ``RetryPolicy``
-    support (Airflow older than 3.3) now raises 
``AirflowOptionalProviderFeatureException`` instead of
+  * ``MCPHook.get_conn()`` when optional MCP dependencies are missing, and
+    ``airflow.providers.common.ai.policies.retry`` when imported without the 
Airflow ``RetryPolicy``
+    support (Airflow older than 3.3) now raise 
``AirflowOptionalProviderFeatureException`` instead of
     ``ImportError``. It is not an ``ImportError`` subclass (it derives from 
``AirflowException``), so a
     Dag that guards the import with ``except ImportError:`` as in the 1.0.0 
example Dag now fails to
     parse on those versions. Catch both, importing the exception from
@@ -81,7 +87,7 @@ Changelog
   the two hooks.
 
 .. note::
-  ``LoggingToolset`` is removed from the public API. Importing it from either
+  The experimental ``LoggingToolset`` is removed from the public API. 
Importing it from either
   ``airflow.providers.common.ai.toolsets.LoggingToolset`` (exported from the 
package since
   1.0.0, see #74449 under 1.0.0 Features below) or
   ``airflow.providers.common.ai.toolsets.logging.LoggingToolset`` (public 
since 0.1.0) now
@@ -91,28 +97,46 @@ Changelog
   (import it from ``airflow.providers.common.ai.toolsets.logging``); its 
``logger`` argument
   sets the logger. See :doc:`stability`.
 
-1.1.0
-.....
-
 Features
 ~~~~~~~~
 
+* ``Publish usage, run id and model name from LLMOperator's subclasses 
(#75208)``
+* ``Let a generic pydanticai connection set a default model provider (#75909)``
+* ``Add async aget_conn and acreate_agent to PydanticAIHook (#74150)``
+* ``Use Common AI toolsets with the Claude Agent SDK through AirflowTools 
(#74026)``
+* ``Support multimodal prompts with require_approval in LLM operators 
(#74388)``
 * ``Add emit_message_history to record an agent transcript without seeding it 
(#74811)``
 * ``Push LLMOperator's token usage and cost to XCom (#74355)``
 
 Bug Fixes
 ~~~~~~~~~
 
+* ``Report invalid Common AI hook configuration instead of silently changing 
authentication (#74451)``
+* ``Load Common AI plugin tabs when the browser reaches Airflow on another 
origin (#75522)``
+* ``Fix Common AI's AI Model tab for tasks inside a task loop (#75518)``
+* ``Serialize unregistered AgentOperator output models as JSON-compatible 
dictionaries (#74729)``
 * ``Use common.compat mask_secret in MCPHook (#75064)``
 * ``Preserve SQL table allowlist validation with newer sqlglot and add OpenAI 
Decisions and System One to the connection vendor list (#73822)``
 
 Misc
 ~~~~
 
+* ``Keep the Anthropic SDK below 2 until pydantic-ai supports it (#75640)``
+* ``List Meta among Common AI external services and recognize pydantic-ai 2.59 
providers (#75641)``
+* ``Replace the experimental LoggingToolset API with ToolLoggingCapability 
(#74694)``
+* ``Bump Vite to 8.1.6 (#75357)``
 * ``Remove unused mypy suppressions in common providers (#75257)``
 
+Doc-only
+~~~~~~~~
+
+* ``Rewrite the Common AI sandbox configuration page around what users set up 
(#75826)``
+* ``Add an LLM task loop example that stops on a dollar or token budget 
(#75516)``
+
 .. Below changes are excluded from the changelog. Move them to
    appropriate section above if needed. Do not delete the lines(!):
+   * ``Fix flaky OpenShell background-child wrapper test (#75823)``
+   * ``Prepare providers release 2026-10-20 (#75209)``
    * ``Number task loop iterations from one instead of zero (#74773)``
    * ``Stop parallel prek hooks racing on __pycache__ cleanup (#73823)``
    * ``Fix Modal contract test importing a private class from its old location 
(#75188)``
diff --git a/providers/common/ai/docs/structured_output.rst 
b/providers/common/ai/docs/structured_output.rst
index 8be2063916e..e8ca62d062a 100644
--- a/providers/common/ai/docs/structured_output.rst
+++ b/providers/common/ai/docs/structured_output.rst
@@ -74,24 +74,24 @@ model class. ``AgentOperator`` and ``@task.agent`` 
therefore push a model
 inside a list, tuple or dict as a JSON-compatible dict for every
 ``output_type``, not only for the output types listed above.
 
-Upgrading from common.ai 1.0.0 or 1.1.0 can change the type that a downstream
+Upgrading from common.ai 1.0.0 to 1.1.0 can change the type that a downstream
 task receives:
 
-* On Airflow 3.3 and later, common.ai 1.0.0 and 1.1.0 pushed each model in the
+* On Airflow 3.3 and later, common.ai 1.0.0 pushed each model in the
   output as a model instance when ``output_type`` was one of the output types
-  listed above. They dumped a top-level model with plain ``model_dump()`` only
+  listed above. It dumped a top-level model with plain ``model_dump()`` only
   when ``serialize_output=True`` was set or in HITL review. A downstream task
   loaded the instance when the class was listed in
   ``[core] allowed_deserialization_classes`` or when another task in the same
   Dag declared the class as its ``output_type``. That downstream task now gets
   a dict, and ``result.field`` raises ``AttributeError``.
 * In HITL review on Airflow 3.3 and later without ``serialize_output=True``,
-  common.ai 1.0.0 and 1.1.0 dumped a top-level model of these output types with
+  common.ai 1.0.0 dumped a top-level model of these output types with
   plain ``model_dump()`` after the reviewer approved the model. Values such as
   ``datetime``, ``date``, ``timedelta``, ``UUID`` and ``Decimal`` in that model
   now arrive as strings, for example ``"PT1M30S"`` for a ``timedelta``. Tuples
   and sets in that model now arrive as lists.
-* Before Airflow 3.3, common.ai 1.0.0 and 1.1.0 pushed a model inside a list,
+* Before Airflow 3.3, common.ai 1.0.0 pushed a model inside a list,
   tuple or dict as a model instance, for every ``output_type``. A downstream
   task that loaded the instance because the class was listed in
   ``[core] allowed_deserialization_classes`` now gets a dict.
diff --git a/providers/common/ai/provider.yaml 
b/providers/common/ai/provider.yaml
index 80ac9b8c31e..0fe3ff1df40 100644
--- a/providers/common/ai/provider.yaml
+++ b/providers/common/ai/provider.yaml
@@ -23,7 +23,7 @@ description: |
 
 state: ready
 lifecycle: production
-source-date-epoch: 1792489528
+source-date-epoch: 1793262026
 build-system: hatchling
 # note that those versions are maintained by release manager - do not update 
them manually
 versions:
diff --git 
a/providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/model.tsx 
b/providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/model.tsx
index 25431e72acd..e4fd93ccd34 100644
--- 
a/providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/model.tsx
+++ 
b/providers/common/ai/src/airflow/providers/common/ai/plugins/www/src/model.tsx
@@ -75,7 +75,9 @@ const PluginComponent: FC<PluginComponentProps> = (props) => {
  * Chakra semantic tokens handle light/dark mode automatically.
  */
 const WrappedPluginComponent: FC<PluginComponentProps> = (props) => {
-  const system = (globalThis as Record<string, unknown>).ChakraUISystem ?? 
localSystem;
+  const system =
+    (globalThis as typeof globalThis & { ChakraUISystem?: typeof localSystem 
}).ChakraUISystem ??
+    localSystem;
 
   return (
     <ChakraProvider value={system}>
diff --git a/providers/microsoft/azure/docs/changelog.rst 
b/providers/microsoft/azure/docs/changelog.rst
index 189adce46ee..d20ae314a88 100644
--- a/providers/microsoft/azure/docs/changelog.rst
+++ b/providers/microsoft/azure/docs/changelog.rst
@@ -32,18 +32,27 @@ Changelog
 
 .. note::
 
-    ``PowerBIDatasetRefreshOperator`` now starts refreshes on the worker, so 
workers need access
-    to the Power BI service. On Airflow 3.3 and later it resumes an existing 
refresh by default.
-    Set ``durable=False`` to submit a fresh refresh on each retry and cancel 
refreshes after
-    polling errors. ``MSGraphAsyncOperator`` recovery is opt-in with 
``durable=True``.
+    On Airflow 3.3 and later, ``PowerBIDatasetRefreshOperator`` resumes an 
existing refresh
+    by default. Durable execution starts refreshes on the worker, so workers 
need access
+    to the Power BI service. Set ``durable=False`` to preserve triggerer-only 
access:
+    the trigger starts a fresh refresh on each try and cancels it after 
polling errors.
+    On Airflow versions before 3.3, durable execution is disabled and this 
triggerer-only
+    behavior is preserved automatically. ``MSGraphAsyncOperator`` recovery 
remains opt-in
+    with ``durable=True`` and requires Airflow 3.3 or later.
 
 Features
 ~~~~~~~~
 
 * ``Add AzureAISearchHook to the Microsoft Azure provider (#74290)``
-* ``Make the PowerBI refresh and MSGraph operators durable (#74675)``
+* ``Make the PowerBI refresh and MSGraph operators durable (#74675, #75272)``
 * ``Add WasbDagBundle to load Dags from Azure Blob Storage (#67016)``
 
+Bug Fixes
+~~~~~~~~~
+
+* ``Fix MSGraphSensor timeout being reset on every re-defer (#75774)``
+* ``Detect when enhanced Power BI refreshes finish or fail (#74600)``
+
 Misc
 ~~~~
 
@@ -52,6 +61,7 @@ Misc
 
 .. Below changes are excluded from the changelog. Move them to
    appropriate section above if needed. Do not delete the lines(!):
+   * ``Prepare providers release 2026-10-20 (#75209)``
 
 15.2.1
 ......
diff --git a/providers/microsoft/azure/provider.yaml 
b/providers/microsoft/azure/provider.yaml
index 783cfd5dcad..32cbe5c1a52 100644
--- a/providers/microsoft/azure/provider.yaml
+++ b/providers/microsoft/azure/provider.yaml
@@ -21,7 +21,7 @@ description: |
   `Microsoft Azure <https://azure.microsoft.com/>`__
 state: ready
 lifecycle: production
-source-date-epoch: 1792489528
+source-date-epoch: 1793262026
 # Note that those versions are maintained by release manager - do not update 
them manually
 # with the exception of case where other provider in sources has >= new 
provider version.
 # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider 
have
diff --git a/providers/openlineage/docs/changelog.rst 
b/providers/openlineage/docs/changelog.rst
index 941394fcb35..c1dcda5e0a5 100644
--- a/providers/openlineage/docs/changelog.rst
+++ b/providers/openlineage/docs/changelog.rst
@@ -45,15 +45,39 @@ Changelog
     lineage names. Backends that identify jobs by namespace and name can show 
the
     renamed jobs separately from historical jobs after the upgrade.
 
+.. note::
+
+    **Significant change: task notes in the Airflow run facet**
+
+    The Airflow run facet no longer includes ``taskInstance.note``. Earlier 
versions
+    emitted this field for Airflow 2 task events and scheduler-generated 
``FAIL``
+    events, but not for Airflow 3 manual state changes.
+
+    Update consumers to tolerate the missing field. Retrieve task notes through
+    Airflow's supported API when needed.
+
 Features
 ~~~~~~~~
 
+* ``Fix task loop information and tests for OpenLineage provider (#74752)``
+* ``Add OpenLineage parent and root job-type macros (#75303)``
+* ``Allow excluding datasets from OpenLineage events by pattern and hook 
(#71312, #75921)``
 * ``Send task inlets and outlets as JSON lists in OpenLineage facet (#74666)``
 * ``Distinguish SQL hook lineage query jobs from native query jobs (#73655)``
 * ``Attribute lineage runs and asset dependencies to task attempts on Airflow 
3.4 (#74347)``
 
+Bug Fixes
+~~~~~~~~~
+
+* ``Fix OpenLineage task events lost for Dags with mapped tasks (#75860)``
+* ``Use task instance end date as OpenLineage terminal event time (#75328)``
+* ``Surface errors from OpenLineage database info lookups without losing 
lineage (#74805)``
+
 .. Below changes are excluded from the changelog. Move them to
    appropriate section above if needed. Do not delete the lines(!):
+   * ``Add OpenLineage system tests for the emission policy (#75678)``
+   * ``Keep service logs and OpenLineage e2e noise out of the job output 
(#75811)``
+   * ``Prepare providers release 2026-10-20 (#75209)``
    * ``Add non serializable asset's extra to openlineage e2e tests (#75094)``
    * ``Stop the OpenLineage execution timeout test flaking on busy CI runners 
(#74927)``
    * ``Make asset event batching opt-in (#68517)``
diff --git a/providers/openlineage/provider.yaml 
b/providers/openlineage/provider.yaml
index 0febefc41e0..f29cdc3f246 100644
--- a/providers/openlineage/provider.yaml
+++ b/providers/openlineage/provider.yaml
@@ -24,7 +24,7 @@ description: |
 
 state: ready
 lifecycle: production
-source-date-epoch: 1792489528
+source-date-epoch: 1793262026
 # Note that those versions are maintained by release manager - do not update 
them manually
 # with the exception of case where other provider in sources has >= new 
provider version.
 # In such case adding >= NEW_VERSION and bumping to NEW_VERSION in a provider 
have

Reply via email to