Skip to content

fix: make pnpm config work in clean CI environments#151

Merged
JumpLink merged 1 commit into
mainfrom
fix/pnpm-workspace-config
Jun 22, 2026
Merged

fix: make pnpm config work in clean CI environments#151
JumpLink merged 1 commit into
mainfrom
fix/pnpm-workspace-config

Conversation

@JumpLink

Copy link
Copy Markdown
Owner

Follow-up to #150. The Package Managers workflow's pnpm leg failed (ERR_PNPM_FETCH_404 on @learn6502/learn) although it passed locally: pnpm 10 doesn't reliably read link-workspace-packages from a project .npmrcpnpm-workspace.yaml is the authoritative location — so in CI's clean environment pnpm ignored the .npmrc, didn't link the local workspaces, and hit the registry.

Fix: move all pnpm settings from .npmrc into pnpm-workspace.yaml (and delete .npmrc):

  • linkWorkspacePackages: true — link local workspaces for the plain ^ ranges.
  • nodeLinker: hoisted — flat layout the gjsify bundler needs.
  • minimumReleaseAge: 0 — disable pnpm's new-version quarantine, which otherwise blocks freshly-published @gjsify/* right after a gjsify release (npm/yarn/gjsify have no such gate).

Verified in a clean HOME (mimicking CI): pnpm install links packages/app-gnome/node_modules/@learn6502/learn -> ../../../learn. Dropping .npmrc also removes the cosmetic "Unknown project config" warnings npm printed. (npm/yarn/gjsify were already green in the workflow run; this only touches the pnpm path + removes the now-unused .npmrc.)

The Package Managers workflow's pnpm leg failed with ERR_PNPM_FETCH_404 on
@learn6502/learn even though it passed locally: pnpm 10 does NOT reliably read
link-workspace-packages from a project .npmrc (it's the modern pnpm-workspace.yaml
that's authoritative), so in a clean environment (CI, no global config) pnpm
ignored the .npmrc, didn't link the local workspaces, and tried the registry.

Move all pnpm settings from .npmrc into pnpm-workspace.yaml (delete .npmrc):
- linkWorkspacePackages: true — link local workspaces for the plain ^ranges.
- nodeLinker: hoisted — flat layout the gjsify bundler needs.
- minimumReleaseAge: 0 — disable pnpm's new-version quarantine, which otherwise
  blocks freshly-published @gjsify/* right after a gjsify release (the other PMs
  have no such gate).

Verified in a clean HOME (mimicking CI): pnpm install links
packages/app-gnome/node_modules/@learn6502/learn -> ../../../learn. Dropping the
.npmrc also removes the cosmetic "Unknown project config" warnings npm printed.
@JumpLink JumpLink merged commit 59a38d9 into main Jun 22, 2026
3 checks passed
@JumpLink JumpLink deleted the fix/pnpm-workspace-config branch June 22, 2026 17:09
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