Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8083e31
feat(squirrel-windows): inline installer logic; remove electron-winst…
mmaietta Jun 3, 2026
5a62ecc
address PR
mmaietta Jun 4, 2026
6c914d3
combine wix and wincodesign toolsets for squirrel
mmaietta Jun 4, 2026
8a18420
migrate to updated squirrel windows vendor toolset bundle
mmaietta Jun 4, 2026
9d47541
update with published electron-builder-binaries toolset
mmaietta Jun 4, 2026
a602bf6
Merge commit 'd2e65c806d25483e1d07d32139b96c7f2ca8b070' into feat/mig…
mmaietta Jun 4, 2026
fc7980d
temp toolset test from electron-builder-binaries
mmaietta Jun 4, 2026
b73ca20
temporarily add logic to insert build job artifact via env var into t…
mmaietta Jun 4, 2026
5b0f939
Merge commit '8096732d7270ab8f20694a9a2f3821c95c0ea153' into feat/mig…
mmaietta Jun 4, 2026
2d14588
try again, use rcedit toolset bundle to merge into the vendor directory
mmaietta Jun 5, 2026
5f8916e
Merge origin/master into feat/migrate-electron-winstaller
mmaietta Jun 20, 2026
4e3d038
feat(squirrel-windows)!: remove customSquirrelVendorDir; offline nuge…
mmaietta Jun 20, 2026
0788d33
docs(migration): document squirrelWindows.customSquirrelVendorDir rem…
mmaietta Jun 20, 2026
b7c1f7f
chore(squirrel-windows): add cleanup TODO for the temporary nuget dow…
mmaietta Jun 20, 2026
cb9a70b
feat(squirrel-windows): override the Squirrel toolset via toolsets.sq…
mmaietta Jun 20, 2026
f75c69f
update lockfile
mmaietta Jun 21, 2026
2d8e89e
refactor(squirrel-windows): drop deprecated noMsi; throw on missing r…
mmaietta Jun 21, 2026
9aa26fd
update lockfile
mmaietta Jun 21, 2026
df1d2dc
docs(changeset): point customSquirrelVendorDir migration at toolsets.…
mmaietta Jun 21, 2026
d6fab95
fix(squirrel-windows): provision rcedit.exe on all platforms, not jus…
mmaietta Jun 21, 2026
c69746b
fix(squirrel-windows): provision WiX toolset + template.wxs for MSI b…
mmaietta Jun 21, 2026
f4658e7
fix(squirrel-windows): host-arch rcedit (arm64 mac needs x64); throw …
mmaietta Jun 21, 2026
921b53f
fix(squirrel-windows): author Squirrel MSI template against the WiX v…
mmaietta Jun 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/remove-electron-winstaller-dep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
"electron-builder-squirrel-windows": major
---

feat(squirrel-windows)!: inline installer logic; remove electron-winstaller dependency and its vendored binaries

BREAKING: the `squirrelWindows.customSquirrelVendorDir` option has been removed. Supply a custom Squirrel vendor bundle with the `toolsets.squirrel` config (a `ToolsetCustom` object) instead — it goes through the same nuget/rcedit provisioning as the default bundle.
20 changes: 16 additions & 4 deletions packages/app-builder-lib/scheme.json
Original file line number Diff line number Diff line change
Expand Up @@ -7866,10 +7866,6 @@
"string"
]
},
"customSquirrelVendorDir": {
"description": "The custom squirrel vendor dir. If not specified will use the Squirrel.Windows that is shipped with electron-installer(https://github.com/electron/windows-installer/tree/main/vendor).\nAfter https://github.com/electron-userland/electron-builder-binaries/pull/56 merged, will add `electron-builder-binaries` to get the latest version of squirrel.",
"type": "string"
},
"iconUrl": {
"description": "A URL to an ICO file to use as the application icon (displayed in Control Panel > Programs and Features). Defaults to the Electron icon.\n\nPlease note — [local icon file url is not accepted](https://github.com/atom/grunt-electron-installer/issues/73), must be https/http.\n\nIf you don't plan to build windows installer, you can omit it.\nIf your project repository is public on GitHub, it will be `https://github.com/${u}/${p}/blob/master/build/icon.ico?raw=true` by default.",
"type": [
Expand Down Expand Up @@ -8094,6 +8090,22 @@
"default": "latest",
"description": "Version of the 7-Zip binary bundle used internally to extract `.7z` and `.tar.xz` archives.\n\nSet to a {@link ToolsetCustom} object to supply your own 7za binary.\nThe `url` must point to a directory (or a `.tar.gz`/`.zip` archive of one) that contains\n`bin/7za` (macOS/Linux) or `bin/7za.exe` (Windows).\n\n**Bootstrap constraint:** the custom bundle itself must be a `.tar.gz` or `.zip` archive\n(or a bare `file://` directory). `.7z` and `.tar.xz` archives cannot be used here because\nextracting them requires 7za — a circular dependency."
},
"squirrel": {
"anyOf": [
{
"$ref": "#/definitions/ToolsetCustom"
},
{
"enum": [
"1.1.0",
"latest"
],
"type": "string"
}
],
"default": "latest",
"description": "Version of the `squirrel.windows` bundle used to build Squirrel.Windows installers.\n\nThe bundle ships the Squirrel vendor toolset under `electron-winstaller/vendor/`:\n- **`Squirrel.exe`** / **`Squirrel-Mono.exe`** — releasify the app into `Setup.exe` (and an optional MSI).\n- **`SyncReleases.exe`** — downloads prior releases to produce delta packages.\n- **`nuget.exe`**, **`7z`** — pack the app into a `.nupkg` and compress release assets.\n\n`rcedit.exe` is provisioned from the {@link winCodeSign} toolset at runtime, and a usable\n`nuget.exe` is ensured at runtime (the published bundle ships a shim that cannot be relocated).\n\nAvailable versions:\n| Version | Notes |\n|---------|-------|\n| `\"1.1.0\"` | Squirrel.Windows 2.0.1 (patched) |\n\nSet to a {@link ToolsetCustom} object to supply your own bundle — it must contain the\n`electron-winstaller/vendor/` subtree. Only used when building the `squirrelWindows` target.\n\nReleases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/squirrel.windows/CHANGELOG.md"
},
"winCodeSign": {
"anyOf": [
{
Expand Down
25 changes: 25 additions & 0 deletions packages/app-builder-lib/src/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -697,6 +697,31 @@ export interface ToolsetConfig {
* @default "latest"
*/
readonly icons?: "1.2.1" | ToolsetCustom | "latest"

/**
* Version of the `squirrel.windows` bundle used to build Squirrel.Windows installers.
*
* The bundle ships the Squirrel vendor toolset under `electron-winstaller/vendor/`:
* - **`Squirrel.exe`** / **`Squirrel-Mono.exe`** — releasify the app into `Setup.exe` (and an optional MSI).
* - **`SyncReleases.exe`** — downloads prior releases to produce delta packages.
* - **`nuget.exe`**, **`7z`** — pack the app into a `.nupkg` and compress release assets.
*
* `rcedit.exe` is provisioned from the {@link winCodeSign} toolset at runtime, and a usable
* `nuget.exe` is ensured at runtime (the published bundle ships a shim that cannot be relocated).
*
* Available versions:
* | Version | Notes |
* |---------|-------|
* | `"1.1.0"` | Squirrel.Windows 2.0.1 (patched) |
*
* Set to a {@link ToolsetCustom} object to supply your own bundle — it must contain the
* `electron-winstaller/vendor/` subtree. Only used when building the `squirrelWindows` target.
*
* Releases: https://github.com/electron-userland/electron-builder-binaries/blob/master/packages/squirrel.windows/CHANGELOG.md
*
* @default "latest"
*/
readonly squirrel?: "1.1.0" | ToolsetCustom | "latest"
}

/**
Expand Down
4 changes: 3 additions & 1 deletion packages/app-builder-lib/src/indexInternal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ export { nsisEscapeString, NsisScriptGenerator } from "./targets/win/nsis/nsisSc
export { ProgIdMaker } from "./targets/win/nsis/progId.js"
export { checkMakensisOutput, verifyInstallerSize } from "./targets/win/nsis/nsisValidation.js"
export { getLinuxToolsMacToolset, getLinuxToolsPath } from "./toolsets/linuxToolsMac.js"
export { getWindowsKitsBundle } from "./toolsets/winCodeSign.js"
export { getCustomToolsetPath } from "./toolsets/custom.js"
export { resolveToolsetVersion } from "./toolsets/version.js"
export { getRceditBundle, getWindowsKitsBundle } from "./toolsets/winCodeSign.js"
export { CacheState } from "./util/cacheState.js"
export { computeDefaultAppDirectory, createProjectMetadataLazy, doMergeConfigs, getConfig, validateConfiguration } from "./util/config/config.js"
export { loadEnv, orNullIfFileNotExist } from "./util/config/load.js"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,6 @@ export interface SquirrelWindowsOptions extends TargetSpecificOptions {
*/
readonly useAppIdAsId?: boolean

/**
* The custom squirrel vendor dir. If not specified will use the Squirrel.Windows that is shipped with electron-installer(https://github.com/electron/windows-installer/tree/main/vendor).
* After https://github.com/electron-userland/electron-builder-binaries/pull/56 merged, will add `electron-builder-binaries` to get the latest version of squirrel.
*/
readonly customSquirrelVendorDir?: string

/**
* https://github.com/electron-userland/electron-builder/issues/1743
* @private
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 4 additions & 7 deletions packages/electron-builder-squirrel-windows/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
"homepage": "https://github.com/electron-userland/electron-builder",
"files": [
"dist",
"template.nuspectemplate"
"template.nuspectemplate",
"template.wxs",
"install-spinner.gif"
],
"engines": {
"node": ">=22.12.0"
Expand All @@ -37,12 +39,7 @@
},
"dependencies": {
"app-builder-lib": "workspace:*",
"builder-util": "workspace:*",
"electron-winstaller": "5.4.0"
},
"devDependencies": {
"@types/archiver": "5.3.1",
"@types/fs-extra": "9.0.13"
"builder-util": "workspace:*"
},
"types": "./dist/SquirrelWindowsTarget.d.ts"
}
Loading
Loading