luc-pimentel commented on PR #74323: URL: https://github.com/apache/airflow/pull/74323#issuecomment-6398840694
I noticed the TypeScript serializer and Python disagree on one shape and I am wondering whether that is the intended behavior or whether an issue or PR should be created for it. Group `outer` holds task `t` and an empty nested group `outer.spare`; `extract` and `load` are root tasks. With `spare.before(load)` declared first and `extract.before(spare)` second, Python draws `outer.t -> load`, while the TypeScript SDK draws `extract -> load`. The in-order shape and the parent fallback agree on both sides. | Edges in declaration order | Python 3.4.0b2 and main | TypeScript 1.0.0-beta1 and main | | --- | --- | --- | | `extract.before(spare)`, `spare.before(load)` | `extract -> load` | `extract -> load` | | `spare.before(load)`, `extract.before(spare)` | `outer.t -> load` | `extract -> load` | | `extract.before(outer)`, `spare.before(load)` | `extract -> t -> load` | `extract -> t -> load` | Python resolves each `>>` when it is written, so `spare` has no upstream yet at that point, while `buildDagGraph` in `ts-sdk/src/sdk/dag-graph.ts` indexes every order edge before expanding any. The Go SDK gives the same result as TypeScript and documents it as the shared rule; the Java SDK, from reading `DagDef.kt`, follows Python. Is this the intended behavior for the TypeScript SDK, or should an issue or PR be created for it? Happy to send one if so. Checked with the conformance harness's `compare_dag` against the Python serializer from main and the released 3.4.0b2. -- 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]
