Releases: electron/forge
v7.6.0
What's Changed
Added Forge preStart hook
Electron Forge v7.6.0 adds a new preStart hook that improves Forge's starting logic, specifically allowing multiple plugins to customize their start logic, rather than just one. This addition fixes an issue where a project containing multiple plugins that hooked into the app's start would collide.
Allow omittingACL from publisher-s3 plugin upload
v7.6.0 also allows users of the publisher-s3 plugin to omit the ACL from the upload request, per Amazon's recommendation of using bucket owner-enforced permissions.
Bug Fixes and Improvements
- feat: add preStart hook and port existing startLogic impls by @MarshallOfSound in #3720
- feat(publisher-s3): allow ACL omission by @JHartman5 in #3728
- fix(plugin-vite): avoid TS5055 by @erickzhao in #3711
- fix: Bump @electron/rebuild to ^3.7.0 by @felixrieseberg in #3732
- fix: log correct directory when hook moves artifacts by @MarshallOfSound in #3730
- fix(vite-template): fix vite template start failed after package by @caoxiemeihao in #3713
- fix(plugin-vite): merge Vite
build.lib
config by @caoxiemeihao in #3721 - chore: bump electronjs/node to 2.3.1 (main) by @electron-roller in #3746
Other Changes
- build(deps): bump rollup from 4.21.3 to 4.22.4 by @dependabot in #3718
- build(deps): upgrade syncpack@11 by @erickzhao in #3716
- build(deps): bump actions/checkout from 4.1.7 to 4.2.0 by @dependabot in #3723
- build(plugin-vite): add declare file to npm by @smallsung in #3735
- build(deps): bump actions/setup-node from 4.0.3 to 4.0.4 by @dependabot in #3724
- build(deps): bump actions/checkout from 4.2.0 to 4.2.2 by @dependabot in #3747
- build(deps): bump dsanders11/project-actions from 1.3.0 to 1.4.0 by @dependabot in #3749
- build(deps): bump actions/setup-node from 4.0.4 to 4.1.0 by @dependabot in #3748
- build(deps): bump http-proxy-middleware from 2.0.6 to 2.0.7 by @dependabot in #3745
- build(deps): bump cross-spawn from 7.0.3 to 7.0.5 by @dependabot in #3762
- ci: use larger Linux resource class for slow tests by @dsanders11 in #3750
New Contributors
- @smallsung made their first contribution in #3735
- @JHartman5 made their first contribution in #3728
Full Changelog: v7.5.0...v7.6.0
v7.5.0
What's Changed
Improved ESM module support
Electron Forge v7.5.0 adds support for loading Forge modules (plugins, makers, publishers etc.) that use ESM for their module format. This change allows both official Forge modules and third-party modules to use ESM syntax.
Change in Vite support policy
v7.5.0 also makes refinements to our Vite plugin, fixing an issue that users identified as breaking between 7.2.0 and 7.3.0 (#3506). Users upgrading from any past version of Forge to 7.5.0 should now not experience breaking config changes.
After discussion with maintainers, we've decided to retroactively mark the Vite plugin as experimental, as the plugin is still under active development and cannot offer the same API stability guarantees as our other existing plugins. Minor versions may include breaking changes to improve developer ergonomics or to fix bugs (especially around native Node.js modules).
When these changes happen, we'll provide additional migration information in future release notes.
- feat(plugin-vite): better logic by @caoxiemeihao in #3583
- feat(core): support ESM Forge module loading by @SpacingBat3 in #3582
- feat(core): adding register/unregisterForgeConfigForDirectory to utils by @IIIMADDINIII in #3626
- feat(publisher-gcs): only include provided upload options by @kochrt in #3576
- feat: Adding optional metadata config to gcs publisher by @Tobiasartz in #3682
- feat(maker-wix): Expose the property associateExtensions by @fras2560 in #3674
- feat(plugin-webpack): support for dev server custom headers by @rahul-sachdeva22 in #3653
Bug Fixes and Improvements
- fix(cli): cli capitalisation by @DevanceJ in #3539
- ci: don't use versionDocs option in API Documentation workflow by @dsanders11 in #3571
- test(import): check if electron-quick-start packages by @erickzhao in #3580
- fix(maker-squirrel): only push
delta
artifacts if they exist on disk by @hipstersmoothie in #3586 - docs: upgrade typedoc@0.25 by @erickzhao in #3636
- fix(plugin-webpack): protocol recognizes webpack's
devServer
setting by @Dogdriip in #3650 - fix(hooks): allow mutating hooks to have a
void
return by @erickzhao in #3655 - fix: Bump @electron/packager to ^18.3.5 by @felixrieseberg in #3692
- chore: bump electronjs/node to 2.3.0 (main) by @electron-roller in #3596
- chore(publisher-s3): update aws-sdk deps by @erickzhao in #3708
- chore: bump
asar
dep to latest by @erickzhao in #3592 - test: correctly make test-output.xml paths relative in windows by @yangannyx in #3620
- docs: mark plugin-vite as experimental by @VerteDinde in #3710
New Contributors
- @DevanceJ made their first contribution in #3539
- @hipstersmoothie made their first contribution in #3586
- @Tobiasartz made their first contribution in #3682
- @rahul-sachdeva22 made their first contribution in #3653
- @fras2560 made their first contribution in #3674
- @IIIMADDINIII made their first contribution in #3626
- @SpacingBat3 made their first contribution in #3582
- @kochrt made their first contribution in #3576
Full Changelog: v7.4.0...v7.5.0
v7.4.0
What's Changed
Highlighted Feature:
- fix: bump packager minimum dep by @MarshallOfSound in #3551
This version of Forge enables the new Windows ASAR integrity feature in Electron. When ASAR integrity is enabled, your Electron app will verify the header hash of the ASAR archive on runtime. If no hash is present or if there is a mismatch in the hashes, the app will forcefully terminate.
More information about this feature can be found in Electron's documentation here: https://github.com/electron/electron/blob/main/docs/tutorial/asar-integrity.md#using-electron-tooling
Bug Fixes and Improvements
- fix(cli): add
plugin-fuses
to import script by @Santhoshmani1 in #3535 - build(deps): bump dsanders11/github-app-commit-action from 1.3.0 to 1.4.0 by @dependabot in #3555
- build(deps): bump dsanders11/project-actions from 1.2.0 to 1.3.0 by @dependabot in #3557
- build(deps): bump webpack-dev-middleware from 5.3.3 to 5.3.4 by @dependabot in #3545
- build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by @dependabot in #3556
- chore: update listr2 version by @yangannyx in #3542
- docs: Typo in Interface MakerDMGConfig by @zsewa in #3550
New Contributors
- @zsewa made their first contribution in #3550
- @Santhoshmani1 made their first contribution in #3535
Full Changelog: v7.3.1...v7.4.0
v7.3.1
What's Changed
Highlighted Feature:
- build: Bump @electron/windows-sign deps by @felixrieseberg in #3524
This change enables advanced code signing with [@electron/windows-sign][@electron/windows-sign], supporting two different ways to codesign your application and the installer:
-
Modern: By passing a
windowsSign
option, which will be passed to [@electron/windows-sign]. This method allows full customization of the code-signing process - and supports more complicated scenarios like cloud-hosted EV certificates, custom sign pipelines, and per-file overrides. It also supports all existing "simple" codesigning scenarios, including just passing a certificate file and password. Please see https://github.com/@electron/windows-sign for all possible configuration options.When passing
windowsSign
, do not pass any other available parameters at the top level (likecertificateFile
,certificatePassword
, orsignWithParams
). -
Legacy: By passing the top-level settings (
certificateFile
,certificatePassword
, andsignWithParams
). For simple codesigning scenarios, there's no reason not to use this method - it'll work just as fine as the modern method.
Bug Fixes and Improvements
-
fix(publisher-github): don't sanitize asset names before upload by @dsanders11 in #3485
-
build: bump memory limit for docs:generate script by @dsanders11 in #3500
-
build: fix keyv type resolution warning during dev by @MarshallOfSound in #3507
-
build(deps): bump actions/setup-node from 4.0.1 to 4.0.2 by @dependabot in #3522
-
build(deps): bump follow-redirects from 1.15.4 to 1.15.6 by @dependabot in #3537
-
ci(windows): pin version of wix toolset to v3.14.0 by @erickzhao in #3525
-
docs: update forge create-electron-app template to match tutorial by @alicelovescake in #3528
New Contributors
- @alicelovescake made their first contribution in #3528
Full Changelog: v7.3.0...v7.3.1
v7.3.0
What's Changed
Features
- feat(plugin-vite): upgrade to vite@5 by @caoxiemeihao in #3468
- feat: allow a custom out dir from forge config by @lutzroeder in #3458
- feat(template-vite): patch types by @caoxiemeihao in #3494
- feat: adds default fuses to templates by @yangannyx in #3480
- feat(publisher-github): option to automatically generate release notes by @dsanders11 in #3484
Fixes
- fix(electron-release-publisher): change api/version endpoint in PublisherERS to use versions/sorted by @kgallagher52 in #3431
- fix(core): packageJSON won't be found when programmatic usage instead of CLI by @ianho in #3455
- fix: actually depend on preceeding groups by @MarshallOfSound in #3438
- fix: normalize windows version with build part correctly by @rickymohk in #3461
- fix: .vscode settings.json changes on open by @lutzroeder in #3460
- fix(plugin-vite): package volume size to large by @caoxiemeihao in #3336
Performance
- refactor: only run webpack once for multi-arch packages by @MarshallOfSound in #3437
Other Changes
- chore: update Packager by @erikian in #3419
- chore: bump electronjs/node to 2.2.0 (main) by @electron-roller in #3469
- chore(plugins/electronegativity): correct some config types by @Dogdriip in #3482
- chore: use Dependabot to update GitHub Actions deps by @dsanders11 in #3487
- chore: bump electronjs/node to 2.2.1 (main) by @electron-roller in #3496
New Contributors
- @kgallagher52 made their first contribution in #3431
- @rickymohk made their first contribution in #3461
- @lutzroeder made their first contribution in #3460
- @ianho made their first contribution in #3455
- @yangannyx made their first contribution in #3480
- @Dogdriip made their first contribution in #3482
Full Changelog: v7.2.0...v7.3.0
v7.2.0
What's Changed
Features
- feat: add support for sequential groups of webpack builds by @MarshallOfSound in #3435
Fixes
- fix: handle webpack configs exported as default by @MarshallOfSound in #3427
- fix: set empty publicPath for preload scripts by @MarshallOfSound in #3428
- fix: ensure that webpack is run once per arch for universal builds by @MarshallOfSound in #3433
Documentation
- docs: remove mention of v5 -> v6 migration by @erickzhao in #3412
- docs: add notes on publishing a new monorepo package by @erickzhao in #3415
Other Changes
- build(docs): enable API documentation builds for Forge v7 by @erickzhao in #3413
- ci: allow manual API documentation publish by @dsanders11 in #3414
- refactor: dedupe key resolver for static publishers by @MarshallOfSound in #3421
- chore: bump electronjs/node to 2.1.0 (main) by @electron-roller in #3422
- chore: update deps to clear some audit warnings by @dsanders11 in #3429
Full Changelog: v7.1.0...v7.2.0
v7.1.0
What's Changed
- feat(publisher-gcs): add Google Cloud Storage publisher by @mahnunchik in #2100
- fix: re-allow Yarn 2 and above by @erickzhao in #3411
Full Changelog: v7.0.0...v7.1.0
v7.0.0
What's Changed
Breaking Changes
- build!: update minimum Node.js version from
14.17.5
to16.0.0
by @erikian in #3399 - feat!: change electron-packager to @electron/packager by @VerteDinde in #3408
- chore!: remove
electron-prebuilt-compile
support by @erickzhao in #3396 - build!: update minimum Node.js version from
16.0.0
to16.4.0
by @erikian in #3401 - chore(cli): limit yarn@^1.0.0 by @erickzhao in #3357
Features
- feat: run makers simultaneously by @MarshallOfSound in #3363
- feat: esm forge.config.js support by @mahnunchik in #3358
- feat: add tracing support for forge API by @MarshallOfSound in #3362
- feat(publisher-github): assets management by @mahnunchik in #1761
Fixes
- fix(publisher-github): update error message to reflect the correct property names by
@erikian in #3393 - fix(plugin-webpack): preload race condition by @georgexu99 in #3353
- fix(plugin-fuses): use target platform in the executable path by @erikian in #3376
- fix(maker-dmg): make 'name' optional in DMGContents interface by @BitYoungjae in #3390
- fix: handle missing manifest in zip maker by @MarshallOfSound in #3405
- fix(template-webpack-typescript): use fork-ts-checker-webpack-plugin in main webpack config by @NoahAndrews in #3391
Other Changes
- ci: use pull_request_target in add to project workflow by @dsanders11 in #3347
- ci: disable node_modules cache by @erickzhao in #3341
- docs: maker-squirrel does not support macOS by @dsanders11 in #3348
- ci: update add to project workflow by @dsanders11 in #3365
- build(deps): bump get-func-name from 2.0.0 to 2.0.2 by @dependabot in #3367
- build(deps): bump @babel/traverse from 7.17.0 to 7.23.2 by @dependabot in #3383
- docs(README): fix typo by @Chaitanya110703 in #3386
- build(deps): bump postcss from 8.4.21 to 8.4.31 by @dependabot in #3372
- ci: use GitHub app for commits by @dsanders11 in #3373
- docs: updated contributing.md by @bhargavshirin in #3394
- chore: specify
packageManager
in package.json by @erickzhao in #3359 - build(deps): bump axios from 1.1.3 to 1.6.1 by @dependabot in #3406
- chore: fix sha1 for
packageManager
by @erickzhao in #3407
New Contributors
- @Chaitanya110703 made their first contribution in #3386
- @bhargavshirin made their first contribution in #3394
- @BitYoungjae made their first contribution in #3390
- @NoahAndrews made their first contribution in #3391
Full Changelog: v6.4.2...v7.0.0
v6.4.2
What's Changed
- fix(plugin-webpack): compile 4 webpackRendererConfigs instead of N by @georgexu99 in #3101
- fix(cli): update
--help
command output by @erickzhao in #3335 - chore: undocument
npm install -g
by @erickzhao in #3314
Full Changelog: v6.4.1...v6.4.2