jason810496 opened a new pull request, #75391:
URL: https://github.com/apache/airflow/pull/75391
The TypeScript, Java and Go SDKs publish to three different registries, and
nothing said when a release happens, which branch it is cut from, or what makes
it an ASF release rather than a convenience binary. The Go SDK had three
published tags and no publishing instructions at all.
`dev/README_RELEASE_LANG_SDKS.md` is the shared guide, next to the other
`README_RELEASE_*` docs. Each SDK keeps its own publishing steps, since the
toolchains have nothing in common.
**Release cycle.** Each SDK decides when to release. What ties a release to
core is the branch it is cut from, not its timing.
**Release branch.** Land on `main`, cherry-pick to the active `vX-Y-test`,
tag from there. This matters more than for a Python distribution: an SDK built
from `main` can declare a supervisor schema a released core rejects, and the
runtime is turned away before the first task starts. A patch release is the
same thing again, so language SDKs do not get release branches of their own.
**Schema and spec drift.** Every SDK vendors the supervisor and Dag
serialization schemas and generates code from them. Prek keeps those in step on
`main`, firing on the files a commit touches. A release branch is assembled
from partial cherry-picks, so one side can move without the other and no hook
fails. The guide adds a pre-tag step that runs them over the whole tree:
```shell
prek run --all-files \
sync-ts-sdk-schemas sync-java-sdk-supervisor-schema
sync-java-sdk-dag-schema \
sync-go-sdk-schemas check-go-sdk-generated-drift \
ts-sdk:check-ts-sdk-supervisor-schema ts-sdk:check-ts-sdk-dag-schema \
check-ts-sdk-serialization-conformance-shared \
check-go-sdk-serialization-conformance
check-java-sdk-serialization-conformance
```
**What a release requires.** A source package in `dist/dev`, a `[VOTE]`, and
promotion to `dist/release` before any convenience binary is published, from
the first GA of each SDK onwards. The Java SDK already does this and is the
worked example.
`go-sdk/DEVELOPMENT.md` gains the publishing section it never had: the
`go-sdk/v<version>` tag prefix the module path requires, prerelease semantics,
proxy immutability and `retract`, and verification before and after tagging.
`ts-sdk/DEVELOPMENT.md` and `java-sdk/README.md` gain pointers to the shared
guide.
Java's publishing section moves to `java-sdk/DEVELOPMENT.md` in a follow-up,
once the Java SDK doc rewrite lands.
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes — Claude Code (Opus 5)
Generated-by: Claude Code (Opus 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]