electron / electron/forge

Forge 8

Open
#4,082 3 comments 21 reactions 1 assignee Claimed by @erickzhao View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.