Repository navigation
ci(repo): keep production releases running when main moves - #10617
Conversation
A merge to main during a production release cancelled the run in the middle of changeset publish, which left half the packages on npm. Canary pushes now queue behind an in-progress run instead of cancelling it. Version packages pushes and snapshot runs still cancel. The release script no longer pushes main after publish. changeset publish creates tags only, and changesets/action pushes each tag itself. The push failed with a non-fast-forward error on any re-run after main had moved.
🦋 Changeset detectedLatest commit: 9ae5e6b The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/electron
@clerk/electron-passkeys
@clerk/eslint-plugin
@clerk/expo
@clerk/expo-biometrics
@clerk/expo-google-signin
@clerk/expo-native-components
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/hono
@clerk/localizations
@clerk/mosaic
@clerk/nextjs
@clerk/nuxt
@clerk/react
@clerk/react-router
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/ui
@clerk/upgrade
@clerk/vue
commit: |
The npm wait runs after the tag push and can time out. changesets/action pushes tags only when the whole release command succeeds, so dropping the push would lose the tags in that case.



Description
A merge to
mainduring a production release cancels the release, even in the middle ofchangeset publish. On Nov 3 that left run 41703272864 half published. For about 22 minutes,@clerk/clerk-js@6.42.2,@clerk/backend@3.26.6and@clerk/expo@4.15.0were onlatestand depended on a@clerk/shared@4.44.0that wasn't on npm yet.GitHub uses the
cancel-in-progressvalue of the newer run. Canary pushes now set it tofalse, so they wait for a running release instead of cancelling it.Version packagespushes and snapshot runs still cancel. A newer canary still replaces an older pending one, so a burst of merges queues one canary, not one per merge.The
releasescript now runsgit push origin --tagsinstead ofgit push --follow-tags.--follow-tagsalso pushesmain, which has no new commits after publish and gets rejected if anyone merged during the release. The cancellation used to hide that. With the concurrency change, the Oct 13 and Nov 3 releases would both have published and then failed here. The tags still go up beforescripts/wait-for-packages-on-npm.mjsruns, so a timeout there doesn't lose them.🤖 Generated with Claude under Rob's supervision.
Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change