Hi all,

Following the discussion [1], I'm calling for lazy consensus on how we
handle Dags whose TaskGroups depend on each other in a cycle when each
group is treated as a single unit (their task dependencies themselves
are acyclic).

Proposal:

1. In 3.4.0, fix the Grid/Graph HTTP 500 for these Dags [2]. We need this
   fix regardless: filtering the Grid or Graph view can create such a
   cycle in a Dag that has none.

2. Also in 3.4.0, deprecate these Dags [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, reject them at parse time with an import error [4]. As
   Jarek suggested, we treat this as a bug fix, since these dependencies
   were never intended to be supported. This is an exception to our
   deprecation policy, which would otherwise keep deprecated behaviour
   working until 4.0.

4. Scope: only cycles between TaskGroups. Other restrictions on
   dependencies into or out of TaskGroups are out of scope and would need
   their own discussion.

The lazy consensus is open for 72 hours, until Tuesday, 29 September 2026,
05:00 UTC. If there are no objections by then, I'll consider it accepted.

[1] https://lists.apache.org/thread/sossl7b2w2ftyk4028qrhps
[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