build(deps): bump @electron/* and electron-installer-* packages - #4379
Merged
Conversation
Upgrades electron-installer-debian and electron-installer-redhat to their new 4.x majors (ESM-only, Node >= 22.12, matching Forge's own engines). Also bumps the remaining @electron/* and electron-installer-* dependencies to their latest releases within their current major: - @electron/packager ^20.3.0 - @electron/rebuild ^4.2.0 - @electron/get ^5.1.0 - @electron/fuses ^2.1.3 - @electron/osx-sign ^2.7.0 - @electron/notarize ^3.1.1 - @electron/lint-roller ^3.3.0 - electron-installer-common ^0.10.4 Declare `types: ["node"]` in tsconfig.base.json. The build previously only picked up @types/node through a `/// <reference types="node" />` in a transitively nested @electron/osx-sign@2.3.0 declaration file; once that copy is deduped away the build lost Node's globals entirely. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KUdgwBibLdmA2Q58WB3KDg
electron-installer-debian 4.x invokes `dpkg-deb` directly and no longer wraps the build in `fakeroot`, so the maker should not refuse to run on machines that only have dpkg installed. Update the docs to match. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KUdgwBibLdmA2Q58WB3KDg
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
MarshallOfSound
approved these changes
Sep 11, 2026
erickzhao
enabled auto-merge (squash)
September 11, 2026 21:42
This was referenced Sep 11, 2026
Open
erickzhao
added a commit
that referenced
this pull request
Sep 11, 2026
…4384) @electron/packager 20.3.0 (#4379) already omits win32/ia32 and linux/armv7l from allOfficialArchsForPlatformAndVersion() for Electron >= 44.0.0-alpha.4, so the guard added in #4377 never sees those arches on an --arch=all expansion and never warns, which failed the "should warn when filtering a dropped arch out of all" test on every platform. Stub the packager arch list in that test so it exercises Forge's own filter regardless of what the installed packager reports, and update the stale comments that still described packager 18.x behaviour. Claude-Session: https://claude.ai/code/session_01Uj4Vx4Acv7PY1MmGq2kf3e Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summarize your changes:
Upgrades every
@electron/*andelectron-installer-*dependency to its latest release.New majors
electron-installer-debian^3.2.0→^4.0.0electron-installer-redhat^3.2.0→^4.0.0Both are now ESM-only and require Node >= 22.12, which matches Forge's own
engines. Their programmatic API (default-exported async function returning{ packagePaths }) is unchanged, andMakerDeb/MakerRpmalready load them via dynamicimport(), so no maker code changes were required for the upgrade itself.Latest release within the current major
@electron/packager^20.3.0@electron/rebuild^4.2.0@electron/get^5.1.0@electron/fuses^2.1.3@electron/osx-sign^2.7.0@electron/notarize^3.1.1@electron/lint-roller^3.3.0electron-installer-common^0.10.4electron-installer-snap,electron-installer-dmg, and@malept/electron-installer-flatpakwere already on their latest release.Build fix: declare
types: ["node"]Bumping
@electron/osx-signexposed a latent problem. The TypeScript build only ever received@types/nodethrough a/// <reference types="node" />inside a transitively nested@electron/osx-sign@2.3.0declaration file. Once that copy was deduped away, every package failed withCannot find name 'process', because the generated tsconfigs never declaredtypes: ["node"]and the native TypeScript 7 compiler does not auto-include@types/*.tsconfig.base.jsonnow declares it explicitly, andtools/gen-tsconfigs.tspropagates it to every package.maker-deb: dropfakerootfrom required binarieselectron-installer-debian4.x invokesdpkg-debdirectly and no longer wraps the build infakeroot, so the maker no longer refuses to run on machines that only havedpkg. The maker README anddocs/config/makers/deb.mdare updated to match.User-facing behavior changes from the installer majors
None of these require Forge config changes, but generated Linux packages will differ:
.desktopentries gainTerminal=falseandStartupWMClass. DefaultDependsnow includelibsecret-1-0(used by Electron'ssafeStorage), preferlibasound2t64 | libasound2 | pulseaudio, and usegvfs/gnome-keyringinstead of the removedgvfs-bin/libgnome-keyring0package names..desktopentries gainTerminal=falseandStartupWMClass. DefaultRequiresnow includelibsecretand(libdrm or libdrm2). Stripping is skipped when cross-building for a different architecture, andrpmbuild --targetnow receives<arch>-none-<platform>.Verification
yarn install --immutable,yarn build,yarn constraints,yarn knip,yarn lint:js, and the fast vitest project (522 tests) all pass locally. Both v4 installers were smoke-tested to import correctly through the built makers.🤖 Generated with Claude Code
https://claude.ai/code/session_01KUdgwBibLdmA2Q58WB3KDg
Generated by Claude Code