Skip to content

test(slow): test api against file: protocol fixtures - #4087

Merged
erickzhao merged 17 commits into
nextfrom
file-protocol-slow-tests
Dec 10, 2025
Merged

erickzhao merged 17 commits into
nextfrom
file-protocol-slow-tests

Conversation

@erickzhao

@erickzhao erickzhao commented Dec 10, 2025 •

Copy link
Copy Markdown
Member

Motivation

At a high level, I want to address a few issues in this PR:

  • The slow API tests are hard to read and depend on each other quite a bit.
  • Overall, the suite is very slow because we run each test once per package manager.
  • Running the init command will install production dependencies if not using yarn because of our yarn link implementation.
  • When we add additional dependencies for certain tests, there are no lockfile guarantees.

Solution

To do so, this PR moves out all the api.package() and api.make() tests to their own file and test them against a particular fixture (packages/api/core/spec/fixture/default-app/). This fixture's package.json links to all dependencies with the file: protocol so that we don't need to needlessly install deps on test runtime.

As such, a few additional dependencies are added to the workspace root's dependencies list:

  • ref-napi (for testing prebuilt native deps)
  • electron (for packaging)

This approach minimizes install time while ensuring that all deps related to these tests are validated against the project's root lockfile and can thus be scanned by tools like socket.dev.

Anecdotally, this brings down CI times by about a minute on macOS and Linux, but halves test time on Windows from 20min to 11min due to long npm install times on that platform.

@erickzhao
erickzhao requested a review from a team as a code owner December 10, 2025 00:32
@erickzhao erickzhao changed the title test(package): use file: protocol fixtures for slow tests test(package): test api against file: protocol fixtures Dec 10, 2025
@socket-security

socket-security Bot commented Dec 10, 2025 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedref-napi@​3.0.39710010080100
Addedelectron@​39.2.69410010098100

View full report

* @param callback - A callback function that returns the value of the new `package.json` to be applied
* @returns The original `package.json` prior to mutation
*/
async function updatePackageJSON(

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this function has been rewritten to be a bit less recklessly mutative

@erickzhao erickzhao changed the title test(package): test api against file: protocol fixtures test(slow): test api against file: protocol fixtures Dec 10, 2025
@erickzhao
erickzhao marked this pull request as draft December 10, 2025 02:13
@erickzhao
erickzhao marked this pull request as ready for review December 10, 2025 19:46
@erickzhao
erickzhao requested a review from a team December 10, 2025 19:48
Comment on lines +62 to +69
let dir: string;
beforeEach(async () => {
dir = await ensureTestDirIsNonexistent();

return async () => {
await fs.rm(dir, { recursive: true, force: true });
};
});

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we added electron into devDependencies, we need to move this test folder into a tmpdir to prevent getElectronVersion from finding Forge's installed electron version.

@erickzhao erickzhao added the next label Dec 10, 2025
@erickzhao
erickzhao merged commit 8e621da into next Dec 10, 2025
12 checks passed
@erickzhao
erickzhao deleted the file-protocol-slow-tests branch December 10, 2025 22:52
github-merge-queue Bot pushed a commit that referenced this pull request Dec 19, 2025
* test(slow): test api against `file:` protocol fixtures (#4087)

* test(slow): simplify bootstrapping tests (#4096)

* test: use verdaccio for e2e init testing (#4100)

* zzz

* gg
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 12, 2026
##### [v8.0.1](https://github.com/electron/forge/releases/tag/v8.0.1)

##### What's Changed

- build: Yarn 4 CI hardening by [@erickzhao](https://github.com/erickzhao) in [#4028](electron/forge#4028)
- feat(init): add `--electron-version` flag by [@erickzhao](https://github.com/erickzhao) in [#4037](electron/forge#4037)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4036](electron/forge#4036)
- feat: expose artifact version to static publishers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4033](electron/forge#4033)
- fix(publisher-gcs): do not gzip artifacts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4034](electron/forge#4034)
- chore: update `node-abi` to latest by [@erickzhao](https://github.com/erickzhao) in [#4046](electron/forge#4046)
- build(deps): bump brace-expansion from 1.1.11 to 1.1.12 by [@dependabot](https://github.com/dependabot)\[bot] in [#4047](electron/forge#4047)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4049](electron/forge#4049)
- build: remove electronegativity plugin by [@erickzhao](https://github.com/erickzhao) in [#4053](electron/forge#4053)
- test(fuses): use local modules instead of `initLink` by [@erickzhao](https://github.com/erickzhao) in [#4057](electron/forge#4057)
- chore: use yarn `workspace:*` cross-references by [@erickzhao](https://github.com/erickzhao) in [#4056](electron/forge#4056)
- chore: add eslint config change to `.git-blame-ignore-revs` by [@erickzhao](https://github.com/erickzhao) in [#4062](electron/forge#4062)
- feat(core)!: remove global module templates by [@erickzhao](https://github.com/erickzhao) in [#4065](electron/forge#4065)
- ci: set up npm trusted publishing by [@erickzhao](https://github.com/erickzhao) in [#4070](electron/forge#4070)
- chore: bump version to 8.0.0-alpha.1 by [@erickzhao](https://github.com/erickzhao) in [#4072](electron/forge#4072)
- build: target "next" branch in gh release create by [@VerteDinde](https://github.com/VerteDinde) in [#4074](electron/forge#4074)
- chore: bump version to 8.0.0-alpha.3 by [@VerteDinde](https://github.com/VerteDinde) in [#4075](electron/forge#4075)
- test: fix slow tests on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4076](electron/forge#4076)
- build: improve version + publish flow by [@erickzhao](https://github.com/erickzhao) in [#4078](electron/forge#4078)
- ci: use `.nvmrc` file for CI by [@erickzhao](https://github.com/erickzhao) in [#4081](electron/forge#4081)
- test: move AssetRelocatorPatch tests to slow tests by [@erickzhao](https://github.com/erickzhao) in [#4080](electron/forge#4080)
- feat(import)!: remove Forge 5 import code by [@erickzhao](https://github.com/erickzhao) in [#4083](electron/forge#4083)
- feat(core)!: remove rechoir + lodash templates from config loader by [@erickzhao](https://github.com/erickzhao) in [#4066](electron/forge#4066)
- ci: optimize Windows builds with faster D:\ drive by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4038](electron/forge#4038)
- test: upgrade to Vitest 4 by [@erickzhao](https://github.com/erickzhao) in [#4079](electron/forge#4079)
- build(deps): replace `ts-node` with `tsx` by [@erickzhao](https://github.com/erickzhao) in [#4085](electron/forge#4085)
- build(deps): update lint-roller to latest major version by [@erickzhao](https://github.com/erickzhao) in [#4086](electron/forge#4086)
- fix(maker-wix): set default arch by [@ShGKme](https://github.com/ShGKme) in [#3859](electron/forge#3859)
- fix(core): prevent duplicate app restarts when typing 'rs' multiple times by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4089](electron/forge#4089)
- ci: run post-merge on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4090](electron/forge#4090)
- test(slow): test api against `file:` protocol fixtures by [@erickzhao](https://github.com/erickzhao) in [#4087](electron/forge#4087)
- chore: fix formatting by [@erickzhao](https://github.com/erickzhao) in [#4091](electron/forge#4091)
- test(slow): simplify bootstrapping tests by [@erickzhao](https://github.com/erickzhao) in [#4096](electron/forge#4096)
- fix(template): add `private: true` by [@erickzhao](https://github.com/erickzhao) in [#4103](electron/forge#4103)
- test: use verdaccio for e2e init testing by [@erickzhao](https://github.com/erickzhao) in [#4100](electron/forge#4100)
- fix: interactive mode should proxy signals by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4102](electron/forge#4102)
- chore: remove `pre-push` hook by [@erickzhao](https://github.com/erickzhao) in [#4117](electron/forge#4117)
- test: use verdaccio in more `init` cases by [@erickzhao](https://github.com/erickzhao) in [#4119](electron/forge#4119)
- feat(init)!: add `--package-manager` flag by [@erickzhao](https://github.com/erickzhao) in [#4107](electron/forge#4107)
- fix: apply correct version bump commit title by [@erickzhao](https://github.com/erickzhao) in [#4122](electron/forge#4122)
- chore: bump version to 8.0.0-alpha.4 by [@erickzhao](https://github.com/erickzhao) in [#4131](electron/forge#4131)
- fix(template): modernize eslint deps by [@erickzhao](https://github.com/erickzhao) in [#4132](electron/forge#4132)
- feat!: Node 22 + ESM by [@erickzhao](https://github.com/erickzhao) in [#4059](electron/forge#4059)
- chore: add local claude code settings to `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4158](electron/forge#4158)
- build: isolate yarn cache when running verdaccio by [@erickzhao](https://github.com/erickzhao) in [#4161](electron/forge#4161)
- feat(create-electron-app)!: move `init` and `import` out of core by [@erickzhao](https://github.com/erickzhao) in [#4148](electron/forge#4148)
- perf(plugin-vite): run production builds in isolated subprocesses by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4163](electron/forge#4163)
- fix(plugin-vite): improve child logging by [@erickzhao](https://github.com/erickzhao) in [#4165](electron/forge#4165)
- build: replace eslint with oxlint by [@erickzhao](https://github.com/erickzhao) in [#4169](electron/forge#4169)
- chore: bump version to 8.0.0-alpha.5 by [@erickzhao](https://github.com/erickzhao) in [#4173](electron/forge#4173)
- fix: prune final `require` calls by [@erickzhao](https://github.com/erickzhao) in [#4176](electron/forge#4176)
- chore: bump version to 8.0.0-alpha.6 by [@erickzhao](https://github.com/erickzhao) in [#4177](electron/forge#4177)
- build(deps): remove unused `minimist` dep by [@erickzhao](https://github.com/erickzhao) in [#4171](electron/forge#4171)
- chore: remove additional eslint references by [@erickzhao](https://github.com/erickzhao) in [#4178](electron/forge#4178)
- ci: upgrade `actions/*` to latest by [@erickzhao](https://github.com/erickzhao) in [#4179](electron/forge#4179)
- feat(package): API returns result by [@erickzhao](https://github.com/erickzhao) in [#4172](electron/forge#4172)
- build(deps): update transient dependencies by [@erickzhao](https://github.com/erickzhao) in [#4182](electron/forge#4182)
- feat(template): use `moduleResolution: bundler` by [@erickzhao](https://github.com/erickzhao) in [#4175](electron/forge#4175)
- build: patch out lerna for verdaccio publish by [@erickzhao](https://github.com/erickzhao) in [#4185](electron/forge#4185)
- build: add knip for dead code detection by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4190](electron/forge#4190)
- refactor: replace got with native fetch API by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4189](electron/forge#4189)
- chore: fix `got` deps in lockfile by [@erickzhao](https://github.com/erickzhao) in [#4191](electron/forge#4191)
- chore: resolve dependabot security alerts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4204](electron/forge#4204)
- fix(plugin-webpack): ESM-compatible imports by [@erickzhao](https://github.com/erickzhao) in [#4206](electron/forge#4206)
- chore: forward-ports by [@erickzhao](https://github.com/erickzhao) in [#4205](electron/forge#4205)
- feat(plugin-vite): upgrade vite 8 by [@0xlau](https://github.com/0xlau) in [#4167](electron/forge#4167)
- chore: bump version to 8.0.0-alpha.7 by [@erickzhao](https://github.com/erickzhao) in [#4212](electron/forge#4212)
- fix(plugin-vite): ignore .git directory in dev mode file watcher by [@erickzhao](https://github.com/erickzhao) in [#4213](electron/forge#4213)
- fix(core): convert absolute file path to file URL in `locateElectronExecutable` by [@erikian](https://github.com/erikian) in [#4214](electron/forge#4214)
- fix(init): ensure base tmpl scripts are added to `package.json` by [@erickzhao](https://github.com/erickzhao) in [#4215](electron/forge#4215)
- fix: use `file://` URLs when dynamically importing local paths by [@erikian](https://github.com/erikian) in [#4217](electron/forge#4217)
- fix: tracer exception when tracing forge v8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4220](electron/forge#4220)
- feat(template): replace eslint/prettier with oxc.rs stack by [@erickzhao](https://github.com/erickzhao) in [#4186](electron/forge#4186)
- feat(publisher-github)!: Github -> GitHub by [@erickzhao](https://github.com/erickzhao) in [#4224](electron/forge#4224)
- refactor: replace fast-glob with built-in node:fs glob by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4227](electron/forge#4227)
- fix(template): update `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4221](electron/forge#4221)
- chore(template): remove stale `nodeIntegration` instructions by [@erickzhao](https://github.com/erickzhao) in [#4223](electron/forge#4223)
- refactor(plugin-vite): use codeSplitting:false for preload by [@erickzhao](https://github.com/erickzhao) in [#4222](electron/forge#4222)
- fix(maker-msix): ensure output has version and arch by [@erickzhao](https://github.com/erickzhao) in [#4225](electron/forge#4225)
- fix(maker-msix): use path.basename(dir) for artifact by [@erickzhao](https://github.com/erickzhao) in [#4230](electron/forge#4230)
- feat(plugin-vite): run main/preload dev builds in subprocess workers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4226](electron/forge#4226)
- feat: add notarization support to MakerPKG by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4234](electron/forge#4234)
- chore: bump version to 8.0.0-alpha.8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4235](electron/forge#4235)
- chore: update dependencies to dedupe across child packages by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4236](electron/forge#4236)
- build: delete stray `.eslintcache` file by [@erickzhao](https://github.com/erickzhao) in [#4237](electron/forge#4237)
- fix: bump to [@electron/packager](https://github.com/electron/packager) and [@electron/get](https://github.com/electron/get) to drop 'got' transitive dep by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4239](electron/forge#4239)
- fix(cli): allow pre-release package manager ranges by [@erickzhao](https://github.com/erickzhao) in [#4241](electron/forge#4241)
- build(deps): TypeScript 6 + 7 by [@erickzhao](https://github.com/erickzhao) in [#4238](electron/forge#4238)
- chore: replace chalk and log-symbols with Node.js built-in styleText by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4245](electron/forge#4245)
- refactor: replace find-up dependency with internal implementation by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4248](electron/forge#4248)
- fix(template-base): copy over `.oxfmtrc.json` for instantiation by [@erickzhao](https://github.com/erickzhao) in [#4256](electron/forge#4256)
- chore: bump version to 8.0.0-alpha.9 by [@erickzhao](https://github.com/erickzhao) in [#4263](electron/forge#4263)
- refactor: replace fs-extra with graceful-fs and native fs by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4250](electron/forge#4250)
- fix(core): convert absolute paths to file URLs in importSearch by [@erickzhao](https://github.com/erickzhao) in [#4273](electron/forge#4273)
- build: add `tsconfig.json` to `clean` script by [@erickzhao](https://github.com/erickzhao) in [#4272](electron/forge#4272)
- refactor: inline filenamify utility to remove external dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4249](electron/forge#4249)
- refactor(core-utils): inline parse-author and drop dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4251](electron/forge#4251)
- feat(maker-dmg)!: write DMGs to platform/arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4275](electron/forge#4275)
- build(deps): use electron-internal/extract-zip by [@erickzhao](https://github.com/erickzhao) in [#4285](electron/forge#4285)
- chore: exclude git worktrees from tooling by [@erickzhao](https://github.com/erickzhao) in [#4286](electron/forge#4286)
- fix(cli): detect TTY for interactive mode instead of hardcoding true by [@erickzhao](https://github.com/erickzhao) in [#4259](electron/forge#4259)
- chore: bump version to 8.0.0-alpha.10 by [@erickzhao](https://github.com/erickzhao) in [#4289](electron/forge#4289)
- ci: cancel stale in-progress runs on PR pushes by [@claude](https://github.com/claude)\[bot] in [#4297](electron/forge#4297)
- feat(maker-msix): allow overriding output filename by [@claude](https://github.com/claude)\[bot] in [#4295](electron/forge#4295)
- ci: fail required-ci when a dependency fails or is cancelled by [@claude](https://github.com/claude)\[bot] in [#4300](electron/forge#4300)
- feat(maker): add typed copyright option for deb and rpm makers by [@claude](https://github.com/claude)\[bot] in [#4298](electron/forge#4298)
- fix(create-electron-app): mark vite as experimental in bundler chooser by [@claude](https://github.com/claude)\[bot] in [#4307](electron/forge#4307)
- feat(publisher-github): show byte-level asset upload progress by [@claude](https://github.com/claude)\[bot] in [#4304](electron/forge#4304)
- build(deps): upgrade webpack-dev-server to v5.2.4 on next by [@claude](https://github.com/claude)\[bot] in [#4308](electron/forge#4308)
- fix(core): disable concurrency for package subtasks by [@claude](https://github.com/claude)\[bot] in [#4309](electron/forge#4309)
- ci: port zizmor audit hardening to next (backport of [#4200](electron/forge#4200)) by [@claude](https://github.com/claude)\[bot] in [#4310](electron/forge#4310)
- feat: rename `publish` command to `release` by [@claude](https://github.com/claude)\[bot] in [#4305](electron/forge#4305)
- test: add end-to-end tests for `create-electron-app` across all templates and package managers by [@erikian](https://github.com/erikian) in [#4218](electron/forge#4218)
- test: retry temp folder removal for tests that spawn Electron by [@erikian](https://github.com/erikian) in [#4316](electron/forge#4316)
- fix: avoid duplicate draft releases when publishing multiple dry runs (next) by [@claude](https://github.com/claude)\[bot] in [#4327](electron/forge#4327)
- build: Yarn 4.18 and TypeScript 7 stable by [@SpacingBat3](https://github.com/SpacingBat3) in [#4322](electron/forge#4322)
- fix(create-electron-app): surface dependency install failures during init by [@erickzhao](https://github.com/erickzhao) in [#4348](electron/forge#4348)
- feat(plugin-vite): enable main process hot restart via exported API by [@erickzhao](https://github.com/erickzhao) in [#4346](electron/forge#4346)
- test: apply the supply-chain age gate to npm and pnpm in Verdaccio tests by [@erickzhao](https://github.com/erickzhao) in [#4347](electron/forge#4347)
- docs: import documentation from electron-forge-docs by [@erickzhao](https://github.com/erickzhao) in [#4345](electron/forge#4345)
- fix(typedoc): documentation & API completeness fixes by [@SpacingBat3](https://github.com/SpacingBat3) in [#4321](electron/forge#4321)
- feat(plugin-vite): support custom server host in renderer dev server URL by [@erickzhao](https://github.com/erickzhao) in [#4363](electron/forge#4363)
- build(deps): bump lint-staged to 17.4.1 by [@claude](https://github.com/claude)\[bot] in [#4366](electron/forge#4366)
- feat(template): unify JS/TS templates by [@erickzhao](https://github.com/erickzhao) in [#4229](electron/forge#4229)
- test: remove orphaned e2e specs for deleted typescript template packages by [@erickzhao](https://github.com/erickzhao) in [#4374](electron/forge#4374)
- ci: shard the slow tests and drop the dead node-gyp setup step by [@erickzhao](https://github.com/erickzhao) in [#4380](electron/forge#4380)
- build(deps): bump @electron/\* and electron-installer-\* packages by [@erickzhao](https://github.com/erickzhao) in [#4379](electron/forge#4379)
- fix(core): guard against archs dropped by Electron 44 (win32/ia32, linux/armv7l) by [@erickzhao](https://github.com/erickzhao) in [#4377](electron/forge#4377)
- feat(plugin-vite): graduate from experimental by [@erickzhao](https://github.com/erickzhao) in [#4382](electron/forge#4382)
- feat(maker-pkg)!: write PKGs to arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4383](electron/forge#4383)
- test(core): stub packager arch list in the dropped-arch warning test by [@erickzhao](https://github.com/erickzhao) in [#4384](electron/forge#4384)
- chore: remove Discord links by [@erickzhao](https://github.com/erickzhao) in [#4378](electron/forge#4378)
- chore(deps)!: upgrade listr2 to v11 by [@erickzhao](https://github.com/erickzhao) in [#4375](electron/forge#4375)
- ci: skip the test jobs on docs-only changes by [@claude](https://github.com/claude)\[bot] in [#4387](electron/forge#4387)
- test: add unit coverage for maker-appx and maker-msix make() by [@claude](https://github.com/claude)\[bot] in [#4388](electron/forge#4388)
- feat(bundlers)!: emit main and preload bundles as .cjs by [@erickzhao](https://github.com/erickzhao) in [#4393](electron/forge#4393)
- feat(plugin-webpack): render compiler output in the terminal with an ink multi-logger by [@claude](https://github.com/claude)\[bot] in [#4389](electron/forge#4389)
- build: stop lint-staged failing on oxfmt-ignored files by [@erickzhao](https://github.com/erickzhao) in [#4396](electron/forge#4396)
- fix(core): resolve the Forge config once per command by [@erickzhao](https://github.com/erickzhao) in [#4394](electron/forge#4394)
- ci: prepare `next` for promotion to `main` as Forge 8 by [@erickzhao](https://github.com/erickzhao) in [#4381](electron/forge#4381)
- ci: forward-port GHA improvements from 7.x by [@claude](https://github.com/claude)\[bot] in [#4401](electron/forge#4401)
- fix(template-base): accept partial yarn versions when initializing by [@erickzhao](https://github.com/erickzhao) in [#4403](electron/forge#4403)
- feat!: replace `release --from-dry-run` with `--from-make`, and `make --skip-package` with `--from-package` by [@erickzhao](https://github.com/erickzhao) in [#4395](electron/forge#4395)
- build: bump [@electron/lint-roller](https://github.com/electron/lint-roller) to ^4.0.0 by [@claude](https://github.com/claude)\[bot] in [#4404](electron/forge#4404)
- fix(template-vite): use .mts for Vite configs in the TypeScript variant by [@erickzhao](https://github.com/erickzhao) in [#4406](electron/forge#4406)
- fix(template): typecheck root-level config files by [@erickzhao](https://github.com/erickzhao) in [#4407](electron/forge#4407)
- build(deps): bump vulnerable transitive and direct dependencies by [@erickzhao](https://github.com/erickzhao) in [#4408](electron/forge#4408)
- build(deps): upgrade Electron to 44.4.3 by [@erickzhao](https://github.com/erickzhao) in [#4410](electron/forge#4410)
- docs: add AGENTS.md guidance for AI coding agents by [@erickzhao](https://github.com/erickzhao) in [#4416](electron/forge#4416)
- refactor(maker-appx)!: reimplement as a legacy wrapper over the MSIX maker by [@claude](https://github.com/claude)\[bot] in [#4392](electron/forge#4392)
- chore: bump version to 8.0.0 by [@claude](https://github.com/claude)\[bot] in [#4425](electron/forge#4425)
- chore: bump version to 8.0.1 by [@claude](https://github.com/claude)\[bot] in [#4426](electron/forge#4426)

##### New Contributors

- [@0xlau](https://github.com/0xlau) made their first contribution in [#4167](electron/forge#4167)

**Full Changelog**: <electron/forge@v7.10.2...v8.0.1>
##### [v8.0.0](electron/forge@v7.11.2...40b4adf)
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 12, 2026
##### [v8.0.1](https://github.com/electron/forge/releases/tag/v8.0.1)

##### What's Changed

- build: Yarn 4 CI hardening by [@erickzhao](https://github.com/erickzhao) in [#4028](electron/forge#4028)
- feat(init): add `--electron-version` flag by [@erickzhao](https://github.com/erickzhao) in [#4037](electron/forge#4037)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4036](electron/forge#4036)
- feat: expose artifact version to static publishers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4033](electron/forge#4033)
- fix(publisher-gcs): do not gzip artifacts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4034](electron/forge#4034)
- chore: update `node-abi` to latest by [@erickzhao](https://github.com/erickzhao) in [#4046](electron/forge#4046)
- build(deps): bump brace-expansion from 1.1.11 to 1.1.12 by [@dependabot](https://github.com/dependabot)\[bot] in [#4047](electron/forge#4047)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4049](electron/forge#4049)
- build: remove electronegativity plugin by [@erickzhao](https://github.com/erickzhao) in [#4053](electron/forge#4053)
- test(fuses): use local modules instead of `initLink` by [@erickzhao](https://github.com/erickzhao) in [#4057](electron/forge#4057)
- chore: use yarn `workspace:*` cross-references by [@erickzhao](https://github.com/erickzhao) in [#4056](electron/forge#4056)
- chore: add eslint config change to `.git-blame-ignore-revs` by [@erickzhao](https://github.com/erickzhao) in [#4062](electron/forge#4062)
- feat(core)!: remove global module templates by [@erickzhao](https://github.com/erickzhao) in [#4065](electron/forge#4065)
- ci: set up npm trusted publishing by [@erickzhao](https://github.com/erickzhao) in [#4070](electron/forge#4070)
- chore: bump version to 8.0.0-alpha.1 by [@erickzhao](https://github.com/erickzhao) in [#4072](electron/forge#4072)
- build: target "next" branch in gh release create by [@VerteDinde](https://github.com/VerteDinde) in [#4074](electron/forge#4074)
- chore: bump version to 8.0.0-alpha.3 by [@VerteDinde](https://github.com/VerteDinde) in [#4075](electron/forge#4075)
- test: fix slow tests on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4076](electron/forge#4076)
- build: improve version + publish flow by [@erickzhao](https://github.com/erickzhao) in [#4078](electron/forge#4078)
- ci: use `.nvmrc` file for CI by [@erickzhao](https://github.com/erickzhao) in [#4081](electron/forge#4081)
- test: move AssetRelocatorPatch tests to slow tests by [@erickzhao](https://github.com/erickzhao) in [#4080](electron/forge#4080)
- feat(import)!: remove Forge 5 import code by [@erickzhao](https://github.com/erickzhao) in [#4083](electron/forge#4083)
- feat(core)!: remove rechoir + lodash templates from config loader by [@erickzhao](https://github.com/erickzhao) in [#4066](electron/forge#4066)
- ci: optimize Windows builds with faster D:\ drive by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4038](electron/forge#4038)
- test: upgrade to Vitest 4 by [@erickzhao](https://github.com/erickzhao) in [#4079](electron/forge#4079)
- build(deps): replace `ts-node` with `tsx` by [@erickzhao](https://github.com/erickzhao) in [#4085](electron/forge#4085)
- build(deps): update lint-roller to latest major version by [@erickzhao](https://github.com/erickzhao) in [#4086](electron/forge#4086)
- fix(maker-wix): set default arch by [@ShGKme](https://github.com/ShGKme) in [#3859](electron/forge#3859)
- fix(core): prevent duplicate app restarts when typing 'rs' multiple times by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4089](electron/forge#4089)
- ci: run post-merge on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4090](electron/forge#4090)
- test(slow): test api against `file:` protocol fixtures by [@erickzhao](https://github.com/erickzhao) in [#4087](electron/forge#4087)
- chore: fix formatting by [@erickzhao](https://github.com/erickzhao) in [#4091](electron/forge#4091)
- test(slow): simplify bootstrapping tests by [@erickzhao](https://github.com/erickzhao) in [#4096](electron/forge#4096)
- fix(template): add `private: true` by [@erickzhao](https://github.com/erickzhao) in [#4103](electron/forge#4103)
- test: use verdaccio for e2e init testing by [@erickzhao](https://github.com/erickzhao) in [#4100](electron/forge#4100)
- fix: interactive mode should proxy signals by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4102](electron/forge#4102)
- chore: remove `pre-push` hook by [@erickzhao](https://github.com/erickzhao) in [#4117](electron/forge#4117)
- test: use verdaccio in more `init` cases by [@erickzhao](https://github.com/erickzhao) in [#4119](electron/forge#4119)
- feat(init)!: add `--package-manager` flag by [@erickzhao](https://github.com/erickzhao) in [#4107](electron/forge#4107)
- fix: apply correct version bump commit title by [@erickzhao](https://github.com/erickzhao) in [#4122](electron/forge#4122)
- chore: bump version to 8.0.0-alpha.4 by [@erickzhao](https://github.com/erickzhao) in [#4131](electron/forge#4131)
- fix(template): modernize eslint deps by [@erickzhao](https://github.com/erickzhao) in [#4132](electron/forge#4132)
- feat!: Node 22 + ESM by [@erickzhao](https://github.com/erickzhao) in [#4059](electron/forge#4059)
- chore: add local claude code settings to `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4158](electron/forge#4158)
- build: isolate yarn cache when running verdaccio by [@erickzhao](https://github.com/erickzhao) in [#4161](electron/forge#4161)
- feat(create-electron-app)!: move `init` and `import` out of core by [@erickzhao](https://github.com/erickzhao) in [#4148](electron/forge#4148)
- perf(plugin-vite): run production builds in isolated subprocesses by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4163](electron/forge#4163)
- fix(plugin-vite): improve child logging by [@erickzhao](https://github.com/erickzhao) in [#4165](electron/forge#4165)
- build: replace eslint with oxlint by [@erickzhao](https://github.com/erickzhao) in [#4169](electron/forge#4169)
- chore: bump version to 8.0.0-alpha.5 by [@erickzhao](https://github.com/erickzhao) in [#4173](electron/forge#4173)
- fix: prune final `require` calls by [@erickzhao](https://github.com/erickzhao) in [#4176](electron/forge#4176)
- chore: bump version to 8.0.0-alpha.6 by [@erickzhao](https://github.com/erickzhao) in [#4177](electron/forge#4177)
- build(deps): remove unused `minimist` dep by [@erickzhao](https://github.com/erickzhao) in [#4171](electron/forge#4171)
- chore: remove additional eslint references by [@erickzhao](https://github.com/erickzhao) in [#4178](electron/forge#4178)
- ci: upgrade `actions/*` to latest by [@erickzhao](https://github.com/erickzhao) in [#4179](electron/forge#4179)
- feat(package): API returns result by [@erickzhao](https://github.com/erickzhao) in [#4172](electron/forge#4172)
- build(deps): update transient dependencies by [@erickzhao](https://github.com/erickzhao) in [#4182](electron/forge#4182)
- feat(template): use `moduleResolution: bundler` by [@erickzhao](https://github.com/erickzhao) in [#4175](electron/forge#4175)
- build: patch out lerna for verdaccio publish by [@erickzhao](https://github.com/erickzhao) in [#4185](electron/forge#4185)
- build: add knip for dead code detection by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4190](electron/forge#4190)
- refactor: replace got with native fetch API by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4189](electron/forge#4189)
- chore: fix `got` deps in lockfile by [@erickzhao](https://github.com/erickzhao) in [#4191](electron/forge#4191)
- chore: resolve dependabot security alerts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4204](electron/forge#4204)
- fix(plugin-webpack): ESM-compatible imports by [@erickzhao](https://github.com/erickzhao) in [#4206](electron/forge#4206)
- chore: forward-ports by [@erickzhao](https://github.com/erickzhao) in [#4205](electron/forge#4205)
- feat(plugin-vite): upgrade vite 8 by [@0xlau](https://github.com/0xlau) in [#4167](electron/forge#4167)
- chore: bump version to 8.0.0-alpha.7 by [@erickzhao](https://github.com/erickzhao) in [#4212](electron/forge#4212)
- fix(plugin-vite): ignore .git directory in dev mode file watcher by [@erickzhao](https://github.com/erickzhao) in [#4213](electron/forge#4213)
- fix(core): convert absolute file path to file URL in `locateElectronExecutable` by [@erikian](https://github.com/erikian) in [#4214](electron/forge#4214)
- fix(init): ensure base tmpl scripts are added to `package.json` by [@erickzhao](https://github.com/erickzhao) in [#4215](electron/forge#4215)
- fix: use `file://` URLs when dynamically importing local paths by [@erikian](https://github.com/erikian) in [#4217](electron/forge#4217)
- fix: tracer exception when tracing forge v8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4220](electron/forge#4220)
- feat(template): replace eslint/prettier with oxc.rs stack by [@erickzhao](https://github.com/erickzhao) in [#4186](electron/forge#4186)
- feat(publisher-github)!: Github -> GitHub by [@erickzhao](https://github.com/erickzhao) in [#4224](electron/forge#4224)
- refactor: replace fast-glob with built-in node:fs glob by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4227](electron/forge#4227)
- fix(template): update `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4221](electron/forge#4221)
- chore(template): remove stale `nodeIntegration` instructions by [@erickzhao](https://github.com/erickzhao) in [#4223](electron/forge#4223)
- refactor(plugin-vite): use codeSplitting:false for preload by [@erickzhao](https://github.com/erickzhao) in [#4222](electron/forge#4222)
- fix(maker-msix): ensure output has version and arch by [@erickzhao](https://github.com/erickzhao) in [#4225](electron/forge#4225)
- fix(maker-msix): use path.basename(dir) for artifact by [@erickzhao](https://github.com/erickzhao) in [#4230](electron/forge#4230)
- feat(plugin-vite): run main/preload dev builds in subprocess workers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4226](electron/forge#4226)
- feat: add notarization support to MakerPKG by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4234](electron/forge#4234)
- chore: bump version to 8.0.0-alpha.8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4235](electron/forge#4235)
- chore: update dependencies to dedupe across child packages by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4236](electron/forge#4236)
- build: delete stray `.eslintcache` file by [@erickzhao](https://github.com/erickzhao) in [#4237](electron/forge#4237)
- fix: bump to [@electron/packager](https://github.com/electron/packager) and [@electron/get](https://github.com/electron/get) to drop 'got' transitive dep by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4239](electron/forge#4239)
- fix(cli): allow pre-release package manager ranges by [@erickzhao](https://github.com/erickzhao) in [#4241](electron/forge#4241)
- build(deps): TypeScript 6 + 7 by [@erickzhao](https://github.com/erickzhao) in [#4238](electron/forge#4238)
- chore: replace chalk and log-symbols with Node.js built-in styleText by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4245](electron/forge#4245)
- refactor: replace find-up dependency with internal implementation by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4248](electron/forge#4248)
- fix(template-base): copy over `.oxfmtrc.json` for instantiation by [@erickzhao](https://github.com/erickzhao) in [#4256](electron/forge#4256)
- chore: bump version to 8.0.0-alpha.9 by [@erickzhao](https://github.com/erickzhao) in [#4263](electron/forge#4263)
- refactor: replace fs-extra with graceful-fs and native fs by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4250](electron/forge#4250)
- fix(core): convert absolute paths to file URLs in importSearch by [@erickzhao](https://github.com/erickzhao) in [#4273](electron/forge#4273)
- build: add `tsconfig.json` to `clean` script by [@erickzhao](https://github.com/erickzhao) in [#4272](electron/forge#4272)
- refactor: inline filenamify utility to remove external dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4249](electron/forge#4249)
- refactor(core-utils): inline parse-author and drop dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4251](electron/forge#4251)
- feat(maker-dmg)!: write DMGs to platform/arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4275](electron/forge#4275)
- build(deps): use electron-internal/extract-zip by [@erickzhao](https://github.com/erickzhao) in [#4285](electron/forge#4285)
- chore: exclude git worktrees from tooling by [@erickzhao](https://github.com/erickzhao) in [#4286](electron/forge#4286)
- fix(cli): detect TTY for interactive mode instead of hardcoding true by [@erickzhao](https://github.com/erickzhao) in [#4259](electron/forge#4259)
- chore: bump version to 8.0.0-alpha.10 by [@erickzhao](https://github.com/erickzhao) in [#4289](electron/forge#4289)
- ci: cancel stale in-progress runs on PR pushes by [@claude](https://github.com/claude)\[bot] in [#4297](electron/forge#4297)
- feat(maker-msix): allow overriding output filename by [@claude](https://github.com/claude)\[bot] in [#4295](electron/forge#4295)
- ci: fail required-ci when a dependency fails or is cancelled by [@claude](https://github.com/claude)\[bot] in [#4300](electron/forge#4300)
- feat(maker): add typed copyright option for deb and rpm makers by [@claude](https://github.com/claude)\[bot] in [#4298](electron/forge#4298)
- fix(create-electron-app): mark vite as experimental in bundler chooser by [@claude](https://github.com/claude)\[bot] in [#4307](electron/forge#4307)
- feat(publisher-github): show byte-level asset upload progress by [@claude](https://github.com/claude)\[bot] in [#4304](electron/forge#4304)
- build(deps): upgrade webpack-dev-server to v5.2.4 on next by [@claude](https://github.com/claude)\[bot] in [#4308](electron/forge#4308)
- fix(core): disable concurrency for package subtasks by [@claude](https://github.com/claude)\[bot] in [#4309](electron/forge#4309)
- ci: port zizmor audit hardening to next (backport of [#4200](electron/forge#4200)) by [@claude](https://github.com/claude)\[bot] in [#4310](electron/forge#4310)
- feat: rename `publish` command to `release` by [@claude](https://github.com/claude)\[bot] in [#4305](electron/forge#4305)
- test: add end-to-end tests for `create-electron-app` across all templates and package managers by [@erikian](https://github.com/erikian) in [#4218](electron/forge#4218)
- test: retry temp folder removal for tests that spawn Electron by [@erikian](https://github.com/erikian) in [#4316](electron/forge#4316)
- fix: avoid duplicate draft releases when publishing multiple dry runs (next) by [@claude](https://github.com/claude)\[bot] in [#4327](electron/forge#4327)
- build: Yarn 4.18 and TypeScript 7 stable by [@SpacingBat3](https://github.com/SpacingBat3) in [#4322](electron/forge#4322)
- fix(create-electron-app): surface dependency install failures during init by [@erickzhao](https://github.com/erickzhao) in [#4348](electron/forge#4348)
- feat(plugin-vite): enable main process hot restart via exported API by [@erickzhao](https://github.com/erickzhao) in [#4346](electron/forge#4346)
- test: apply the supply-chain age gate to npm and pnpm in Verdaccio tests by [@erickzhao](https://github.com/erickzhao) in [#4347](electron/forge#4347)
- docs: import documentation from electron-forge-docs by [@erickzhao](https://github.com/erickzhao) in [#4345](electron/forge#4345)
- fix(typedoc): documentation & API completeness fixes by [@SpacingBat3](https://github.com/SpacingBat3) in [#4321](electron/forge#4321)
- feat(plugin-vite): support custom server host in renderer dev server URL by [@erickzhao](https://github.com/erickzhao) in [#4363](electron/forge#4363)
- build(deps): bump lint-staged to 17.4.1 by [@claude](https://github.com/claude)\[bot] in [#4366](electron/forge#4366)
- feat(template): unify JS/TS templates by [@erickzhao](https://github.com/erickzhao) in [#4229](electron/forge#4229)
- test: remove orphaned e2e specs for deleted typescript template packages by [@erickzhao](https://github.com/erickzhao) in [#4374](electron/forge#4374)
- ci: shard the slow tests and drop the dead node-gyp setup step by [@erickzhao](https://github.com/erickzhao) in [#4380](electron/forge#4380)
- build(deps): bump @electron/\* and electron-installer-\* packages by [@erickzhao](https://github.com/erickzhao) in [#4379](electron/forge#4379)
- fix(core): guard against archs dropped by Electron 44 (win32/ia32, linux/armv7l) by [@erickzhao](https://github.com/erickzhao) in [#4377](electron/forge#4377)
- feat(plugin-vite): graduate from experimental by [@erickzhao](https://github.com/erickzhao) in [#4382](electron/forge#4382)
- feat(maker-pkg)!: write PKGs to arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4383](electron/forge#4383)
- test(core): stub packager arch list in the dropped-arch warning test by [@erickzhao](https://github.com/erickzhao) in [#4384](electron/forge#4384)
- chore: remove Discord links by [@erickzhao](https://github.com/erickzhao) in [#4378](electron/forge#4378)
- chore(deps)!: upgrade listr2 to v11 by [@erickzhao](https://github.com/erickzhao) in [#4375](electron/forge#4375)
- ci: skip the test jobs on docs-only changes by [@claude](https://github.com/claude)\[bot] in [#4387](electron/forge#4387)
- test: add unit coverage for maker-appx and maker-msix make() by [@claude](https://github.com/claude)\[bot] in [#4388](electron/forge#4388)
- feat(bundlers)!: emit main and preload bundles as .cjs by [@erickzhao](https://github.com/erickzhao) in [#4393](electron/forge#4393)
- feat(plugin-webpack): render compiler output in the terminal with an ink multi-logger by [@claude](https://github.com/claude)\[bot] in [#4389](electron/forge#4389)
- build: stop lint-staged failing on oxfmt-ignored files by [@erickzhao](https://github.com/erickzhao) in [#4396](electron/forge#4396)
- fix(core): resolve the Forge config once per command by [@erickzhao](https://github.com/erickzhao) in [#4394](electron/forge#4394)
- ci: prepare `next` for promotion to `main` as Forge 8 by [@erickzhao](https://github.com/erickzhao) in [#4381](electron/forge#4381)
- ci: forward-port GHA improvements from 7.x by [@claude](https://github.com/claude)\[bot] in [#4401](electron/forge#4401)
- fix(template-base): accept partial yarn versions when initializing by [@erickzhao](https://github.com/erickzhao) in [#4403](electron/forge#4403)
- feat!: replace `release --from-dry-run` with `--from-make`, and `make --skip-package` with `--from-package` by [@erickzhao](https://github.com/erickzhao) in [#4395](electron/forge#4395)
- build: bump [@electron/lint-roller](https://github.com/electron/lint-roller) to ^4.0.0 by [@claude](https://github.com/claude)\[bot] in [#4404](electron/forge#4404)
- fix(template-vite): use .mts for Vite configs in the TypeScript variant by [@erickzhao](https://github.com/erickzhao) in [#4406](electron/forge#4406)
- fix(template): typecheck root-level config files by [@erickzhao](https://github.com/erickzhao) in [#4407](electron/forge#4407)
- build(deps): bump vulnerable transitive and direct dependencies by [@erickzhao](https://github.com/erickzhao) in [#4408](electron/forge#4408)
- build(deps): upgrade Electron to 44.4.3 by [@erickzhao](https://github.com/erickzhao) in [#4410](electron/forge#4410)
- docs: add AGENTS.md guidance for AI coding agents by [@erickzhao](https://github.com/erickzhao) in [#4416](electron/forge#4416)
- refactor(maker-appx)!: reimplement as a legacy wrapper over the MSIX maker by [@claude](https://github.com/claude)\[bot] in [#4392](electron/forge#4392)
- chore: bump version to 8.0.0 by [@claude](https://github.com/claude)\[bot] in [#4425](electron/forge#4425)
- chore: bump version to 8.0.1 by [@claude](https://github.com/claude)\[bot] in [#4426](electron/forge#4426)

##### New Contributors

- [@0xlau](https://github.com/0xlau) made their first contribution in [#4167](electron/forge#4167)

**Full Changelog**: <electron/forge@v7.10.2...v8.0.1>
##### [v8.0.0](electron/forge@v7.11.2...40b4adf)
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 12, 2026
##### [v8.0.1](https://github.com/electron/forge/releases/tag/v8.0.1)

##### What's Changed

- build: Yarn 4 CI hardening by [@erickzhao](https://github.com/erickzhao) in [#4028](electron/forge#4028)
- feat(init): add `--electron-version` flag by [@erickzhao](https://github.com/erickzhao) in [#4037](electron/forge#4037)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4036](electron/forge#4036)
- feat: expose artifact version to static publishers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4033](electron/forge#4033)
- fix(publisher-gcs): do not gzip artifacts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4034](electron/forge#4034)
- chore: update `node-abi` to latest by [@erickzhao](https://github.com/erickzhao) in [#4046](electron/forge#4046)
- build(deps): bump brace-expansion from 1.1.11 to 1.1.12 by [@dependabot](https://github.com/dependabot)\[bot] in [#4047](electron/forge#4047)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4049](electron/forge#4049)
- build: remove electronegativity plugin by [@erickzhao](https://github.com/erickzhao) in [#4053](electron/forge#4053)
- test(fuses): use local modules instead of `initLink` by [@erickzhao](https://github.com/erickzhao) in [#4057](electron/forge#4057)
- chore: use yarn `workspace:*` cross-references by [@erickzhao](https://github.com/erickzhao) in [#4056](electron/forge#4056)
- chore: add eslint config change to `.git-blame-ignore-revs` by [@erickzhao](https://github.com/erickzhao) in [#4062](electron/forge#4062)
- feat(core)!: remove global module templates by [@erickzhao](https://github.com/erickzhao) in [#4065](electron/forge#4065)
- ci: set up npm trusted publishing by [@erickzhao](https://github.com/erickzhao) in [#4070](electron/forge#4070)
- chore: bump version to 8.0.0-alpha.1 by [@erickzhao](https://github.com/erickzhao) in [#4072](electron/forge#4072)
- build: target "next" branch in gh release create by [@VerteDinde](https://github.com/VerteDinde) in [#4074](electron/forge#4074)
- chore: bump version to 8.0.0-alpha.3 by [@VerteDinde](https://github.com/VerteDinde) in [#4075](electron/forge#4075)
- test: fix slow tests on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4076](electron/forge#4076)
- build: improve version + publish flow by [@erickzhao](https://github.com/erickzhao) in [#4078](electron/forge#4078)
- ci: use `.nvmrc` file for CI by [@erickzhao](https://github.com/erickzhao) in [#4081](electron/forge#4081)
- test: move AssetRelocatorPatch tests to slow tests by [@erickzhao](https://github.com/erickzhao) in [#4080](electron/forge#4080)
- feat(import)!: remove Forge 5 import code by [@erickzhao](https://github.com/erickzhao) in [#4083](electron/forge#4083)
- feat(core)!: remove rechoir + lodash templates from config loader by [@erickzhao](https://github.com/erickzhao) in [#4066](electron/forge#4066)
- ci: optimize Windows builds with faster D:\ drive by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4038](electron/forge#4038)
- test: upgrade to Vitest 4 by [@erickzhao](https://github.com/erickzhao) in [#4079](electron/forge#4079)
- build(deps): replace `ts-node` with `tsx` by [@erickzhao](https://github.com/erickzhao) in [#4085](electron/forge#4085)
- build(deps): update lint-roller to latest major version by [@erickzhao](https://github.com/erickzhao) in [#4086](electron/forge#4086)
- fix(maker-wix): set default arch by [@ShGKme](https://github.com/ShGKme) in [#3859](electron/forge#3859)
- fix(core): prevent duplicate app restarts when typing 'rs' multiple times by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4089](electron/forge#4089)
- ci: run post-merge on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4090](electron/forge#4090)
- test(slow): test api against `file:` protocol fixtures by [@erickzhao](https://github.com/erickzhao) in [#4087](electron/forge#4087)
- chore: fix formatting by [@erickzhao](https://github.com/erickzhao) in [#4091](electron/forge#4091)
- test(slow): simplify bootstrapping tests by [@erickzhao](https://github.com/erickzhao) in [#4096](electron/forge#4096)
- fix(template): add `private: true` by [@erickzhao](https://github.com/erickzhao) in [#4103](electron/forge#4103)
- test: use verdaccio for e2e init testing by [@erickzhao](https://github.com/erickzhao) in [#4100](electron/forge#4100)
- fix: interactive mode should proxy signals by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4102](electron/forge#4102)
- chore: remove `pre-push` hook by [@erickzhao](https://github.com/erickzhao) in [#4117](electron/forge#4117)
- test: use verdaccio in more `init` cases by [@erickzhao](https://github.com/erickzhao) in [#4119](electron/forge#4119)
- feat(init)!: add `--package-manager` flag by [@erickzhao](https://github.com/erickzhao) in [#4107](electron/forge#4107)
- fix: apply correct version bump commit title by [@erickzhao](https://github.com/erickzhao) in [#4122](electron/forge#4122)
- chore: bump version to 8.0.0-alpha.4 by [@erickzhao](https://github.com/erickzhao) in [#4131](electron/forge#4131)
- fix(template): modernize eslint deps by [@erickzhao](https://github.com/erickzhao) in [#4132](electron/forge#4132)
- feat!: Node 22 + ESM by [@erickzhao](https://github.com/erickzhao) in [#4059](electron/forge#4059)
- chore: add local claude code settings to `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4158](electron/forge#4158)
- build: isolate yarn cache when running verdaccio by [@erickzhao](https://github.com/erickzhao) in [#4161](electron/forge#4161)
- feat(create-electron-app)!: move `init` and `import` out of core by [@erickzhao](https://github.com/erickzhao) in [#4148](electron/forge#4148)
- perf(plugin-vite): run production builds in isolated subprocesses by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4163](electron/forge#4163)
- fix(plugin-vite): improve child logging by [@erickzhao](https://github.com/erickzhao) in [#4165](electron/forge#4165)
- build: replace eslint with oxlint by [@erickzhao](https://github.com/erickzhao) in [#4169](electron/forge#4169)
- chore: bump version to 8.0.0-alpha.5 by [@erickzhao](https://github.com/erickzhao) in [#4173](electron/forge#4173)
- fix: prune final `require` calls by [@erickzhao](https://github.com/erickzhao) in [#4176](electron/forge#4176)
- chore: bump version to 8.0.0-alpha.6 by [@erickzhao](https://github.com/erickzhao) in [#4177](electron/forge#4177)
- build(deps): remove unused `minimist` dep by [@erickzhao](https://github.com/erickzhao) in [#4171](electron/forge#4171)
- chore: remove additional eslint references by [@erickzhao](https://github.com/erickzhao) in [#4178](electron/forge#4178)
- ci: upgrade `actions/*` to latest by [@erickzhao](https://github.com/erickzhao) in [#4179](electron/forge#4179)
- feat(package): API returns result by [@erickzhao](https://github.com/erickzhao) in [#4172](electron/forge#4172)
- build(deps): update transient dependencies by [@erickzhao](https://github.com/erickzhao) in [#4182](electron/forge#4182)
- feat(template): use `moduleResolution: bundler` by [@erickzhao](https://github.com/erickzhao) in [#4175](electron/forge#4175)
- build: patch out lerna for verdaccio publish by [@erickzhao](https://github.com/erickzhao) in [#4185](electron/forge#4185)
- build: add knip for dead code detection by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4190](electron/forge#4190)
- refactor: replace got with native fetch API by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4189](electron/forge#4189)
- chore: fix `got` deps in lockfile by [@erickzhao](https://github.com/erickzhao) in [#4191](electron/forge#4191)
- chore: resolve dependabot security alerts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4204](electron/forge#4204)
- fix(plugin-webpack): ESM-compatible imports by [@erickzhao](https://github.com/erickzhao) in [#4206](electron/forge#4206)
- chore: forward-ports by [@erickzhao](https://github.com/erickzhao) in [#4205](electron/forge#4205)
- feat(plugin-vite): upgrade vite 8 by [@0xlau](https://github.com/0xlau) in [#4167](electron/forge#4167)
- chore: bump version to 8.0.0-alpha.7 by [@erickzhao](https://github.com/erickzhao) in [#4212](electron/forge#4212)
- fix(plugin-vite): ignore .git directory in dev mode file watcher by [@erickzhao](https://github.com/erickzhao) in [#4213](electron/forge#4213)
- fix(core): convert absolute file path to file URL in `locateElectronExecutable` by [@erikian](https://github.com/erikian) in [#4214](electron/forge#4214)
- fix(init): ensure base tmpl scripts are added to `package.json` by [@erickzhao](https://github.com/erickzhao) in [#4215](electron/forge#4215)
- fix: use `file://` URLs when dynamically importing local paths by [@erikian](https://github.com/erikian) in [#4217](electron/forge#4217)
- fix: tracer exception when tracing forge v8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4220](electron/forge#4220)
- feat(template): replace eslint/prettier with oxc.rs stack by [@erickzhao](https://github.com/erickzhao) in [#4186](electron/forge#4186)
- feat(publisher-github)!: Github -> GitHub by [@erickzhao](https://github.com/erickzhao) in [#4224](electron/forge#4224)
- refactor: replace fast-glob with built-in node:fs glob by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4227](electron/forge#4227)
- fix(template): update `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4221](electron/forge#4221)
- chore(template): remove stale `nodeIntegration` instructions by [@erickzhao](https://github.com/erickzhao) in [#4223](electron/forge#4223)
- refactor(plugin-vite): use codeSplitting:false for preload by [@erickzhao](https://github.com/erickzhao) in [#4222](electron/forge#4222)
- fix(maker-msix): ensure output has version and arch by [@erickzhao](https://github.com/erickzhao) in [#4225](electron/forge#4225)
- fix(maker-msix): use path.basename(dir) for artifact by [@erickzhao](https://github.com/erickzhao) in [#4230](electron/forge#4230)
- feat(plugin-vite): run main/preload dev builds in subprocess workers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4226](electron/forge#4226)
- feat: add notarization support to MakerPKG by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4234](electron/forge#4234)
- chore: bump version to 8.0.0-alpha.8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4235](electron/forge#4235)
- chore: update dependencies to dedupe across child packages by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4236](electron/forge#4236)
- build: delete stray `.eslintcache` file by [@erickzhao](https://github.com/erickzhao) in [#4237](electron/forge#4237)
- fix: bump to [@electron/packager](https://github.com/electron/packager) and [@electron/get](https://github.com/electron/get) to drop 'got' transitive dep by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4239](electron/forge#4239)
- fix(cli): allow pre-release package manager ranges by [@erickzhao](https://github.com/erickzhao) in [#4241](electron/forge#4241)
- build(deps): TypeScript 6 + 7 by [@erickzhao](https://github.com/erickzhao) in [#4238](electron/forge#4238)
- chore: replace chalk and log-symbols with Node.js built-in styleText by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4245](electron/forge#4245)
- refactor: replace find-up dependency with internal implementation by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4248](electron/forge#4248)
- fix(template-base): copy over `.oxfmtrc.json` for instantiation by [@erickzhao](https://github.com/erickzhao) in [#4256](electron/forge#4256)
- chore: bump version to 8.0.0-alpha.9 by [@erickzhao](https://github.com/erickzhao) in [#4263](electron/forge#4263)
- refactor: replace fs-extra with graceful-fs and native fs by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4250](electron/forge#4250)
- fix(core): convert absolute paths to file URLs in importSearch by [@erickzhao](https://github.com/erickzhao) in [#4273](electron/forge#4273)
- build: add `tsconfig.json` to `clean` script by [@erickzhao](https://github.com/erickzhao) in [#4272](electron/forge#4272)
- refactor: inline filenamify utility to remove external dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4249](electron/forge#4249)
- refactor(core-utils): inline parse-author and drop dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4251](electron/forge#4251)
- feat(maker-dmg)!: write DMGs to platform/arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4275](electron/forge#4275)
- build(deps): use electron-internal/extract-zip by [@erickzhao](https://github.com/erickzhao) in [#4285](electron/forge#4285)
- chore: exclude git worktrees from tooling by [@erickzhao](https://github.com/erickzhao) in [#4286](electron/forge#4286)
- fix(cli): detect TTY for interactive mode instead of hardcoding true by [@erickzhao](https://github.com/erickzhao) in [#4259](electron/forge#4259)
- chore: bump version to 8.0.0-alpha.10 by [@erickzhao](https://github.com/erickzhao) in [#4289](electron/forge#4289)
- ci: cancel stale in-progress runs on PR pushes by [@claude](https://github.com/claude)\[bot] in [#4297](electron/forge#4297)
- feat(maker-msix): allow overriding output filename by [@claude](https://github.com/claude)\[bot] in [#4295](electron/forge#4295)
- ci: fail required-ci when a dependency fails or is cancelled by [@claude](https://github.com/claude)\[bot] in [#4300](electron/forge#4300)
- feat(maker): add typed copyright option for deb and rpm makers by [@claude](https://github.com/claude)\[bot] in [#4298](electron/forge#4298)
- fix(create-electron-app): mark vite as experimental in bundler chooser by [@claude](https://github.com/claude)\[bot] in [#4307](electron/forge#4307)
- feat(publisher-github): show byte-level asset upload progress by [@claude](https://github.com/claude)\[bot] in [#4304](electron/forge#4304)
- build(deps): upgrade webpack-dev-server to v5.2.4 on next by [@claude](https://github.com/claude)\[bot] in [#4308](electron/forge#4308)
- fix(core): disable concurrency for package subtasks by [@claude](https://github.com/claude)\[bot] in [#4309](electron/forge#4309)
- ci: port zizmor audit hardening to next (backport of [#4200](electron/forge#4200)) by [@claude](https://github.com/claude)\[bot] in [#4310](electron/forge#4310)
- feat: rename `publish` command to `release` by [@claude](https://github.com/claude)\[bot] in [#4305](electron/forge#4305)
- test: add end-to-end tests for `create-electron-app` across all templates and package managers by [@erikian](https://github.com/erikian) in [#4218](electron/forge#4218)
- test: retry temp folder removal for tests that spawn Electron by [@erikian](https://github.com/erikian) in [#4316](electron/forge#4316)
- fix: avoid duplicate draft releases when publishing multiple dry runs (next) by [@claude](https://github.com/claude)\[bot] in [#4327](electron/forge#4327)
- build: Yarn 4.18 and TypeScript 7 stable by [@SpacingBat3](https://github.com/SpacingBat3) in [#4322](electron/forge#4322)
- fix(create-electron-app): surface dependency install failures during init by [@erickzhao](https://github.com/erickzhao) in [#4348](electron/forge#4348)
- feat(plugin-vite): enable main process hot restart via exported API by [@erickzhao](https://github.com/erickzhao) in [#4346](electron/forge#4346)
- test: apply the supply-chain age gate to npm and pnpm in Verdaccio tests by [@erickzhao](https://github.com/erickzhao) in [#4347](electron/forge#4347)
- docs: import documentation from electron-forge-docs by [@erickzhao](https://github.com/erickzhao) in [#4345](electron/forge#4345)
- fix(typedoc): documentation & API completeness fixes by [@SpacingBat3](https://github.com/SpacingBat3) in [#4321](electron/forge#4321)
- feat(plugin-vite): support custom server host in renderer dev server URL by [@erickzhao](https://github.com/erickzhao) in [#4363](electron/forge#4363)
- build(deps): bump lint-staged to 17.4.1 by [@claude](https://github.com/claude)\[bot] in [#4366](electron/forge#4366)
- feat(template): unify JS/TS templates by [@erickzhao](https://github.com/erickzhao) in [#4229](electron/forge#4229)
- test: remove orphaned e2e specs for deleted typescript template packages by [@erickzhao](https://github.com/erickzhao) in [#4374](electron/forge#4374)
- ci: shard the slow tests and drop the dead node-gyp setup step by [@erickzhao](https://github.com/erickzhao) in [#4380](electron/forge#4380)
- build(deps): bump @electron/\* and electron-installer-\* packages by [@erickzhao](https://github.com/erickzhao) in [#4379](electron/forge#4379)
- fix(core): guard against archs dropped by Electron 44 (win32/ia32, linux/armv7l) by [@erickzhao](https://github.com/erickzhao) in [#4377](electron/forge#4377)
- feat(plugin-vite): graduate from experimental by [@erickzhao](https://github.com/erickzhao) in [#4382](electron/forge#4382)
- feat(maker-pkg)!: write PKGs to arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4383](electron/forge#4383)
- test(core): stub packager arch list in the dropped-arch warning test by [@erickzhao](https://github.com/erickzhao) in [#4384](electron/forge#4384)
- chore: remove Discord links by [@erickzhao](https://github.com/erickzhao) in [#4378](electron/forge#4378)
- chore(deps)!: upgrade listr2 to v11 by [@erickzhao](https://github.com/erickzhao) in [#4375](electron/forge#4375)
- ci: skip the test jobs on docs-only changes by [@claude](https://github.com/claude)\[bot] in [#4387](electron/forge#4387)
- test: add unit coverage for maker-appx and maker-msix make() by [@claude](https://github.com/claude)\[bot] in [#4388](electron/forge#4388)
- feat(bundlers)!: emit main and preload bundles as .cjs by [@erickzhao](https://github.com/erickzhao) in [#4393](electron/forge#4393)
- feat(plugin-webpack): render compiler output in the terminal with an ink multi-logger by [@claude](https://github.com/claude)\[bot] in [#4389](electron/forge#4389)
- build: stop lint-staged failing on oxfmt-ignored files by [@erickzhao](https://github.com/erickzhao) in [#4396](electron/forge#4396)
- fix(core): resolve the Forge config once per command by [@erickzhao](https://github.com/erickzhao) in [#4394](electron/forge#4394)
- ci: prepare `next` for promotion to `main` as Forge 8 by [@erickzhao](https://github.com/erickzhao) in [#4381](electron/forge#4381)
- ci: forward-port GHA improvements from 7.x by [@claude](https://github.com/claude)\[bot] in [#4401](electron/forge#4401)
- fix(template-base): accept partial yarn versions when initializing by [@erickzhao](https://github.com/erickzhao) in [#4403](electron/forge#4403)
- feat!: replace `release --from-dry-run` with `--from-make`, and `make --skip-package` with `--from-package` by [@erickzhao](https://github.com/erickzhao) in [#4395](electron/forge#4395)
- build: bump [@electron/lint-roller](https://github.com/electron/lint-roller) to ^4.0.0 by [@claude](https://github.com/claude)\[bot] in [#4404](electron/forge#4404)
- fix(template-vite): use .mts for Vite configs in the TypeScript variant by [@erickzhao](https://github.com/erickzhao) in [#4406](electron/forge#4406)
- fix(template): typecheck root-level config files by [@erickzhao](https://github.com/erickzhao) in [#4407](electron/forge#4407)
- build(deps): bump vulnerable transitive and direct dependencies by [@erickzhao](https://github.com/erickzhao) in [#4408](electron/forge#4408)
- build(deps): upgrade Electron to 44.4.3 by [@erickzhao](https://github.com/erickzhao) in [#4410](electron/forge#4410)
- docs: add AGENTS.md guidance for AI coding agents by [@erickzhao](https://github.com/erickzhao) in [#4416](electron/forge#4416)
- refactor(maker-appx)!: reimplement as a legacy wrapper over the MSIX maker by [@claude](https://github.com/claude)\[bot] in [#4392](electron/forge#4392)
- chore: bump version to 8.0.0 by [@claude](https://github.com/claude)\[bot] in [#4425](electron/forge#4425)
- chore: bump version to 8.0.1 by [@claude](https://github.com/claude)\[bot] in [#4426](electron/forge#4426)

##### New Contributors

- [@0xlau](https://github.com/0xlau) made their first contribution in [#4167](electron/forge#4167)

**Full Changelog**: <electron/forge@v7.10.2...v8.0.1>
##### [v8.0.0](electron/forge@v7.11.2...40b4adf)
gwennlbh pushed a commit to cigaleapp/cigale that referenced this pull request Oct 13, 2026
##### [v8.0.1](https://github.com/electron/forge/releases/tag/v8.0.1)

##### What's Changed

- build: Yarn 4 CI hardening by [@erickzhao](https://github.com/erickzhao) in [#4028](electron/forge#4028)
- feat(init): add `--electron-version` flag by [@erickzhao](https://github.com/erickzhao) in [#4037](electron/forge#4037)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4036](electron/forge#4036)
- feat: expose artifact version to static publishers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4033](electron/forge#4033)
- fix(publisher-gcs): do not gzip artifacts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4034](electron/forge#4034)
- chore: update `node-abi` to latest by [@erickzhao](https://github.com/erickzhao) in [#4046](electron/forge#4046)
- build(deps): bump brace-expansion from 1.1.11 to 1.1.12 by [@dependabot](https://github.com/dependabot)\[bot] in [#4047](electron/forge#4047)
- build(deps): bump vite from 5.4.20 to 5.4.21 by [@dependabot](https://github.com/dependabot)\[bot] in [#4049](electron/forge#4049)
- build: remove electronegativity plugin by [@erickzhao](https://github.com/erickzhao) in [#4053](electron/forge#4053)
- test(fuses): use local modules instead of `initLink` by [@erickzhao](https://github.com/erickzhao) in [#4057](electron/forge#4057)
- chore: use yarn `workspace:*` cross-references by [@erickzhao](https://github.com/erickzhao) in [#4056](electron/forge#4056)
- chore: add eslint config change to `.git-blame-ignore-revs` by [@erickzhao](https://github.com/erickzhao) in [#4062](electron/forge#4062)
- feat(core)!: remove global module templates by [@erickzhao](https://github.com/erickzhao) in [#4065](electron/forge#4065)
- ci: set up npm trusted publishing by [@erickzhao](https://github.com/erickzhao) in [#4070](electron/forge#4070)
- chore: bump version to 8.0.0-alpha.1 by [@erickzhao](https://github.com/erickzhao) in [#4072](electron/forge#4072)
- build: target "next" branch in gh release create by [@VerteDinde](https://github.com/VerteDinde) in [#4074](electron/forge#4074)
- chore: bump version to 8.0.0-alpha.3 by [@VerteDinde](https://github.com/VerteDinde) in [#4075](electron/forge#4075)
- test: fix slow tests on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4076](electron/forge#4076)
- build: improve version + publish flow by [@erickzhao](https://github.com/erickzhao) in [#4078](electron/forge#4078)
- ci: use `.nvmrc` file for CI by [@erickzhao](https://github.com/erickzhao) in [#4081](electron/forge#4081)
- test: move AssetRelocatorPatch tests to slow tests by [@erickzhao](https://github.com/erickzhao) in [#4080](electron/forge#4080)
- feat(import)!: remove Forge 5 import code by [@erickzhao](https://github.com/erickzhao) in [#4083](electron/forge#4083)
- feat(core)!: remove rechoir + lodash templates from config loader by [@erickzhao](https://github.com/erickzhao) in [#4066](electron/forge#4066)
- ci: optimize Windows builds with faster D:\ drive by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4038](electron/forge#4038)
- test: upgrade to Vitest 4 by [@erickzhao](https://github.com/erickzhao) in [#4079](electron/forge#4079)
- build(deps): replace `ts-node` with `tsx` by [@erickzhao](https://github.com/erickzhao) in [#4085](electron/forge#4085)
- build(deps): update lint-roller to latest major version by [@erickzhao](https://github.com/erickzhao) in [#4086](electron/forge#4086)
- fix(maker-wix): set default arch by [@ShGKme](https://github.com/ShGKme) in [#3859](electron/forge#3859)
- fix(core): prevent duplicate app restarts when typing 'rs' multiple times by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4089](electron/forge#4089)
- ci: run post-merge on `next` branch by [@erickzhao](https://github.com/erickzhao) in [#4090](electron/forge#4090)
- test(slow): test api against `file:` protocol fixtures by [@erickzhao](https://github.com/erickzhao) in [#4087](electron/forge#4087)
- chore: fix formatting by [@erickzhao](https://github.com/erickzhao) in [#4091](electron/forge#4091)
- test(slow): simplify bootstrapping tests by [@erickzhao](https://github.com/erickzhao) in [#4096](electron/forge#4096)
- fix(template): add `private: true` by [@erickzhao](https://github.com/erickzhao) in [#4103](electron/forge#4103)
- test: use verdaccio for e2e init testing by [@erickzhao](https://github.com/erickzhao) in [#4100](electron/forge#4100)
- fix: interactive mode should proxy signals by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4102](electron/forge#4102)
- chore: remove `pre-push` hook by [@erickzhao](https://github.com/erickzhao) in [#4117](electron/forge#4117)
- test: use verdaccio in more `init` cases by [@erickzhao](https://github.com/erickzhao) in [#4119](electron/forge#4119)
- feat(init)!: add `--package-manager` flag by [@erickzhao](https://github.com/erickzhao) in [#4107](electron/forge#4107)
- fix: apply correct version bump commit title by [@erickzhao](https://github.com/erickzhao) in [#4122](electron/forge#4122)
- chore: bump version to 8.0.0-alpha.4 by [@erickzhao](https://github.com/erickzhao) in [#4131](electron/forge#4131)
- fix(template): modernize eslint deps by [@erickzhao](https://github.com/erickzhao) in [#4132](electron/forge#4132)
- feat!: Node 22 + ESM by [@erickzhao](https://github.com/erickzhao) in [#4059](electron/forge#4059)
- chore: add local claude code settings to `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4158](electron/forge#4158)
- build: isolate yarn cache when running verdaccio by [@erickzhao](https://github.com/erickzhao) in [#4161](electron/forge#4161)
- feat(create-electron-app)!: move `init` and `import` out of core by [@erickzhao](https://github.com/erickzhao) in [#4148](electron/forge#4148)
- perf(plugin-vite): run production builds in isolated subprocesses by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4163](electron/forge#4163)
- fix(plugin-vite): improve child logging by [@erickzhao](https://github.com/erickzhao) in [#4165](electron/forge#4165)
- build: replace eslint with oxlint by [@erickzhao](https://github.com/erickzhao) in [#4169](electron/forge#4169)
- chore: bump version to 8.0.0-alpha.5 by [@erickzhao](https://github.com/erickzhao) in [#4173](electron/forge#4173)
- fix: prune final `require` calls by [@erickzhao](https://github.com/erickzhao) in [#4176](electron/forge#4176)
- chore: bump version to 8.0.0-alpha.6 by [@erickzhao](https://github.com/erickzhao) in [#4177](electron/forge#4177)
- build(deps): remove unused `minimist` dep by [@erickzhao](https://github.com/erickzhao) in [#4171](electron/forge#4171)
- chore: remove additional eslint references by [@erickzhao](https://github.com/erickzhao) in [#4178](electron/forge#4178)
- ci: upgrade `actions/*` to latest by [@erickzhao](https://github.com/erickzhao) in [#4179](electron/forge#4179)
- feat(package): API returns result by [@erickzhao](https://github.com/erickzhao) in [#4172](electron/forge#4172)
- build(deps): update transient dependencies by [@erickzhao](https://github.com/erickzhao) in [#4182](electron/forge#4182)
- feat(template): use `moduleResolution: bundler` by [@erickzhao](https://github.com/erickzhao) in [#4175](electron/forge#4175)
- build: patch out lerna for verdaccio publish by [@erickzhao](https://github.com/erickzhao) in [#4185](electron/forge#4185)
- build: add knip for dead code detection by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4190](electron/forge#4190)
- refactor: replace got with native fetch API by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4189](electron/forge#4189)
- chore: fix `got` deps in lockfile by [@erickzhao](https://github.com/erickzhao) in [#4191](electron/forge#4191)
- chore: resolve dependabot security alerts by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4204](electron/forge#4204)
- fix(plugin-webpack): ESM-compatible imports by [@erickzhao](https://github.com/erickzhao) in [#4206](electron/forge#4206)
- chore: forward-ports by [@erickzhao](https://github.com/erickzhao) in [#4205](electron/forge#4205)
- feat(plugin-vite): upgrade vite 8 by [@0xlau](https://github.com/0xlau) in [#4167](electron/forge#4167)
- chore: bump version to 8.0.0-alpha.7 by [@erickzhao](https://github.com/erickzhao) in [#4212](electron/forge#4212)
- fix(plugin-vite): ignore .git directory in dev mode file watcher by [@erickzhao](https://github.com/erickzhao) in [#4213](electron/forge#4213)
- fix(core): convert absolute file path to file URL in `locateElectronExecutable` by [@erikian](https://github.com/erikian) in [#4214](electron/forge#4214)
- fix(init): ensure base tmpl scripts are added to `package.json` by [@erickzhao](https://github.com/erickzhao) in [#4215](electron/forge#4215)
- fix: use `file://` URLs when dynamically importing local paths by [@erikian](https://github.com/erikian) in [#4217](electron/forge#4217)
- fix: tracer exception when tracing forge v8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4220](electron/forge#4220)
- feat(template): replace eslint/prettier with oxc.rs stack by [@erickzhao](https://github.com/erickzhao) in [#4186](electron/forge#4186)
- feat(publisher-github)!: Github -> GitHub by [@erickzhao](https://github.com/erickzhao) in [#4224](electron/forge#4224)
- refactor: replace fast-glob with built-in node:fs glob by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4227](electron/forge#4227)
- fix(template): update `.gitignore` by [@erickzhao](https://github.com/erickzhao) in [#4221](electron/forge#4221)
- chore(template): remove stale `nodeIntegration` instructions by [@erickzhao](https://github.com/erickzhao) in [#4223](electron/forge#4223)
- refactor(plugin-vite): use codeSplitting:false for preload by [@erickzhao](https://github.com/erickzhao) in [#4222](electron/forge#4222)
- fix(maker-msix): ensure output has version and arch by [@erickzhao](https://github.com/erickzhao) in [#4225](electron/forge#4225)
- fix(maker-msix): use path.basename(dir) for artifact by [@erickzhao](https://github.com/erickzhao) in [#4230](electron/forge#4230)
- feat(plugin-vite): run main/preload dev builds in subprocess workers by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4226](electron/forge#4226)
- feat: add notarization support to MakerPKG by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4234](electron/forge#4234)
- chore: bump version to 8.0.0-alpha.8 by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4235](electron/forge#4235)
- chore: update dependencies to dedupe across child packages by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4236](electron/forge#4236)
- build: delete stray `.eslintcache` file by [@erickzhao](https://github.com/erickzhao) in [#4237](electron/forge#4237)
- fix: bump to [@electron/packager](https://github.com/electron/packager) and [@electron/get](https://github.com/electron/get) to drop 'got' transitive dep by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4239](electron/forge#4239)
- fix(cli): allow pre-release package manager ranges by [@erickzhao](https://github.com/erickzhao) in [#4241](electron/forge#4241)
- build(deps): TypeScript 6 + 7 by [@erickzhao](https://github.com/erickzhao) in [#4238](electron/forge#4238)
- chore: replace chalk and log-symbols with Node.js built-in styleText by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4245](electron/forge#4245)
- refactor: replace find-up dependency with internal implementation by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4248](electron/forge#4248)
- fix(template-base): copy over `.oxfmtrc.json` for instantiation by [@erickzhao](https://github.com/erickzhao) in [#4256](electron/forge#4256)
- chore: bump version to 8.0.0-alpha.9 by [@erickzhao](https://github.com/erickzhao) in [#4263](electron/forge#4263)
- refactor: replace fs-extra with graceful-fs and native fs by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4250](electron/forge#4250)
- fix(core): convert absolute paths to file URLs in importSearch by [@erickzhao](https://github.com/erickzhao) in [#4273](electron/forge#4273)
- build: add `tsconfig.json` to `clean` script by [@erickzhao](https://github.com/erickzhao) in [#4272](electron/forge#4272)
- refactor: inline filenamify utility to remove external dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4249](electron/forge#4249)
- refactor(core-utils): inline parse-author and drop dependency by [@MarshallOfSound](https://github.com/MarshallOfSound) in [#4251](electron/forge#4251)
- feat(maker-dmg)!: write DMGs to platform/arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4275](electron/forge#4275)
- build(deps): use electron-internal/extract-zip by [@erickzhao](https://github.com/erickzhao) in [#4285](electron/forge#4285)
- chore: exclude git worktrees from tooling by [@erickzhao](https://github.com/erickzhao) in [#4286](electron/forge#4286)
- fix(cli): detect TTY for interactive mode instead of hardcoding true by [@erickzhao](https://github.com/erickzhao) in [#4259](electron/forge#4259)
- chore: bump version to 8.0.0-alpha.10 by [@erickzhao](https://github.com/erickzhao) in [#4289](electron/forge#4289)
- ci: cancel stale in-progress runs on PR pushes by [@claude](https://github.com/claude)\[bot] in [#4297](electron/forge#4297)
- feat(maker-msix): allow overriding output filename by [@claude](https://github.com/claude)\[bot] in [#4295](electron/forge#4295)
- ci: fail required-ci when a dependency fails or is cancelled by [@claude](https://github.com/claude)\[bot] in [#4300](electron/forge#4300)
- feat(maker): add typed copyright option for deb and rpm makers by [@claude](https://github.com/claude)\[bot] in [#4298](electron/forge#4298)
- fix(create-electron-app): mark vite as experimental in bundler chooser by [@claude](https://github.com/claude)\[bot] in [#4307](electron/forge#4307)
- feat(publisher-github): show byte-level asset upload progress by [@claude](https://github.com/claude)\[bot] in [#4304](electron/forge#4304)
- build(deps): upgrade webpack-dev-server to v5.2.4 on next by [@claude](https://github.com/claude)\[bot] in [#4308](electron/forge#4308)
- fix(core): disable concurrency for package subtasks by [@claude](https://github.com/claude)\[bot] in [#4309](electron/forge#4309)
- ci: port zizmor audit hardening to next (backport of [#4200](electron/forge#4200)) by [@claude](https://github.com/claude)\[bot] in [#4310](electron/forge#4310)
- feat: rename `publish` command to `release` by [@claude](https://github.com/claude)\[bot] in [#4305](electron/forge#4305)
- test: add end-to-end tests for `create-electron-app` across all templates and package managers by [@erikian](https://github.com/erikian) in [#4218](electron/forge#4218)
- test: retry temp folder removal for tests that spawn Electron by [@erikian](https://github.com/erikian) in [#4316](electron/forge#4316)
- fix: avoid duplicate draft releases when publishing multiple dry runs (next) by [@claude](https://github.com/claude)\[bot] in [#4327](electron/forge#4327)
- build: Yarn 4.18 and TypeScript 7 stable by [@SpacingBat3](https://github.com/SpacingBat3) in [#4322](electron/forge#4322)
- fix(create-electron-app): surface dependency install failures during init by [@erickzhao](https://github.com/erickzhao) in [#4348](electron/forge#4348)
- feat(plugin-vite): enable main process hot restart via exported API by [@erickzhao](https://github.com/erickzhao) in [#4346](electron/forge#4346)
- test: apply the supply-chain age gate to npm and pnpm in Verdaccio tests by [@erickzhao](https://github.com/erickzhao) in [#4347](electron/forge#4347)
- docs: import documentation from electron-forge-docs by [@erickzhao](https://github.com/erickzhao) in [#4345](electron/forge#4345)
- fix(typedoc): documentation & API completeness fixes by [@SpacingBat3](https://github.com/SpacingBat3) in [#4321](electron/forge#4321)
- feat(plugin-vite): support custom server host in renderer dev server URL by [@erickzhao](https://github.com/erickzhao) in [#4363](electron/forge#4363)
- build(deps): bump lint-staged to 17.4.1 by [@claude](https://github.com/claude)\[bot] in [#4366](electron/forge#4366)
- feat(template): unify JS/TS templates by [@erickzhao](https://github.com/erickzhao) in [#4229](electron/forge#4229)
- test: remove orphaned e2e specs for deleted typescript template packages by [@erickzhao](https://github.com/erickzhao) in [#4374](electron/forge#4374)
- ci: shard the slow tests and drop the dead node-gyp setup step by [@erickzhao](https://github.com/erickzhao) in [#4380](electron/forge#4380)
- build(deps): bump @electron/\* and electron-installer-\* packages by [@erickzhao](https://github.com/erickzhao) in [#4379](electron/forge#4379)
- fix(core): guard against archs dropped by Electron 44 (win32/ia32, linux/armv7l) by [@erickzhao](https://github.com/erickzhao) in [#4377](electron/forge#4377)
- feat(plugin-vite): graduate from experimental by [@erickzhao](https://github.com/erickzhao) in [#4382](electron/forge#4382)
- feat(maker-pkg)!: write PKGs to arch subdirectories by [@erickzhao](https://github.com/erickzhao) in [#4383](electron/forge#4383)
- test(core): stub packager arch list in the dropped-arch warning test by [@erickzhao](https://github.com/erickzhao) in [#4384](electron/forge#4384)
- chore: remove Discord links by [@erickzhao](https://github.com/erickzhao) in [#4378](electron/forge#4378)
- chore(deps)!: upgrade listr2 to v11 by [@erickzhao](https://github.com/erickzhao) in [#4375](electron/forge#4375)
- ci: skip the test jobs on docs-only changes by [@claude](https://github.com/claude)\[bot] in [#4387](electron/forge#4387)
- test: add unit coverage for maker-appx and maker-msix make() by [@claude](https://github.com/claude)\[bot] in [#4388](electron/forge#4388)
- feat(bundlers)!: emit main and preload bundles as .cjs by [@erickzhao](https://github.com/erickzhao) in [#4393](electron/forge#4393)
- feat(plugin-webpack): render compiler output in the terminal with an ink multi-logger by [@claude](https://github.com/claude)\[bot] in [#4389](electron/forge#4389)
- build: stop lint-staged failing on oxfmt-ignored files by [@erickzhao](https://github.com/erickzhao) in [#4396](electron/forge#4396)
- fix(core): resolve the Forge config once per command by [@erickzhao](https://github.com/erickzhao) in [#4394](electron/forge#4394)
- ci: prepare `next` for promotion to `main` as Forge 8 by [@erickzhao](https://github.com/erickzhao) in [#4381](electron/forge#4381)
- ci: forward-port GHA improvements from 7.x by [@claude](https://github.com/claude)\[bot] in [#4401](electron/forge#4401)
- fix(template-base): accept partial yarn versions when initializing by [@erickzhao](https://github.com/erickzhao) in [#4403](electron/forge#4403)
- feat!: replace `release --from-dry-run` with `--from-make`, and `make --skip-package` with `--from-package` by [@erickzhao](https://github.com/erickzhao) in [#4395](electron/forge#4395)
- build: bump [@electron/lint-roller](https://github.com/electron/lint-roller) to ^4.0.0 by [@claude](https://github.com/claude)\[bot] in [#4404](electron/forge#4404)
- fix(template-vite): use .mts for Vite configs in the TypeScript variant by [@erickzhao](https://github.com/erickzhao) in [#4406](electron/forge#4406)
- fix(template): typecheck root-level config files by [@erickzhao](https://github.com/erickzhao) in [#4407](electron/forge#4407)
- build(deps): bump vulnerable transitive and direct dependencies by [@erickzhao](https://github.com/erickzhao) in [#4408](electron/forge#4408)
- build(deps): upgrade Electron to 44.4.3 by [@erickzhao](https://github.com/erickzhao) in [#4410](electron/forge#4410)
- docs: add AGENTS.md guidance for AI coding agents by [@erickzhao](https://github.com/erickzhao) in [#4416](electron/forge#4416)
- refactor(maker-appx)!: reimplement as a legacy wrapper over the MSIX maker by [@claude](https://github.com/claude)\[bot] in [#4392](electron/forge#4392)
- chore: bump version to 8.0.0 by [@claude](https://github.com/claude)\[bot] in [#4425](electron/forge#4425)
- chore: bump version to 8.0.1 by [@claude](https://github.com/claude)\[bot] in [#4426](electron/forge#4426)

##### New Contributors

- [@0xlau](https://github.com/0xlau) made their first contribution in [#4167](electron/forge#4167)

**Full Changelog**: <electron/forge@v7.10.2...v8.0.1>
##### [v8.0.0](electron/forge@v7.11.2...40b4adf)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants