Skip to content

fix(release): wait for npm beta propagation - #89

Merged
jumski merged 1 commit into
mainfrom
npm-beta-propagation
Oct 21, 2026
Merged

jumski merged 1 commit into
mainfrom
npm-beta-propagation

Conversation

@jumski

@jumski jumski commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

 publish -> verify npm metadata
-  wait up to 90 seconds
-  stale beta after success -> suggest changing dist-tag
+  share a five-minute polling budget across success/error outcomes
+  stale beta -> report unresolved publication; do not republish or retag
   latest drift -> stop immediately

Preserve the existing polling helper and release guards. Move failed-publish polling inside the registry-probe error boundary, add virtual-clock regression cases, and document read-only checks for unresolved registry state.

No changeset: local release tooling, tests, and docs only; no shipped plugin or package API changes. Follow-up to #88.

Evidence

  • Before: production polling used a 90-second budget, so a version visible after two minutes could fail verification; the success path suggested changing the beta dist-tag while registry processing could still be pending.
    After: the production-budget regression tolerates two-minute visibility delay, latest drift stops without sleeping, and permanently stale metadata stops at the deadline.
  • bun run lint, bun run typecheck, bun run test (207 passed), bun run verify:pack, and git diff --check pass. Existing real-PTY browser authorization regression still passes.
  • Tests use virtual clocks and fixtures; no real npm publication or dist-tag mutation ran.

Merge Danger

Door: two-way

Revert the commit to restore previous polling and messages. This PR does not publish a package.

Blast Radius: local-release

A local beta publish can spend up to five minutes polling for metadata instead of 90 seconds. Registry-read failures remain errors; unresolved metadata no longer recommends a potentially unsafe retry or retag.

npm can accept a beta publish before its dist-tag becomes visible.
The 90-second check could report failure and recommend retagging while
npm still processed the upload.

Use a shared five-minute polling budget for success and error probes,
stop on latest drift, and treat stale metadata as unresolved rather than
suggesting another publish or dist-tag change. Add virtual-clock
regressions and document read-only checks.
@jumski jumski added the no-changeset Skip changeset requirement for non-user-visible changes label Oct 21, 2026
@jumski
jumski merged commit 7e98876 into main Oct 21, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changeset Skip changeset requirement for non-user-visible changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant