jason810496 opened a new pull request, #76803:
URL: https://github.com/apache/airflow/pull/76803
A language SDK's Dag never passes through Python's loop authoring checks, so
a broken loop from another language could reach the scheduler, and a gate's
reason was masked only inside the Python task process.
- The Dag processor checks the loops of a language SDK's Dag (one terminal
task, no nested loop, no loop in a mapped task group, no `expand` over a body
task from outside) and moves every edge out of the loop body to leave from the
gate. A Python Dag is unaffected.
- The supervisor masks a gate's reason, so a gate in any language is covered.
- ADR-0017 and the TS, Java and Go loop ADRs are amended: a language SDK
serializes its gate as `LoopGateOperator`, which core already drives, and a
fixed-count gate runs on a worker as Python's does. Core's gate handling and
the scheduler stay unchanged.
```jsonc
// A language SDK's gate task
{ "task_id": "refine.accurate_enough", "task_type": "LoopGateOperator",
"is_stub": true, ... }
```
---
##### Was generative AI tooling used to co-author this PR?
- [x] Yes, with help of Claude Code Opus 5.5 following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]