Skip to content

Commit 48e5aa8

Browse files
committed
docs(code): clarify tag freezes on shipped (success/staged), not on failed (fix-forward keeps tracking HEAD)
1 parent 642de20 commit 48e5aa8

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

packages/bumpy/src/commands/publish.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -501,10 +501,17 @@ async function runPublishFlow(
501501
}
502502

503503
// Handle tag movement: if nothing has been shipped yet, move tag to HEAD.
504-
// "Shipped" includes staged targets: a staged tarball is already committed to the
505-
// registry from the tagged SHA, so the tag must freeze there — moving it to HEAD on a
506-
// re-run (while still awaiting approval) would point the release at a different commit
507-
// than the artifact was built from.
504+
//
505+
// "Shipped" = a build reached the registry (success OR staged) — NOT merely "the run
506+
// did something". A *failed* target ships nothing, so it deliberately does NOT freeze
507+
// the tag: the fix-forward workflow (push more commits to get a failed publish through)
508+
// relies on the tag tracking HEAD until a build actually lands, so the final tag sits
509+
// on the commit that worked.
510+
//
511+
// A *staged* target does freeze it: the tarball is already committed to the registry
512+
// from the tagged SHA (you can only approve/reject it, not fix-and-repush), so moving
513+
// the tag to HEAD on a re-run while awaiting approval would point the release at a
514+
// different commit than the artifact was built from.
508515
for (const release of toPublish) {
509516
const info = releaseMetadataByPkg.get(release.name);
510517
if (!info) continue;

0 commit comments

Comments
 (0)