Forge 8
- Dominant language
- TypeScript
- Stars
- 7.1k
- Forks
- 641
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 30
Description
This issue outlines the work for the next major version of Electron 8.
## Goals
* Bump our `engines` requirement to Node.js 22 and update dependencies accordingly.
* Publish all `@electron-forge/` modules as ESM-only.
* Ensure both ESM and CJS configs are loaded properly, and that both ESM and CJS Electron apps run properly.
* Improve native Node.js add-on support.
* Improve documentation for public consumption.
* Graduate all extensions to stable.
* Deprecate/remove unused features.
## Release process
The [`next`](https://github.com/electron/forge/tree/next) branch is tracking work for the next major version.
Electron Forge now uses [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/) for an easier and more secure release process.
Until this issue is closed for the Electron Forge 8.0.0 release, we will be proceeding with three distinct pre-release stages, which will have their corresponding [distribution tags](https://docs.npmjs.com/adding-dist-tags-to-packages) on npm:
* `alpha`: Forge 8 is not ready for general consumption, and is actively being tweaked. At this point, maintainers will be dogfooding Forge 8 in their own apps to test it out. Use at your own risk!
* `beta`: Forge 8 should be stable enough for early adopters, but some breaking changes should be expected between versions.
* `rc`: In preparation for an 8.0.0 release, the Release Candidate stage is considered potentially stable unless bugs occur. Maintainers will decide on when Forge is ready for a stable release.
## TODO
I've created an [8.0.0](https://github.com/electron/forge/milestone/2) milestone of bugs and feature requests to address before the product is ready for stable.
- [x] Set up npm trusted publisher: https://github.com/electron/forge/pull/4070
- [x] Migrate to Node.js 22 and ESM https://github.com/electron/forge/pull/4059
- [x] Remove Electron Forge 5 import code: https://github.com/electron/forge/pull/4083
- [x] Remove `rechoir` and `interpret` config loading: https://github.com/electron/forge/pull/4066
- [x] Remove global templates: https://github.com/electron/forge/pull/4065
- [x] Refactor E2E API tests to pull from local modules https://github.com/electron/forge/pull/4100
- [x] Move package manager selection away from `NODE_INSTALLER` and into `init` API via corepack https://github.com/electron/forge/pull/4107
- [x] Update template linting to oxc.rs libraries: https://github.com/electron/forge/pull/4186
- [x] Move `init` and `import` commands away from `core` into `create-electron-app` https://github.com/electron/forge/pull/4148
- [x] Rename `publish` command to `release` to avoid conflicts with `npm publish` https://github.com/electron/forge/pull/4305
- [x] Move away from `file://` protocol in templates https://github.com/electron/forge/pull/4352
- [x] Move Forge documentation into `/docs` folder https://github.com/electron/forge/pull/4345
- [x] Unify JS/TS templates and bump `engines` to Node.js 22.13 https://github.com/electron/forge/pull/4229
- [x] Write maker output to per-maker `/` directories https://github.com/electron/forge/pull/4275 https://github.com/electron/forge/pull/4383
- [x] Graduate the Vite plugin from experimental https://github.com/electron/forge/pull/4382
- [x] Bump `@electron/*` and `electron-installer-*` dependencies to their latest majors https://github.com/electron/forge/pull/4379
- [ ] Default win32 maker should be MSIX
- [ ] Refactor `initLink` to work better with Yarn 4
- [ ] Improve native module support with Vite and Webpack
- [ ] Minimize other dependencies
- [ ] Define a stable third-party extension API
- [ ] Add GitHub Actions templates
- [ ] Document `@electron-forge/tracer` usage and best practices
- [ ] Move TypeDoc to `packages.electronjs.org`
Contributor guide
Assessment
This issue has not been assessed yet.