From e8de649ffa222753f893587ceeb18bb3f027c1ac Mon Sep 17 00:00:00 2001 From: Emmanuel Boudrant Date: Thu, 4 Jun 2026 16:21:02 -0700 Subject: [PATCH] fix: pin electron to 41.x so release builds produce installers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v0.0.20 release failed — macOS build jobs succeeded but emitted no .dmg/.zip, so Create Release errored on missing artifacts. The only change since the last good release (v0.0.19, on electron 41) was the electron 42.x bump (#115, then #116 → 42.3.3); ci.yml never runs `electron-forge make`, so it surfaced only at release time. Pin electron back to ^41.7.1 (keeping the other #116 dependency updates). Verified locally: `electron-forge make --arch=arm64` on electron 41.7.1 produces out/make/PapaStudio.dmg and the arm64 zip. Co-Authored-By: Claude Opus 4.8 (1M context) --- CHANGES/2026-06-04_fix-pin-electron-41.md | 32 ++++++++++ package-lock.json | 72 ++++++++++++----------- package.json | 2 +- 3 files changed, 70 insertions(+), 36 deletions(-) create mode 100644 CHANGES/2026-06-04_fix-pin-electron-41.md diff --git a/CHANGES/2026-06-04_fix-pin-electron-41.md b/CHANGES/2026-06-04_fix-pin-electron-41.md new file mode 100644 index 0000000..f1f8b92 --- /dev/null +++ b/CHANGES/2026-06-04_fix-pin-electron-41.md @@ -0,0 +1,32 @@ +# fix: pin electron to 41.x so the release build produces installers + +**Date:** 2026-06-04 +**Type:** Fix + +## Intent +The v0.0.20 release workflow failed: the macOS build jobs succeeded but produced +no `.dmg`/`.zip`, so "Create Release" errored downloading missing artifacts. The +only change since the last good release (v0.0.19, on electron 41) was the +electron 42.x bump (#115, then #116 → 42.3.3). `ci.yml` never runs +`electron-forge make`, so the regression only surfaced at release time. Pinning +electron back to 41.x restores the known-good packaging path. + +### Prompts summary +1. After the v0.0.20 release failed, chose to pin electron back to 41.x. + +## Changes + +### `package.json` / `package-lock.json` +- `electron` devDependency `^42.0.0` → `^41.7.1` (keeps the other #116 dep updates). + +## Verification +- `npx electron-forge make --arch=arm64` locally (electron 41.7.1) produces both + `out/make/PapaStudio.dmg` and the arm64 zip. (The "Making for the following + targets: ," line is a cosmetic electron-forge display quirk; the makers run.) + +## Files modified + +| File | Change | +|------|--------| +| `package.json` | Pin `electron` to `^41.7.1` | +| `package-lock.json` | Regenerated for electron 41.7.1 | diff --git a/package-lock.json b/package-lock.json index a651615..233a91a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "@electron-forge/maker-dmg": "^7.11.1", "@electron-forge/maker-zip": "^7.11.1", "@playwright/test": "1.60.0", - "electron": "^42.0.0" + "electron": "^41.7.1" } }, "node_modules/@electron-forge/cli": { @@ -436,37 +436,50 @@ } }, "node_modules/@electron/get": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-5.0.0.tgz", - "integrity": "sha512-pjoBpru1KdEtcExBnuHAP1cAc/5faoedw0hzJkL3o4/IJp7HNF1+fbrdxT3gMYRX2oJfvnA/WXeCTVQpYYxyJA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", "dev": true, "license": "MIT", "dependencies": { "debug": "^4.1.1", - "env-paths": "^3.0.0", - "graceful-fs": "^4.2.11", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", "progress": "^2.0.3", - "semver": "^7.6.3", + "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "engines": { - "node": ">=22.12.0" + "node": ">=12" }, "optionalDependencies": { - "undici": "^7.24.4" + "global-agent": "^3.0.0" } }, - "node_modules/@electron/get/node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@electron/node-gyp": { @@ -2796,22 +2809,22 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron": { - "version": "42.3.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-42.3.3.tgz", - "integrity": "sha512-0MwYp9wTb7TrtTalOYqeW+suqd9T/Znstr/nDLKqFGIjHdBZX339guo3mQqTPURRZ/UQmYM4uMpzKpI5wLptfQ==", + "version": "41.7.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-41.7.1.tgz", + "integrity": "sha512-pdRvNNP99Qfvs1lyIxo/sfIGAwJP0CrJFNCE3goFKc7/fV+kjK3EPxx5Nt6sLTkzqTyeRYylpwPUfpeGojiyyw==", "dev": true, + "hasInstallScript": true, "license": "MIT", "dependencies": { - "@electron/get": "^5.0.0", + "@electron/get": "^2.0.0", "@types/node": "^24.9.0", "extract-zip": "^2.0.1" }, "bin": { - "electron": "cli.js", - "install-electron": "install.js" + "electron": "cli.js" }, "engines": { - "node": ">= 22.12.0" + "node": ">= 12.20.55" } }, "node_modules/electron-installer-dmg": { @@ -6935,17 +6948,6 @@ "node": ">=14.17" } }, - "node_modules/undici": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", - "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=20.18.1" - } - }, "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", diff --git a/package.json b/package.json index af93afc..68d79de 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,6 @@ "@electron-forge/maker-dmg": "^7.11.1", "@electron-forge/maker-zip": "^7.11.1", "@playwright/test": "1.60.0", - "electron": "^42.0.0" + "electron": "^41.7.1" } }