Skip to content

Commit 5cabf53

Browse files
authored
Convert .rc* versions to proper semver, then compare (#17600)
1 parent c6312e1 commit 5cabf53

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

middleware/contextualizers/enterprise-release-notes.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const semver = require('semver')
12
const renderContent = require('../../lib/render-content')
23
const patterns = require('../../lib/patterns')
34
const enterpriseReleases = require('../../lib/enterprise-server-releases').supported
@@ -19,8 +20,20 @@ function sortPatchKeys (release, version) {
1920
})
2021
return keys
2122
.sort((a, b) => {
22-
if (a.version > b.version) return -1
23-
if (a.version < b.version) return 1
23+
let aTemp = a.version
24+
let bTemp = b.version
25+
26+
// There's an RC version here, so doing regular semver
27+
// comparisons won't work. So, we'll convert the incompatible version
28+
// strings to real semver strings, then compare.
29+
const [aBase, aRc] = a.version.split('.rc')
30+
if (aRc) aTemp = `${aBase}-rc.${aRc}`
31+
32+
const [bBase, bRc] = b.version.split('.rc')
33+
if (bRc) bTemp = `${bBase}-rc.${bRc}`
34+
35+
if (semver.gt(aTemp, bTemp)) return -1
36+
if (semver.lt(aTemp, bTemp)) return 1
2437
return 0
2538
})
2639
}

0 commit comments

Comments
 (0)