jason810496 opened a new pull request, #74411: URL: https://github.com/apache/airflow/pull/74411
- **Depends on https://github.com/apache/airflow/pull/74341 and https://github.com/apache/airflow/pull/74342 get merged first** (their 8 commits are cherry-picked here so this runs on its own; only the last 3 commits are new). - **Diff for early review**: https://github.com/jason810496/airflow/compare/c9cc50457b45f0b9a1bee20b367fd562b10c9e07...feature/go-sdk/native-dag-e2e ## Why The `go_sdk` e2e mode only covers Python stub Dags with Go task handlers, so nothing checks that a Dag authored in Go is parsed, stored and run end to end. ## What - `go-sdk/example/native/`: a native Go Dag example. `go_native_pipeline` uses TaskFlow `Inputs` with task results and `Literal`s, nested task groups with a labelled group edge, `If`, `Switch`, and the Variable, Connection and XCom clients. `go_native_trigger` uses `TriggerDagRun`, and `go_native_report` is declared in `report.go`. ```go extract := dag.TaskGroup("extract") regions := extract.TaskGroup("regions") north := regions.Task(countRows, airflow.TaskSpec{TaskID: "north"}, airflow.Inputs(airflow.Literal("north"), airflow.Literal(3))) summed := extract.Task(summarize, airflow.Inputs(north, south)) dag.If(anyRows, airflow.Inputs(summed)).Then(loaded).Else(empty) dag.Switch(p.pick, airflow.Inputs(summed)).Case(p.daily).Case(p.weekly) ``` - The `go_sdk` mode packs the native bundle into the Dags folder, so the Dag processor parses it with `ExecutableCoordinator`, and keeps the task handler bundle out of parsing with `.airflowignore`. - `test_go_sdk_native_dag.py` checks the parsed Dags and their edges, the run's task states (the untaken `If` and `Switch` sides are skipped), the XComs, the Variable and Connection reads, and the per-Dag source in the Code view. - The `TriggerDagRun` check is `xfail(strict=True)`: a Go `TriggerDagRun` task needs a runner in the Go runtime, which a follow-up adds. --- ##### 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]
