Skip to content

ci(publish): atomic branch+tag push with race retry#198

Merged
drewstone merged 1 commit into
mainfrom
ci/atomic-release
Jul 15, 2026
Merged

ci(publish): atomic branch+tag push with race retry#198
drewstone merged 1 commit into
mainfrom
ci/atomic-release

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

Kills the orphaned-release-tag class at the root: --follow-tags is per-ref, so a merge train racing the auto-release leaves the tag accepted while HEAD:main is rejected — v0.43.25 and v0.43.27 both orphaned today, each blocking all subsequent releases until manual tag deletion. --atomic lands branch+tag together or not at all; on a lost race the job resets to fresh main and retries (the newer merge's queued run then no-ops via the already-published check). Filename stays publish.yml (npm OIDC trust is filename-bound).

--follow-tags pushes per-ref: when a merge train moves main mid-run,
the HEAD:main push is rejected but the tag ref still lands, orphaning
a release tag that fails every later run with 'tag already exists'
(v0.43.25 and v0.43.27 today). --atomic makes branch+tag land together
or not at all; a lost race resets to fresh main and retries.

@tangletools tangletools left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Auto-approved drewstone PR — 77acac7c

This PR was opened by the trusted drewstone account.
The full PR reviewer audit still runs separately and will publish findings if it detects issues.

tangletools · auto-approval · reason: drewstone_author · 2026-07-15T19:55:20Z

@drewstone
drewstone merged commit a5cfe5d into main Jul 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants