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

Reply via email to