Hyphens ('1.0.1-0') not a valid version string when building on @electron-forge/maker-squirrel
Pre-flight checklist
- [X] I have read the contribution documentation for this project.
- [X] I agree to follow the code of conduct that this project uses.
- [X] I have searched the issue tracker for a bug that matches the one I want to file, without success.
Electron Forge version
7.3.0
Electron version
v29.1.2
Operating system
Windows 11 23h2
Last known working Electron Forge version
n/a
Expected behavior
Build would be successful using hyphenated version numbers created by npm version prerelease
Actual behavior
An unhandled rejection has occurred inside Forge:
Error: Failed with exit code: 1
Output:
Attempting to build package from 'my_app.nuspec'.
'1.0.1-0' is not a valid version string.
Parameter name: version
at ChildProcess.<anonymous> (D:\dev\versionNumber\my-app\node_modules\electron-winstaller\lib\spawn-promise.js:48:24)
at ChildProcess.emit (node:events:514:28)
at ChildProcess.emit (node:domain:488:12)
at maybeClose (node:internal/child_process:1105:16)
at ChildProcess._handle.onexit (node:internal/child_process:305:5)
Steps to reproduce
- Open a folder
npm init electron-app@latest my-appcd my-appnpm version prerelease- :white_check_mark: Observe the version is now 1.0.0-0
npm run make- ❌ Observe you get an unhandled exception
- This only seems to affect
@electron-forge/maker-squirrel. I can build just fine on macOS using@electron-forge/maker-zip
An unhandled rejection has occurred inside Forge:
Error: Failed with exit code: 1
Output:
Attempting to build package from 'my_app.nuspec'.
'1.0.1-0' is not a valid version string.
Parameter name: version
at ChildProcess.<anonymous> (D:\dev\versionNumber\my-app\node_modules\electron-winstaller\lib\spawn-promise.js:48:24)
at ChildProcess.emit (node:events:514:28)
at ChildProcess.emit (node:domain:488:12)
at maybeClose (node:internal/child_process:1105:16)
at ChildProcess._handle.onexit (node:internal/child_process:305:5)
Additional information
No response
@gabriel-cloud Did you ever find a solution to this? We are experiencing the same issue with our app.
Sadly, no. Luckily the app we're using is for internal use only. So can do most of the testing on macOS, and when it's ready for use, we just promote the alpha as a patch (npm run patch) and build from that.
Hi, this is an upstream limitation for Windows apps, as they expect v.x.y.z format.
We generally just take the 3-digit Windows apps and append a fourth 0 digit to it.
https://github.com/electron/forge/blob/64d54e895b26691561734f8d26af34de3ffc7fd4/packages/maker/base/src/Maker.ts#L176-L180
However, I see the Squirrel.Windows maker doesn't use that util so maybe this is an enhancement to make.