Hi all,

The lazy consensus [1] closed on Tuesday, 29 September 2026, 05:00 UTC with
no objections, so it passes. Thanks to David, Jarek and Damian for the +1s,
and to Ash for the feedback.

We will handle Dags whose TaskGroups depend on each other in a cycle as
follows:

1. In 3.4.0, the Grid and Graph views no longer return HTTP 500 for these
Dags [2].
2. Also in 3.4.0, these Dags are deprecated [3]. Parsing them issues a
TaskGroupCycleDeprecationWarning and shows a Dag warning in the UI naming
the TaskGroups involved. They keep parsing and running.
3. From 3.5.0, they are rejected at parse time with an import error [4].
This is treated as a bug fix, as an exception to the deprecation policy.

Following Ash's feedback, treating a TaskGroup as a single unit means a
dependency into or out of any task in the group counts as a dependency of
the whole group. A path that leaves a group and comes back into it (g.a >>
x >> g.b) is therefore a cycle, even when g.a >> g.b is also set. The 3.4
warning and the 3.5 rejection both use this rule.

[1] https://lists.apache.org/thread/b6h120jw7tv1l1zf1ovwrok2zk4hyvwc
[2] https://github.com/apache/airflow/pull/73724
[3] https://github.com/apache/airflow/pull/73746
[4] https://github.com/apache/airflow/pull/73087

Thanks,
Dheeraj

Reply via email to