jason810496 opened a new issue, #66942:
URL: https://github.com/apache/airflow/issues/66942
### Background
ADR 0003 explicitly promises:
> The Go SDK gains a `serde` package that performs this encoding from
> `bundlev1.Bundle` / `bundlev1.Task`, validated against
> `validation/serialization/test_dags.yaml` (the same fixture set the
> Java SDK uses), so the Go and Java outputs are byte-identical for
> shared inputs.
The Go `serde` package exists
(`go-sdk/pkg/execution/serde.go`, `serde_test.go`) but the cross-SDK
parity hook does **not** - there is no prek/CI step that runs the
Go serializer against the shared `test_dags.yaml` and diffs the output
against Python's `SerializedDAG.serialize_dag` like the Java SDK does
via `compare.py`.
### What needs to happen
1. Add a Go-side serializer driver that consumes
`validation/serialization/test_dags.yaml` and emits a JSON file
per Dag fixture (parallel to the Java
`SerializationCompatibilityTest`).
2. Wire it into `scripts/ci/prek/` so the existing `compare.py` runs
against `serialized_go.json` alongside `serialized_java.json`.
3. Fail the check on any field-level divergence.
### Acceptance criteria
- A regression in `SerializedDAG.serialize_dag` shape that Go doesn't
follow fails CI before merge.
- The Go and Java SDKs share the fixture file (no Go-only copy).
### Context
- ADR: `go-sdk/adr/0003-coordinator-protocol-msgpack-ipc.md`.
- Java parallel: #65959 introduced
`check_java_serialization_compatibility.py`; we extend the same
pattern.
- Coordinator-distribution prek hooks tracking issue: #66515.
---
Drafted-by: Claude Code (Opus 4.7) (no human review before posting)
--
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]