The GitHub Actions job "Tests (AMD)" on 
airflow.git/feature/go-sdk/taskflow-arg-binding has failed.
Run started by GitHub user jason810496 (triggered by jason810496).

Head commit for run:
9d95d0d64185a3b1b6db6020e41b09f23c5e1920 / LIU ZHE YOU <[email protected]>
Bind Python temporal and UUID arguments to their native Go types

A stub parameter annotated datetime, date, time, timedelta or UUID reaches the
Go SDK as a formatted string, because that is how the Dag serializes it. The
declared-type check compared the schema's JSON type against the Go parameter's
kind, which cannot describe those values: time.Time is a struct and uuid.UUID
an array, so the natural Go type was rejected before the task body ran.

The schema's format now decides, and it decides in both directions. A Go
parameter the Dag's declared type cannot fill is rejected rather than bound to
something the author never meant -- including a plain integer onto a
time.Duration, which would have been read as a count of nanoseconds. anyOf
unions are judged too, instead of skipping the check for want of a "type"
keyword, and a union that admits null now requires a Go type that can hold it.
Values nested in a list or dict are bound the same way, so a list[timedelta]
no longer dies inside encoding/json.

time.Time being a struct also meant a task whose only data parameter was a
timestamp took the name-binding path, matched no field, and ran with the zero
time; it binds positionally now.

Report URL: https://github.com/apache/airflow/actions/runs/31777581783

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to