feat(windows): add optional MSIX installer alongside Squirrel/WiX - #1886
aequivalent2 wants to merge 1 commit into
Conversation
Exclude MakerWix for arm64 builds: @electron-forge/maker-wix@8.0.0-alpha.10 hardcodes an arch whitelist (x64/ia64/x86) and throws Invalid arch for arm64 before electron-wix-msi is ever reached, so the maker must be skipped entirely rather than just passing arm64 through. Add @electron-forge/maker-msix as an additional, optional installer (new BUILD_CONFIG.windowsMsix flag), alongside the existing Squirrel/WiX makers - not replacing them yet, per the phased plan in nextcloud#1519. Unlike MakerWix, targetArch is threaded through by Forge itself and converted via toMsixArch(), which supports arm64 out of the box. Assisted-by: Claude:claude-sonnet-5 Signed-off-by: Leonhard Ruckert <leonhard.ruckert@outlook.com>
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Pull request overview
Adds an optional MSIX installer option for Windows builds in Electron Forge, and avoids MakerWix failures on arm64 by skipping the WiX maker for that architecture.
Changes:
- Add
@electron-forge/maker-msixand newwindowsMsixbuild flag to enable MSIX output. - Add MSIX packaging scripts for Windows arm64/x64.
- Skip
MakerWixentirely for arm64 to avoid Forge failing early on an upstream arch whitelist.
Reviewed changes
Copilot reviewed 4 out of 14 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| package.json | Adds MSIX maker dependency and MSIX build scripts for Windows. |
| forge.config.js | Adds MakerMSIX configuration and excludes MakerWix on arm64. |
| build/build.config.json | Introduces windowsMsix flag (currently enabled). |
| build/BuildConfig.types.ts | Documents/defines the new windowsMsix config option. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| // Reverse-DNS style, no spaces - unlike applicationName (the default fallback), | ||
| // which contains a space and is not a valid MSIX package identity. | ||
| packageIdentity: BUILD_CONFIG.winAppId, | ||
| publisher: BUILD_CONFIG.companyName, |
| "backgroundColor": "#00679e", | ||
| "windowsExe": true, | ||
| "windowsMsi": true, | ||
| "windowsMsix": true, |
| BUILD_CONFIG.windowsMsix && new MakerMSIX({ | ||
| // Custom tile/logo assets, see: node_modules/electron-windows-msix/static/assets | ||
| // for the required filenames and sizes. Falls back to generic default assets if omitted. | ||
| packageAssets: path.join(__dirname, 'img/icons/msix'), |
| // test build, but the resulting package will not install/sideload cleanly on another | ||
| // machine without that dev cert being trusted. Real distribution needs a proper | ||
| // certificate whose Subject matches `manifestVariables.publisher` above. | ||
| windowsSignOptions: hasWindowsSign && signWithParamsToWindowsSignOptions(process.env.WINDOWS_SIGN_PARAMS), |
| * experimental upstream). Intended to eventually replace windowsExe/windowsMsi, | ||
| * see https://github.com/nextcloud/talk-desktop/issues/1519 | ||
| * Default: true |
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |
Exclude MakerWix for arm64 builds: @electron-forge/maker-wix@8.0.0-alpha.10 hardcodes an arch whitelist (x64/ia64/x86) and throws Invalid arch for arm64 before electron-wix-msi is ever reached, so the maker must be skipped entirely rather than just passing arm64 through.
Add @electron-forge/maker-msix as an additional, optional installer (new BUILD_CONFIG.windowsMsix flag), alongside the existing Squirrel/WiX makers - not replacing them yet, per the phased plan in #1519. Unlike MakerWix, targetArch is threaded through by Forge itself and converted via toMsixArch(), which supports arm64 out of the box.
You need to switch the Icon Assets, because that is your branding
Also there is a need of signing these MSIX Packages
Assisted-by: Claude:claude-sonnet-5