This is an automated email from the ASF dual-hosted git repository. kaxilnaik pushed a commit to branch v3-1-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit cefb383e448d4a57445235d6b571a27e64a15d0d Author: Kaxil Naik <[email protected]> AuthorDate: Fri Sep 26 08:45:29 2025 +0100 Add back Deprecation warning for sla_miss_callback (#56127) This was removed in #50093 -- I assume by mistake! Adding this back to not break das of people migration from Airflow 2.x (cherry picked from commit 9cd9c9f9f770bc21c3b0895fd67e8f735b2d5902) --- task-sdk/src/airflow/sdk/bases/operator.py | 2 +- task-sdk/src/airflow/sdk/definitions/dag.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/task-sdk/src/airflow/sdk/bases/operator.py b/task-sdk/src/airflow/sdk/bases/operator.py index 2cc891d106b..a11b5894b0d 100644 --- a/task-sdk/src/airflow/sdk/bases/operator.py +++ b/task-sdk/src/airflow/sdk/bases/operator.py @@ -1108,7 +1108,7 @@ class BaseOperator(AbstractOperator, metaclass=BaseOperatorMeta): raise ValueError(f"pool slots for {self.task_id}{dag_str} cannot be less than 1") if sla is not None: warnings.warn( - "The SLA feature is removed in Airflow 3.0, to be replaced with a new implementation in >=3.1", + "The SLA feature is removed in Airflow 3.0, replaced with Deadline Alerts in >=3.1", stacklevel=2, ) diff --git a/task-sdk/src/airflow/sdk/definitions/dag.py b/task-sdk/src/airflow/sdk/definitions/dag.py index 58df4b86063..860cbd2110e 100644 --- a/task-sdk/src/airflow/sdk/definitions/dag.py +++ b/task-sdk/src/airflow/sdk/definitions/dag.py @@ -460,6 +460,7 @@ class DAG: ), ) + sla_miss_callback: None = attrs.field(default=None) catchup: bool = attrs.field( factory=_config_bool_factory("scheduler", "catchup_by_default"), ) @@ -614,6 +615,15 @@ class DAG: def _has_on_failure_callback(self) -> bool: return self.on_failure_callback is not None + @sla_miss_callback.validator + def _validate_sla_miss_callback(self, _, value): + if value is not None: + warnings.warn( + "The SLA feature is removed in Airflow 3.0, and replaced with a Deadline Alerts in >=3.1", + stacklevel=2, + ) + return value + def __repr__(self): return f"<DAG: {self.dag_id}>"
