Releases: electron/forge
v6.4.0
What's Changed
- feat(template): add vite-typescript template by @caoxiemeihao in #3178
- build(deps): update
electron-installer-debian
to latest by @erickzhao in #3301- feat: allow setting custom compression options (Fixes #3235)
- build(deps): update [email protected] by @erickzhao in #3302
- fix: only apply preAutoEntitlements to top-level app bundle (Fixes #2943)
Full Changelog: v6.3.0...v6.4.0
v6.3.0
What's Changed
- build(deps): bump semver from 7.3.5 to 7.5.2 by @dependabot in #3262
- ci: bump deprecated versions by @dsanders11 in #3267
- build(deps): bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #3276
- fix(publisher-ers): support arm64 osx platform by @daydayhappychao in #3270
- ci: use electronjs/node orb by @dsanders11 in #3289
- ci: don't use pull_request_target with semantic PR title check by @dsanders11 in #3294
- fix(template-vite): incorrectly bundling browser entrypoints by @markspolakovs in #3278
- chore: add
files
field for each package by @daydayhappychao in #3284 - feat(package): add support for async Forge configs by @VerteDinde in #3288
New Contributors
- @daydayhappychao made their first contribution in #3270
- @markspolakovs made their first contribution in #3278
Full Changelog: v6.2.1...v6.3.0
v6.2.1
What's Changed
- feat(plugin-vite): auto-update
server.port
by @caoxiemeihao in #3201 - fix(template-vite): ignore
browser
field for isomorphic packages by @jclab-joseph in #3218 - fix(plugin-vite): right time to start by @caoxiemeihao in #3220
- fix(vite-plugin): process exit on electron process exit by @john830316 in #3236
- feat(make): allow async maker configs by @erickzhao in #3248
- fix(publisher-s3): ensure published files do not overwrite multiple arches by @MarshallOfSound in #3108
- feat(template): enable asar by default by @erickzhao in #3077
- fix(package): pass missing user-defined hooks to packager by @erikian in #3123
- fix(core): properly log invalid plugin configs by @erickzhao in #3254
New Contributors
- @jclab-joseph made their first contribution in #3218
- @ronaldcurtis made their first contribution in #3219
- @john830316 made their first contribution in #3236
Full Changelog: v6.1.1...v6.2.1
v6.1.1
New in this Release
A Vite template is now available in Forge! 🚀 Thanks to @caoxiemeihao for contributing this template and plugin.
A plugin for Electron Fuses is now available in Forge! 🌟 Thanks to @erikian for contributing this plugin.
Features
- feat(template): add vite template by @caoxiemeihao in #3071
- feat: add Fuses plugin by @erikian in #3132
- feat(maker-zip): add new macUpdateManifestBaseUrl and macUpdateReleaseNotes options by @MarshallOfSound in #3107
What's Changed
- fix: use correct platform paths for artifacts in dryRunResume by @VerteDinde in #3184
- fix(plugin-vite): start Vite error by @caoxiemeihao in #3189
- fix(plugin-fuses):
resetAdHocDarwinSignature
rules on Mac by @erikian in #3190 - fix(plugin-vite): correctly close vite dev-server by @caoxiemeihao in #3202
- fix(publisher-s3): Make S3 upload fail non-silently by @cpmsmith in #3194
- fix: normalize artifact paths in makeResult dryRunResume by @VerteDinde in #3206
- build(deps): bump webpack from 5.69.1 to 5.76.0 by @dependabot in #3191
- build: add needed Vite infra details by @VerteDinde in #3197
- chore: gitignore
lerna-debug.log
by @erickzhao in #3162 - docs: update release process guide by @erickzhao in #3161
- ci: use action-semantic-pull-request by @dsanders11 in #3144
- ci: fix the build and tests by @erickzhao in #3173
- ci: run tests in merge queue by @dsanders11 in #3174
New Contributors
Full Changelog: v6.0.5...v6.1.1
v6.0.5
What's Changed
- build: update dependencies to clean up yarn audit by @MarshallOfSound in #3105
- build: enforce versions are in sync between packages by @MarshallOfSound in #3106
- build: update dependencies to clean up yarn audit by @MarshallOfSound in #3111
- build: npm@9 removed the bin command by @MarshallOfSound in #3110
- fix(core): pass
this.config
when calling internal hooks by @albertxing in #3126 - chore: add
.gitattributes
file for proper handling of line endings by @erikian in #3134 - build(deps): bump json5 from 1.0.1 to 1.0.2 by @dependabot in #3133
- fix(cli): use fallback renderer for any DEBUG vars by @erickzhao in #3135
- fix(package): ensure
electron-packager
throws if fails by @erickzhao in #3136 - chore: update repo link from userland migration by @dsanders11 in #3138
- chore: set @wg-ecosystem as CODEOWNERS by @dsanders11 in #3143
- ci: create a
test:slow
script to avoid re-running fast tests in theslow-tests
job by @erikian in #3150 - build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 by @dependabot in #3156
- fix(publisher-ers): Update ERS API usage for v2.x by @ArekSredzki in #3149
- chore(maker-rpm): map arm64 -> aarch64 by @dsanders11 in #3137
New Contributors
- @albertxing made their first contribution in #3126
- @dsanders11 made their first contribution in #3138
- @ArekSredzki made their first contribution in #3149
Full Changelog: v6.0.4...v6.0.5
v6.0.4
What's Changed
v6.0.4 is a small release with a lot of internal code cleanup changes. Most importantly for users, this release adds clearer error messages for [object Object]
errors that were thrown during the Make step.
- fix(core): allow the
forge.config
property inpackage.json
to point to a non-js file by @erikian in #3070 - docs: fix InternalOptions links in API docs by @erickzhao in #3083
- fix(all): disallow throwing literals (
@typescript-eslint/no-throw-literal
) by @erickzhao in #3086 - fix(publisher-ers): properly publish non-default flavours by @dariusclay in #3079
Internal changes
- build: use a single top-level
tsc -b
for all packages by @erickzhao in #3090 - docs: explain how to test local code changes with symlinks by @erickzhao in #3089
- docs: remove mentions of lerna run test in contributing.md by @georgexu99 in #3081
- build: add preversion to scripts by @georgexu99 in #3074
- build: add test flag to link Forge commands after running init by @georgexu99 in #3075
- build: improve lerna publish process by @erickzhao in #3082
- chore: add husky pre-push script by @georgexu99 in #3061
New Contributors
- @dariusclay made their first contribution in #3079
Full Changelog: v6.0.3...v6.0.4
v6.0.3
Electron Forge v6.0.3 is the direct successor to v6.0.1.
What's Changed
- fix(maker-squirrel): do not register the delta nupkg as an artifact when deltas are disabled by @MarshallOfSound in #3059
- fix(maker-pkg): add targetArch to pkg name by @erickzhao in #3057
- fix(plugin-webpack): remove define plugin from renderer config by @erickzhao in #3062
- feat(maker-pkg): allow to override .pkg name by @mahnunchik in #1785
- build: migrate to lerna from bolt by @georgexu99 in #3058
- fix(template-webpack): only run asset relocator loader on
node_modules
folder by @MarshallOfSound in #3060
New Contributors
- @caoxiemeihao made their first contribution in #3063
- @mahnunchik made their first contribution in #1785
Full Changelog: v6.0.1...v6.0.3
v6.0.2
v6.0.1
What's Changed
Refactors
- refactor: use listr2 for the package, make and publish commands by @MarshallOfSound in #3043
- This PR also fixed a long-standing issue where targeting the
mas
platform in the Package step would actually package fordarwin
.
- This PR also fixed a long-standing issue where targeting the
- refactor: migrate import command to listr2 by @MarshallOfSound in #3048
Internal Changes
- build: add vscode config for better devxp by @MarshallOfSound in #3049
- build: remove codecov by @MarshallOfSound in #3044
Full Changelog: v6.0.0...v6.0.1
v6.0.0
What's Changed
Breaking changes
Forge has spent a considerable time in beta development; this is a list of breaking changes made in recent betas (>= 6.0.0-beta.65), so that users who have been using the later beta versions in their apps can more easily transition to the stable release.
A complete list of changes and commits can be found below.
Config: Changed plugins
syntax (#2963)
The plugins
array now takes objects containing an object with properties name
and config
, rather than tuples containing the plugin name and config.
This aligns the syntax for this configuration with the publishers
and makers
arrays.
{
plugins: [
- [
- '@electron-forge/plugin-webpack',
- { /* ... */ }
- ]
+
+ {
+ name: '@electron-forge/plugin-webpack',
+ config: { /* ... */ }
+ }
]
}
Config: Prefer forge.config.js
for new Forge projects (#2991) (#2995)
We have changed the electron-forge init
and electron-forge import
commands to create a JavaScript config file rather than a section in package.json
. This is to better
support dynamic build logic that isn't possible with the JSON format. Forge now has better support for alternate configuration syntaxes via rechoir.
This is a breaking change for any existing third-party templates and plugins:
- The internal signature of
Plugin.getHook(name)
has changed toPlugin.getHooks().name
. - Templates that mutated the Forge config within
package.json
will need to instantiate their ownforge.config.js
orforge.config.ts
Config: Renamed Electron Rebuild config (#2963)
For consistency with the packagerConfig
option for electron-packager
, the field to configure @electron/rebuild
has now been shortened to rebuildConfig
.
{
- electronRebuildConfig: { /* ... */ }
+ rebuildConfig: { /* ... */ }
}
Config: Renamed ElectronRebuildConfig
(#2963)
Removed @electron-forge/template-typescript
template (#2948)
This has been removed in favor of the [Webpack + TypeScript Template].
Maker: Upgraded Maker Wix dependency to [email protected]
(3008))
This upgrade includes a rename from appIconPath
to icon
in the config (#153). This aligns WiX MSI's icon config with the other makers.
Build: Upgraded required Node.js to 14 LTS (#2921)
Package: Upgraded package dependency to electron-packager@17
(#2978)
The upgrade to Electron Packager 17 introduces the shiny new @electron/osx-sign
package for macOS code signing. It's a rewrite of the old electron-osx-sign
tool with more sensible defaults.
To migrate, we recommend seeing if the default packagerConfig.osxSign
options work for you and tweaking the default entitlements to your needs. Otherwise, see the @electron/osx-sign
MIGRATION.md doc for a 1:1 conversion from the old config options to the new ones.
Command: Removed lint
command (#2964)
Command: Removed install
command (#2958)
Changelog
Breaking Changes
- feat!: prefer forge.config.js over package.json config by @erickzhao in #2991
- refactor!: better internal type safety for hooks by @MarshallOfSound in #2995
- feat!: upgrade Node.js to 14 LTS by @VerteDinde in #2921
- feat!: improve forge configuration DX by @MarshallOfSound in #2963
- feat!: upgrade electron-packager@17 by @erickzhao in #2978
- feat!(maker-pkg): upgrade to
@electron/osx-sign
by @erickzhao in #2959 - feat!(core): add required Forge version for templates by @malept in #2415
- chore!: remove
install
command by @erickzhao in #2958 - chore!: delete
lint
command by @erickzhao in #2964
Features
- feat(plugin-webpack): improve native asset relocation without forking Vercel loader by @timfish in #2320
- feat(plugin-webpack): add nodeIntegration config for renderers by @malept in #2330
- feat(plugin-webpack): add devContentSecurityPolicy config option by @malept in #2332
- feat(webpack-plugin): upgrade to Webpack 5 by @YvanGuidoin in #2225
- feat: add support for forge.config.ts et. al by @MarshallOfSound in #2993
- feat(core): allow mutating packageJSON on load by @MarshallOfSound in #513
- feat(core): add basic support for non-exact Electron versions by @malept in #680
- V6 API by @MarshallOfSound in #433
- feat: move create-electron-app into forge by @VerteDinde in #2988
- feat(publisher-s3): add keyResolver option to allow users to make their own S3 key path by @MarshallOfSound in #482
- Typescript :) by @MarshallOfSound in #495
- feat(plugin-local-electron): add plugin-local-electron by @MarshallOfSound in #501
- feat(generic): add source-map-support for better stacktraces by @malept in #488
- feat: use forge.config.ts in the webpack typescript template by @MarshallOfSound in #3012
- feat(publisher-s3): Add sessionToken and change default fallback by @bboure in #2984
- feat(core): resolve forge.config.js by default if it exists by @MarshallOfSound in #569
- feat(core): allow no config to be present, default to an empty object by @MarshallOfSound in #543
- feat(core): use git config to determine author before username by @pd4d10 in #920
- feat(core): add "init --force" to allow overwriting an existing dir by @malept in #1020
- feat: add typescript-webpack template by @codebytere in #1344
- feat: add template for typescript by @codebytere in #1319
- feat(plugin-webpack): add an option to export webpack compilation stats by @sirgallifrey in #639
- feat(core): add
platform
andarch
togenerateAssets
hook parameters by @timfish in #2327
#2344 - feat(plugin-webpack): allow most webpack-dev-server options to be configurable by @malept in #2444
- feat(plugin-webpack): allow specifing a seperate webpack config for your preload by @kyruzic in #2679
- feat: Make autoUpdate and autoLaunch features configurable in MakerWixConfig by @pthompson-asana in #2620
- feat(template): add a default preload script by @malept in #2722
- feat: Various improvements for electron/template by @felixrieseberg in #950
- feat(cli): add --inspect-brk-electron option by @MOZGIII in #1328
- feat(publisher-ers): support flavor config by @erickzhao in #2766
- feat: 🎸 Add packageSourceMaps option to WebpackPluginConfig by @zac-jacobson in #2581
- feat: allow disabling maker in config by @erickzhao in #2754
- feat: 🎸 allow specifying alternative tag prefix by @tylerbrandt in #2605
- feat(plugin-webpack): Allow each entrypoint to specify
nodeIntegration
by @chetbox in #2867 - feat: remove preload.js from TypeScript templates by @itsananderson in #2938
- feat(plugin-webpack): support standalone preload entry points by @erickzhao in #2950
- feat(webpack-plugin): webpack 5 configuration factory by @erickzhao in #2776
- feat(publisher-github): add retry support by @malept in #2550
- feat(publisher-github): add debug support for Octokit by @malept in #2499
- feat(publisher-bitbucket): initial publish publisher-bitbucket by @lukebatchelor in #571
- feat: adds a hook before MSICreator.create() is called by @mako-taco in #623