This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a commit to branch v3-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-4-test by this push:
new 0b5c545ed30 [v3-4-test] Allow TypeScript SDK releases from core
release branches (#75447) (#75451)
0b5c545ed30 is described below
commit 0b5c545ed30cdea11d302e511f80d4c26e33624d
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Oct 23 20:05:10 2026 +0800
[v3-4-test] Allow TypeScript SDK releases from core release branches
(#75447) (#75451)
* Allow TypeScript SDK releases from core release branches
The release workflow required the tagged commit to be an ancestor of main.
Cherry-picks onto a core release branch get new SHAs, so a release cut from
vX-Y-test or vX-Y-stable was rejected, which is where an SDK release is cut
once a core minor has branched.
* Match only real release branch names in the release check
A `v*-test` glob also accepts names like `vx-test`, which are not release
branches.
---------
(cherry picked from commit af76df38634142f51d3d86893c63bd990eab6577)
Co-authored-by: Jason(Zhe-You) Liu
<[email protected]>
---
.github/workflows/ts-sdk-release.yml | 14 +++++++++++++-
ts-sdk/DEVELOPMENT.md | 5 +++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/ts-sdk-release.yml
b/.github/workflows/ts-sdk-release.yml
index 0019a0ba03e..141e63ee046 100644
--- a/.github/workflows/ts-sdk-release.yml
+++ b/.github/workflows/ts-sdk-release.yml
@@ -83,7 +83,19 @@ jobs:
test "${DISPATCH_REF}" = "refs/tags/${RELEASE_TAG}"
test "${DISPATCH_SHA}" = "$(git rev-parse HEAD)"
test "$(git rev-parse "refs/tags/${RELEASE_TAG}^{commit}")" = "$(git
rev-parse HEAD)"
- git merge-base --is-ancestor HEAD "$(git rev-parse
refs/remotes/origin/main)"
+ # A release is cut from main or from a core release branch.
Cherry-picks onto a
+ # release branch get new SHAs, so containment in main alone is not
enough.
+ release_refs=$(git for-each-ref --format='%(refname)'
refs/remotes/origin \
+ | grep -E
'^refs/remotes/origin/(main|v[0-9]+-[0-9]+-(test|stable))$' || true)
+ contained_in=""
+ for ref in ${release_refs}; do
+ if git merge-base --is-ancestor HEAD "${ref}"; then
+ contained_in="${ref}"
+ break
+ fi
+ done
+ test -n "${contained_in}"
+ echo "Release commit is contained in ${contained_in}"
- name: Verify package identity
working-directory: ts-sdk
env:
diff --git a/ts-sdk/DEVELOPMENT.md b/ts-sdk/DEVELOPMENT.md
index ac8ed73eb4e..dfbc4b78d78 100644
--- a/ts-sdk/DEVELOPMENT.md
+++ b/ts-sdk/DEVELOPMENT.md
@@ -152,6 +152,11 @@ git tag ts-sdk/1.0.0-beta1 <commit-sha>
git push upstream ts-sdk/1.0.0-beta1
```
+The commit you tag must be on `main` or on a core release branch (`vX-Y-test`
+or `vX-Y-stable`); the workflow rejects anything else. Releasing from a release
+branch is the normal path once a core minor has branched: cherry-pick the SDK
+change there first, then tag that branch's commit.
+
To submit the package to npm's private staging area for review, run:
```bash