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
