Skip to content

root - chore: defense - stage npm releases with pnpm - #485

Merged
jaredwray merged 2 commits into
mainfrom
cursor/pnpm-stage-publish-d769
Aug 17, 2026
Merged

root - chore: defense - stage npm releases with pnpm#485
jaredwray merged 2 commits into
mainfrom
cursor/pnpm-stage-publish-d769

Conversation

@jaredwray

@jaredwray jaredwray commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

Switch the release workflow from npm stage publish to pnpm stage publish so packing and staging both use Corepack's pinned pnpm 11.20, matching defense-in-depth-nodejs § 5.

Status update

DEFENSE_IN_DEPTH.md: .github/workflows/release.yaml packs then stages with pnpm stage publish ./packed/*.tgz --no-git-checks → PR #485

Changes

  • Drop the global npm@11.19.0 install used only for npm stage publish
  • Stage the packed tarball with pnpm stage publish ./packed/*.tgz --access public --provenance --no-git-checks
  • Keep the Aikido release-gate CLI on the pinned sfw npm install --global from the skill template (that job has no checkout or lockfile)
  • Split the § 5 checklist into the catalog's pack/stage item and the maintainer 2FA item

Verification

  • pnpm stage --help (pnpm 11.20.0: pnpm stage publish [<tarball>|<dir>])
  • pnpm pack --pack-destination /tmp/docula-packeddocula-3.0.0.tgz
  • pnpm stage publish ./docula-3.0.0.tgz --access public --provenance --no-git-checks --dry-runSkip staging docula@3.0.0 (dry run) / + docula@3.0.0 (would stage)
  • pnpm test (866 tests, 100% coverage)

Reference

defense-in-depth-nodejs § 5 (npm publishing — staged pnpm stage publish)

Open in Web Open in Cursor 

cursoragent and others added 2 commits August 17, 2026 22:04
Switch the release workflow from npm stage publish to pnpm stage publish
so Corepack's pinned pnpm 11.20 handles packing and staging. Drop the
global npm CLI pin; keep --no-git-checks for detached release tags.

Co-authored-by: Jared Wray <me@jaredwray.com>
Point the § 5 pack-and-stage checkbox at PR #485.

Co-authored-by: Jared Wray <me@jaredwray.com>
@codecov

codecov Bot commented Aug 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (80d6772) to head (76e38f4).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #485   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           18        18           
  Lines         2760      2760           
  Branches       846       837    -9     
=========================================
  Hits          2760      2760           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jaredwray
jaredwray marked this pull request as ready for review August 17, 2026 22:44

@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: 76e38f4002

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

# pnpm ≥ 11.3. Prefix with ./ so the tarball is a local path, not GitHub
# owner/repo shorthand. --no-git-checks: git-checks run even for a tarball
# and fail on a detached release-tag checkout and on the untracked pack output.
run: pnpm stage publish ./packed/*.tgz --access public --provenance --no-git-checks

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 Keep installing an npm CLI that supports staging

On a fresh runner, actions/setup-node with node-version: 24 supplies the Node-bundled npm rather than the previously pinned npm 11.19.0, while pnpm's staging publisher ultimately invokes the npm CLI for the registry operation. I checked the bundled npm 11.4.2 under Node 24.15.0: npm stage --help exits 1 with Unknown command: "stage". Consequently, this release step fails before staging unless the workflow retains an npm version that implements stage publish (or otherwise explicitly provides one).

Useful? React with 👍 / 👎.

@jaredwray
jaredwray merged commit 6c40b19 into main Aug 17, 2026
15 checks passed
@jaredwray
jaredwray deleted the cursor/pnpm-stage-publish-d769 branch August 17, 2026 22:50
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.

2 participants