Skip to content

fix(release): stage npm packages for maintainer approval - #49

Merged
RodCor merged 2 commits into
mainfrom
codex/npm-staged-release
Oct 13, 2026
Merged

RodCor merged 2 commits into
mainfrom
codex/npm-staged-release

Conversation

@RodCor

@RodCor RodCor commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

The v2.9.0 npm retry fails with E_STAGE_REQUIRED: the configured token can stage packages but cannot publish directly. Use npm 11.21.0 on Node 24 and stage packages for separate maintainer approval, preserving the stage-only token and existing npm gate.

The shared workflow runs after future releases and supports recovery from an existing stable release via workflow_dispatch on main. Recovery reads package sources from the release tag, verifies the existing checksum attestation against that exact tag/commit and release workflow, and checks every asset checksum and each archive attestation. It does not rebuild binaries, retag, change release assets, or rerun crates.io publication. Package assembly and SDK build run without npm credentials; staging disables lifecycle scripts and never approves packages.

Retries skip public versions, reuse byte-identical stages with the same version/tag, and stop on conflicts or registry/authentication errors. The guide describes review and interactive 2FA approval of platform packages before dependent wrappers; approval is not atomic across packages.

Validation:

  • Ten Node regression tests cover staging commands, idempotence, conflicts, malformed responses, uncertain submission results, and registry/authentication failures.
  • Assembly test checks all seven platform packages, Windows ZIP paths, both wrappers, executable bits on Unix, and missing artifacts.
  • Actionlint and workflow YAML parsing pass locally.
  • Actual v2.9.0 checksum and all 10 archive attestations verify against the exact tag/commit and original release workflow. All seven actual platform packages assemble successfully; the Windows binary reports 2.9.0. The published SDK is correctly skipped using a read-only npm registry lookup.
  • Independent review approves exact head bfefd61 after fixing package-keyed npm JSON parsing and complete archive attestation coverage. All 11 CI jobs and both complete CodeQL workflows pass on that exact head (17 successful checks; the CodeQL aggregate is neutral). Tests simulate staging responses; no real staging or approval has been attempted.

This PR was opened in draft and marked ready after independent review and all exact-head CI passed. Merge still requires a genuine eligible GitHub approval; an agent's independent review does not satisfy that branch-protection requirement.

@RodCor
RodCor marked this pull request as ready for review October 13, 2026 17:37
@RodCor
RodCor merged commit 8dd0aef into main Oct 13, 2026
18 checks passed
@RodCor
RodCor deleted the codex/npm-staged-release branch October 13, 2026 17:39
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