Skip to content

fix(release): recognize manual release retries - #92

Merged
Kinfe123 merged 1 commit into
mainfrom
fix/release-retry-status
Oct 29, 2026
Merged

Kinfe123 merged 1 commit into
mainfrom
fix/release-retry-status

Conversation

@Kinfe123

Copy link
Copy Markdown
Collaborator

Problem

pnpm release:await reports failure after a successful manual release retry. In the current release tooling, the waiter only lists tag-push runs and requires the run SHA to equal the local checkout's HEAD. It can therefore watch the original failed run, or find nothing from a later workflow-fix commit.

Minimal reproduction: a failed v0.1.14 tag run followed by a successful workflow_dispatch run on main whose package is still 0.1.14. The new command-level test runs the actual waiter with those GitHub responses and observes the wrong run and nonzero exit before the fix.

Root cause

Run selection assumed every release was a push of the current local commit. The supported retry workflow publishes from main after validating unchanged tagged package inputs.

Change

Resolve the release tag SHA through GitHub, then select the latest matching tag run or manual run on main. Manual candidates must have the requested package version at their actual commit; version reads are cached during polling. Continue watching that run with --exit-status and checking the exact npm version before reporting success.

The publishing workflow and its source/provenance checks are unchanged. Retries that fail remain failures, even if an older matching run succeeded. Add the script tests to the existing Node test command and document how to wait after a retry.

Verification

  • The successful-retry regression failed before the fix and passes after it.
  • Five command-level tests execute the actual waiter with GitHub/npm boundary fixtures. They cover a successful retry after failure, a newer checkout without local tags, unrelated versions and branches, stale tag commits, failed retries, and waiting for a running retry before npm verification.
  • pnpm release:check: 183 JavaScript tests and 11 Rust tests passed, plus types, syntax, Rust formatting, clippy, and package dry-run.
  • Read-only checks against GitHub recognized the existing 0.1.14 tag release (run 40841584123) and successful 0.1.7 manual retry (run 35250189182), then confirmed both versions on npm. No release was dispatched or published for this verification.

Public surface

No published package code or API changes. Only maintainer release tooling, its tests, the workspace test command, and contributor guidance change.

@Kinfe123

Copy link
Copy Markdown
Collaborator Author

lgtm, recognizes matching release retries without hiding failures.

@Kinfe123
Kinfe123 merged commit d4f5d1d into main Oct 29, 2026
6 checks 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.

1 participant