Skip to content

ci: port zizmor audit hardening to next (backport of #4200) - #4310

Merged
erickzhao merged 1 commit into
nextfrom
port-zizmor-hardening
Jul 2, 2026
Merged

erickzhao merged 1 commit into
nextfrom
port-zizmor-hardening

Conversation

@claude

@claude claude Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Requested by Samuel Attard · Slack thread

This is a backport of the GitHub Actions security hardening done on main in #4200 ("ci: fix zizmor audit findings"). The next branch never received that hardening because its workflows were reworked for Forge 8 (ESM, oxc, restructured jobs), so a literal cherry-pick would not apply. The equivalent hardening has been applied to next's current workflow files instead.

Before: Workflows on next ran with GitHub's default, broadly-scoped GITHUB_TOKEN permissions, and every actions/checkout step persisted its credentials into the local git config (persist-credentials defaulted to true). The release step also interpolated a step output directly into a shell command.

After: Each workflow declares a top-level least-privilege permissions: {} and only grants scoped write access on the specific jobs that need it. Every checkout runs with persist-credentials: false, and the release version is passed through an environment variable rather than interpolated into the shell command.

How:

  • ci.yml, release.yml, gh-pages.yml: added a top-level permissions: {} block; added scoped permissions: (e.g. contents: read) on jobs that previously relied on default permissions. The publish job's existing trusted-publishing permissions (contents: write, id-token: write) are preserved untouched.
  • Added persist-credentials: false to the with: of every actions/checkout step across ci.yml (3 steps), release.yml (2 steps), and gh-pages.yml (1 step).
  • release.yml: passed the release version via a STEPS_VERSION_OUTPUTS_VERSION env var into the gh release create command instead of inline ${{ ... }} interpolation, mirroring ci: fix zizmor audit findings #4200.
  • add-to-project.yml: marked the pull_request_target trigger with # zizmor: ignore[dangerous-triggers] (matching ci: fix zizmor audit findings #4200 and next's existing labeler.yml).
  • dependabot.yml: added a cooldown stanza with default-days: 7, matching ci: fix zizmor audit findings #4200.

Action version pins and existing job structure were left unchanged; no action versions were downgraded. Workflows that already declared appropriate permissions and had no checkout step (labeler.yml, semantic.yml, stale.yml) were not touched, and add-to-project.yml already had permissions: {}.

  • I have read the contribution documentation for this project.
  • I agree to follow the code of conduct that this project follows, as appropriate.
  • The changes are appropriately documented (if applicable).
  • The changes have sufficient test coverage (if applicable).
  • The testsuite passes successfully on my local machine (if applicable).

Summarize your changes: Backport of the #4200 zizmor security hardening to next's reworked workflows: least-privilege permissions, persist-credentials: false on all checkouts, injection-safe release step, and a dependabot cooldown.


Generated by Claude Code

@github-actions github-actions Bot added the next label Jul 1, 2026
@MarshallOfSound
MarshallOfSound marked this pull request as ready for review July 1, 2026 18:35
@MarshallOfSound
MarshallOfSound requested a review from a team as a code owner July 1, 2026 18:35
Applies the GitHub Actions security hardening from #4200 (main) to the
next branch's reworked workflows:

- Add top-level least-privilege `permissions: {}` to ci.yml, release.yml
  and gh-pages.yml, with scoped `permissions:` on jobs that need write
  access (the release publish job's existing contents/id-token trusted
  publishing permissions are preserved).
- Add `persist-credentials: false` to every actions/checkout step.
- Avoid expression injection in the release step by passing the version
  through an environment variable.
- Mark the add-to-project pull_request_target trigger with a zizmor
  dangerous-triggers ignore.
- Add a dependabot cooldown (default-days: 7).

Co-authored-by: Samuel Attard <sattard@anthropic.com>
Co-authored-by: David Sanders <dsanders11@ucsbalum.com>
@claude
claude Bot force-pushed the port-zizmor-hardening branch from 468d1f9 to 68d2139 Compare July 2, 2026 17:22
@erickzhao
erickzhao merged commit aa3af19 into next Jul 2, 2026
13 checks passed
@erickzhao
erickzhao deleted the port-zizmor-hardening branch July 2, 2026 17:39
@claude claude Bot mentioned this pull request Sep 18, 2026
5 tasks done
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.

3 participants