Skip to content

fix(release): resume a release interrupted after the release commit - #1349

Merged
BryanFRD merged 2 commits into
mainfrom
fix/1341-resume-after-commit
Oct 25, 2026
Merged

BryanFRD merged 2 commits into
mainfrom
fix/1341-resume-after-commit

Conversation

@BryanFRD

Copy link
Copy Markdown
Contributor

A release that failed at push left the release commit, tags and a checkpoint local only. The checkpoint was pinned to the pre-commit HEAD, so later runs never matched it and reported nothing to release.

  • Checkpoint now stores the planned tags and the floating tags it created.
  • A checkpoint is accepted when HEAD is either the pre-commit HEAD or the recorded release commit.
  • When planning finds nothing to release and a checkpoint awaits its push at HEAD, the run resumes the push and publish phases with the stored tags (manifest is not rewritten).
  • Resumed runs force-push the recorded floating tags.

Closes #1341

@ferrfleet-interne ferrfleet-interne Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One blocking finding: a resumed release skips registry publishers and post-publish hooks, because hook_contexts is never rebuilt, and then reports success. One nit on which plan wins when bumps are detected again. Persisting the checkpoint and floating tags looks correct otherwise.

Comment thread src/monorepo/run/publish.rs Outdated
Comment thread src/monorepo/run/publish.rs

@ferrfleet-interne ferrfleet-interne Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Both earlier findings are fixed in 7536b33, and their threads are resolved.

Nit: resumed_hook_contexts sets channel: None, but package.rs:253 fills it from the prerelease context. So a resumed prerelease passes hooks and publishers no channel. The checkpoint doesn't record the channel, so fixing this would mean persisting it or re-deriving it from the branch config. That's optional.

@BryanFRD
BryanFRD merged commit 7b299aa into main Oct 25, 2026
33 checks passed
@BryanFRD
BryanFRD deleted the fix/1341-resume-after-commit branch October 25, 2026 11:18
ferrflow Bot added a commit that referenced this pull request Oct 25, 2026
## [7.33.4] - 2026-10-25

### Bug Fixes

- fix(release): resume a release interrupted after the release commit (#1349)
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.

fix(release): a release that failed at push is never resumed and later runs report nothing to release

1 participant