Skip to content

Commit 0f9865d

Browse files
authored
fix: Allow non-semver versions in getVersionInWeirdWindowsForm (#7174)
Fixes #7173
1 parent 69347d1 commit 0f9865d

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

.changeset/chilled-queens-think.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"app-builder-lib": patch
3+
---
4+
5+
Allow non-semver version formats on Windows

packages/app-builder-lib/src/appInfo.ts

+15-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { isEmptyOrSpaces, log } from "builder-util"
2-
import { prerelease, SemVer } from "semver"
2+
import { prerelease } from "semver"
33
import { PlatformSpecificBuildOptions } from "./options/PlatformSpecificBuildOptions"
44
import { Packager } from "./packager"
55
import { expandMacro } from "./util/macroExpander"
@@ -76,13 +76,25 @@ export class AppInfo {
7676
}
7777

7878
getVersionInWeirdWindowsForm(isSetBuildNumber = true): string {
79-
const parsedVersion = new SemVer(this.version)
79+
const [major, maybe_minor, maybe_patch] = this.version.split(".").map(versionPart => parseInt(versionPart))
80+
// The major component must be present. Here it can be either NaN or undefined, which
81+
// both returns true from isNaN.
82+
if (isNaN(major)) {
83+
throw new Error(`Invalid major number in: ${this.version}`)
84+
}
85+
// Allow missing version parts. Minor and patch can be left out and default to zero
86+
const minor = maybe_minor ?? 0
87+
const patch = maybe_patch ?? 0
88+
// ... but reject non-integer version parts. '1.a' is not going to fly
89+
if (isNaN(minor) || isNaN(patch)) {
90+
throw new Error(`Invalid minor or patch number in: ${this.version}`)
91+
}
8092
// https://github.com/electron-userland/electron-builder/issues/2635#issuecomment-371792272
8193
let buildNumber = isSetBuildNumber ? this.buildNumber : null
8294
if (buildNumber == null || !/^\d+$/.test(buildNumber)) {
8395
buildNumber = "0"
8496
}
85-
return `${parsedVersion.major}.${parsedVersion.minor}.${parsedVersion.patch}.${buildNumber}`
97+
return `${major}.${minor}.${patch}.${buildNumber}`
8698
}
8799

88100
private get notNullDevMetadata() {

0 commit comments

Comments
 (0)