Skip to content

fix(release): wait for npm propagation - #279

Merged
steipete merged 1 commit into
mainfrom
steipete/patient-npm-propagation-checks-30ea04
Aug 5, 2026
Merged

fix(release): wait for npm propagation#279
steipete merged 1 commit into
mainfrom
steipete/patient-npm-propagation-checks-30ea04

Conversation

@steipete

@steipete steipete commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • wait up to five minutes for npm to expose newly published version, integrity, and latest metadata
  • retry only absent propagation metadata while failing conflicting version, integrity, or dist-tag values immediately
  • dispatch the Homebrew update from a sibling job gated on successful publication, with the downstream workflow repeating the patient verification
  • share the verifier with the local release path and document the recovery behavior

Testing

  • pnpm check
  • pnpm test
  • pnpm exec vitest run tests/verify-npm-publication.test.mjs
  • ./scripts/test-release.sh
  • actionlint .github/workflows/release.yml .github/workflows/update-homebrew-tap.yml
  • live verification against mcporter@0.13.0
  • Codex autoreview: clean

@clawsweeper

clawsweeper Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper status: review started.

I am starting a fresh review of this pull request: fix(release): wait for npm propagation This is item 1/1 in the current shard. Shard 0/1.

This placeholder means the worker is alive and reading the current context. I will edit this same comment with the actual review when the claws are done clicking.

Crustacean status: shell secured, claws on keyboard, evidence pebbles being sorted.

@steipete
steipete merged commit 58986a7 into main Aug 5, 2026
5 checks passed
@steipete
steipete deleted the steipete/patient-npm-propagation-checks-30ea04 branch August 5, 2026 01:21

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9dfd5e6801

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +112 to +115
if (latest !== null && latest !== version) {
throw new NpmPublicationMismatchError(
`npm latest dist-tag mismatch for ${packageName}: expected ${version}, received ${latest}.`
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Retry stale latest dist-tag during propagation

When the new version document and integrity have reached npm before the mutable latest tag cache catches up, npm view mcporter dist-tags.latest --json can still legitimately return the previous release; npm dist-tag --help describes these as mutable package distribution tags (“Modify package distribution tags”). Because both the Release and Update Homebrew Tap workflows call this verifier, treating any non-null old latest value as an immediate immutable mismatch makes normal registry propagation fail instead of using the advertised five-minute wait. Retry stale latest until it equals the expected version or the deadline expires.

Useful? React with 👍 / 👎.

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