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]

Reply via email to