jason810496 opened a new issue, #66941:
URL: https://github.com/apache/airflow/issues/66941
### Background
The cross-language protocol compatibility work in #66590 introduces
Cadwyn-based schema migration so the supervisor can talk to lang-SDK
runtimes pinned to older schema versions. Java will declare the schema
version it was built against via a JAR-manifest attribute
(`Airflow-SDK-Supervisor-Schema-Version`); the equivalent for an
executable bundle is a key in `airflow-metadata.yaml`.
Today `airflow-metadata.yaml` (see
`providers/sdk/executable/docs/bundle-spec.rst`) carries `sdk.language`
and `sdk.version` but no schema-version pin.
### What needs to happen
1. Add `sdk.supervisor_schema_version` (or equivalent) to the
`airflow-metadata.yaml` schema and the published JSON Schema.
2. Have `airflow-go-pack` (and any future packer) write the version it
was built against into the manifest.
3. Have the Python side
(`providers/sdk/executable/src/airflow/providers/sdk/executable/bundle_scanner.py`)
read the field and pass it to the supervisor's `CommsDecoder.bind`
call so request/response migration kicks in.
4. Bump bundle-spec `format_version` minor.
### Acceptance criteria
- A bundle built against schema vN keeps working when paired with a
supervisor on schema vN+1, exercised in tests.
- Missing field is treated as "head version" (current behaviour).
### Context
- Cross-SDK protocol versioning: #66590.
- Java-side TODO under #66590: "Add Supervisor Schema Version to Java
SDK JAR manifest".
- Bundle-spec source of truth:
`providers/sdk/executable/docs/bundle-spec.rst`.
- Schema versioning impl (astronomer fork): astronomer/airflow#1577.
---
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]