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

kaxilnaik 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 f42ffbcf167 Fix backward compatibility for workloads TaskInstance 
import (#62714)
f42ffbcf167 is described below

commit f42ffbcf1679cec11cac8068ea43820c23d4a6ba
Author: Kaxil Naik <[email protected]>
AuthorDate: Mon Mar 2 17:09:52 2026 +0000

    Fix backward compatibility for workloads TaskInstance import (#62714)
    
    Re-export TaskInstance from airflow.executors.workloads as an alias to 
TaskInstanceDTO so integrations using the legacy import path continue to work. 
Add a regression test that verifies the alias remains available.
---
 .../src/airflow/executors/workloads/__init__.py    | 15 +++++++++++++--
 .../unit/executors/test_workloads.py}              | 22 +++++++---------------
 2 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/airflow-core/src/airflow/executors/workloads/__init__.py 
b/airflow-core/src/airflow/executors/workloads/__init__.py
index dca4c991f63..462e38ad0aa 100644
--- a/airflow-core/src/airflow/executors/workloads/__init__.py
+++ b/airflow-core/src/airflow/executors/workloads/__init__.py
@@ -24,7 +24,7 @@ from pydantic import Field
 
 from airflow.executors.workloads.base import BaseWorkload, BundleInfo
 from airflow.executors.workloads.callback import CallbackFetchMethod, 
ExecuteCallback
-from airflow.executors.workloads.task import ExecuteTask
+from airflow.executors.workloads.task import ExecuteTask, TaskInstanceDTO
 from airflow.executors.workloads.trigger import RunTrigger
 
 All = Annotated[
@@ -32,4 +32,15 @@ All = Annotated[
     Field(discriminator="type"),
 ]
 
-__all__ = ["All", "BaseWorkload", "BundleInfo", "CallbackFetchMethod", 
"ExecuteCallback", "ExecuteTask"]
+TaskInstance = TaskInstanceDTO
+
+__all__ = [
+    "All",
+    "BaseWorkload",
+    "BundleInfo",
+    "CallbackFetchMethod",
+    "ExecuteCallback",
+    "ExecuteTask",
+    "TaskInstance",
+    "TaskInstanceDTO",
+]
diff --git a/airflow-core/src/airflow/executors/workloads/__init__.py 
b/airflow-core/tests/unit/executors/test_workloads.py
similarity index 58%
copy from airflow-core/src/airflow/executors/workloads/__init__.py
copy to airflow-core/tests/unit/executors/test_workloads.py
index dca4c991f63..8ca86f9704b 100644
--- a/airflow-core/src/airflow/executors/workloads/__init__.py
+++ b/airflow-core/tests/unit/executors/test_workloads.py
@@ -1,3 +1,4 @@
+#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -14,22 +15,13 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-"""Workload schemas for executor communication."""
-
 from __future__ import annotations
 
-from typing import Annotated
-
-from pydantic import Field
-
-from airflow.executors.workloads.base import BaseWorkload, BundleInfo
-from airflow.executors.workloads.callback import CallbackFetchMethod, 
ExecuteCallback
-from airflow.executors.workloads.task import ExecuteTask
-from airflow.executors.workloads.trigger import RunTrigger
+from airflow.executors import workloads
+from airflow.executors.workloads import TaskInstance, TaskInstanceDTO
 
-All = Annotated[
-    ExecuteTask | ExecuteCallback | RunTrigger,
-    Field(discriminator="type"),
-]
 
-__all__ = ["All", "BaseWorkload", "BundleInfo", "CallbackFetchMethod", 
"ExecuteCallback", "ExecuteTask"]
+def test_task_instance_alias_keeps_backwards_compat():
+    assert TaskInstance is TaskInstanceDTO
+    assert workloads.TaskInstance is TaskInstanceDTO
+    assert workloads.TaskInstanceDTO is TaskInstanceDTO

Reply via email to