Skip to content

fix(electron): resync electron/package-lock.json with its package.json (v3.8.52 desktop builds) - #17212

Merged
diegosouzapw merged 2 commits into
mainfrom
fix/release-v3.8.52-electron-lock
Oct 19, 2026
Merged

diegosouzapw merged 2 commits into
mainfrom
fix/release-v3.8.52-electron-lock

Conversation

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Post-release fix for v3.8.52 — lands on main first (post-merge read-only rule), then reaches release/v3.8.53 through the Phase 5 sync-back.

What broke

electron-release.yml for tag v3.8.52 failed on Windows and Linux at Install Electron dependencies (run 39315974450, jobs 118285308012 / 118285308204):

npm error `npm ci` can only install packages when your package.json and package-lock.json are in sync.
npm error Missing: electron-builder-squirrel-windows@26.15.3 from lock file
npm error Missing: electron-winstaller@5.4.0 from lock file
npm error Missing: @electron/windows-sign@1.2.2 from lock file
npm error Missing: postject@1.0.0-alpha.6 from lock file
… (11 entries)

Reproduced locally at ad6f33f6 with npm ci --dry-run --ignore-scripts in electron/ (exit 1, same list).

Why

Same class as #15157 after v3.8.51: the lockfile copy that reached the tag lacks the Windows-target subtree of electron-builder@26.15.3. electron/package.json only changed electron ^44.4.3 → ^44.7.0 in the cycle (#15577, #16561). The CI Electron smoke job installs with npm install (not npm ci), which silently repairs the lock on the runner — so main's CI stays green while the release build fails.

Fix

npm install --package-lock-only --ignore-scripts from the unchanged electron/package.json:

  • electron/package-lock.json: 195 lines added, 0 removed, no existing version changed — 13 new node_modules/* entries: electron-builder-squirrel-windows, electron-winstaller (+ its fs-extra / jsonfile / universalify), @electron/windows-sign (+ fs-extra), cross-dirname, temp, mkdirp, rimraf, postject (+ commander).
  • npm ci --dry-run --ignore-scripts now passes (287 packages, npm 12.0.2).
  • Changelog fragment under changelog.d/fixes/ (folded into [3.8.53] by the next reconciliation).

After merge

gh workflow run electron-release.yml --ref main -f version=v3.8.52 -f publish_npm=false — rebuilds the desktop assets from the repaired line and attaches them to the existing v3.8.52 release (v3.8.50 / v3.8.51 precedent).

Validation

Gate Result
npm ci --dry-run --ignore-scripts in electron/ at ad6f33f6 ❌ EUSAGE (11 missing)
same, with this lockfile ✅ added 287 packages
files changed electron/package-lock.json + changelog.d/fixes/<PR>-electron-lockfile-resync.md

⚠️ base-red inherited: #15306 (the i18n translation-drift class on main's tip CI — unrelated to this change).

Post-release fix for v3.8.52 (lands on main first, per the post-merge rule).
The lockfile at the v3.8.52 tag lacks the electron-builder-squirrel-windows,
electron-winstaller, @electron/windows-sign and postject subtrees (the same
entries #15157 restored after v3.8.51; the sync-back took the release-side
copy again), so npm ci in electron/ fails the Windows and Linux desktop
builds of the tag (run 39315974450, jobs 118285308012 / 118285308204).

Regenerated with npm install --package-lock-only from the unchanged
electron/package.json: 195 lines added, 0 removed, no existing version
changed; npm ci --dry-run passes on npm 12.0.2.
@diegosouzapw
diegosouzapw merged commit fa6e0f1 into main Oct 19, 2026
8 of 9 checks passed
@diegosouzapw
diegosouzapw deleted the fix/release-v3.8.52-electron-lock branch October 19, 2026 21:39
@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

diegosouzapw added a commit that referenced this pull request Oct 20, 2026
…de on the tag, before the freeze (#17276)

* chore(release): Phase 0 build pre-flight — the checks that only explode on the tag, before the freeze

v3.8.52 shipped with three defects the PR CI never exercises: the electron/
lockfile out of sync (electron-release.yml installs with npm ci, the CI smoke
with npm install — #15157 on v3.8.51, #17212 on v3.8.52), the Bun runner-web
image's dead apt packages (best-effort stage, surfaced only through the
manifest guard — #17223/#17236) and README version claims the cycle bump
skipped (#17237).

scripts/release/preflight-build.sh runs them in one go with a result table and
per-check logs: version claims, root + electron `npm ci --dry-run`, vitest,
build:cli + pack-boot (the packaging path npm-publish runs) and the new
preflight-bun-apt-smoke.sh, which builds the runner-web apt block alone on
the Bun base image (default on the .113 over ssh). --quick keeps the 20-second
subset for a mid-cycle check. On release/v3.8.53 today: --quick passes; the
apt smoke reproduces the four E: lines until #17236 lands.

* docs(changelog): fragment for the Phase 0 build pre-flight (#17276)
arashashrafii pushed a commit to arashashrafii/OmniRoute that referenced this pull request Oct 24, 2026
cheaper-inference#17212)

Post-release fix for v3.8.52 (lands on main first, per the post-merge rule).
The lockfile at the v3.8.52 tag lacks the electron-builder-squirrel-windows,
electron-winstaller, @electron/windows-sign and postject subtrees (the same
entries cheaper-inference#15157 restored after v3.8.51; the sync-back took the release-side
copy again), so npm ci in electron/ fails the Windows and Linux desktop
builds of the tag (run 39315974450, jobs 118285308012 / 118285308204).

Regenerated with npm install --package-lock-only from the unchanged
electron/package.json: 195 lines added, 0 removed, no existing version
changed; npm ci --dry-run passes on npm 12.0.2.

(cherry picked from commit fa6e0f1)
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