You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Revert CI's npm install workaround back to npm ci once npm/cli#7622 ships #17
Follow-up from 0cec298 (fix(ci): use npm install instead of npm ci to route around an upstream npm bug)
`.github/workflows/release.yml`'s four frontend-install steps (`test`, `build-macos-arm64`, `build-windows`, `build-linux`) use `npm install` instead of `npm ci`, specifically to route around a currently-open, unmerged upstream npm bug:
npm/cli#7622 — "npm ci erroneously installs optional OS-constrained transitive dependency through direct shrinkwrap dependency"
Fix PR: npm/cli#8310 — open, unmerged as of 2026-08-09
Symptom this repo hit: `npm ci` failed on the Linux CI runner with `EBADPLATFORM: Unsupported platform for @esbuild/netbsd-arm64@0.28.2` — caused by `vitest`'s optional peer dependency on `esbuild` (which ships ~30 platform-specific `optionalDependencies` of its own). Reproduced with lockfiles generated by both npm 11.17.0 and npm 10.8.2; did not reproduce locally on darwin/arm64 with either version — Linux-runner-specific.
Why `npm install` instead of a version bump: upgrading npm wouldn't have helped since the fix isn't released yet. `npm install` follows a different code path for resolving optional dependencies than `npm ci` and isn't subject to this specific bug.
Bump `actions/setup-node`'s `node-version` if needed to pick up a Node release bundling the fixed npm, or add an explicit `npm install -g npm@` step.
Revert all four `npm install` → `npm ci` in `release.yml`, restoring the stricter lockfile-sync guarantee.
Remove this issue.
Trade-off while this stays open
`npm install` won't fail loudly if `wails-app/frontend/package-lock.json` drifts out of sync with `package.json` — it'll just silently reconcile at install time in CI instead of hard-failing the way `npm ci` would. Not a correctness risk for the shipped app (the actual installed versions still satisfy `package.json`'s ranges either way), but it's a weaker drift-detection guarantee than before.
Fixed by commit b67c521 (branch issue-cleanup, will merge to master shortly).
Confirmed npm/cli#7622 was fixed by npm/cli#9262, shipped in npm 12.0.0
(2026-07-08). Bumped node-version 20 → 22 in the four frontend-install
CI jobs (npm 12 requires Node >=22.22) and install npm@12 explicitly
(Node 22's own bundled npm still predates it), then reverted npm ci --dry-run && npm install back to plain npm ci in both ci.yml and release.yml.
Verified locally: npx --package npm@12 -- npm ci succeeds against wails-app/frontend's lockfile (previously reproduced EBADPLATFORM with
the system npm 10.9.0); confirmed on CI too — the Wails GUI module job
(which runs this exact npm install -g npm@12 && npm ci sequence) has
been green throughout this session's CI runs.
Activity
nokhodian commentedon Sep 1, 2026
Fixed by commit b67c521 (branch issue-cleanup, will merge to master shortly).
Confirmed npm/cli#7622 was fixed by npm/cli#9262, shipped in npm 12.0.0
(2026-07-08). Bumped
node-version20 → 22 in the four frontend-installCI jobs (npm 12 requires Node >=22.22) and install npm@12 explicitly
(Node 22's own bundled npm still predates it), then reverted
npm ci --dry-run && npm installback to plainnpm ciin bothci.ymlandrelease.yml.Verified locally:
npx --package npm@12 -- npm cisucceeds againstwails-app/frontend's lockfile (previously reproduced EBADPLATFORM withthe system npm 10.9.0); confirmed on CI too — the Wails GUI module job
(which runs this exact
npm install -g npm@12 && npm cisequence) hasbeen green throughout this session's CI runs.
Merge branch 'issue-cleanup'