Skip to content

Commit

Permalink
Add support for matching -ea version formats
Browse files Browse the repository at this point in the history
This will support specifying EA versions in the following format examples. E.g.:
14-ea
14.0.0-ea
14.0.0-ea.28
Notes:
 - For the last form above, which is needed for requesting a specific ea build, we must only add '.x' if there are less than 3 dots in the version, hence the change from != 3 to < 3
- The prior parsing logic for e.g. 14.0.0-ea "spelling" will ignore precedence between build numbers in the form of e.g. 14.0.0-ea+b27 vs. 14.0.0-ea+b27 (so it will end up with the earliest rather than the latest ea build in the cdn), and does not allow specifying an ea build number (it will match 14.0.0-ea+b29 to a cdn 14.0.0-ea+b2). The new logic [copupled with the CDN populating EA builds in the form 14.0.0-ea.28) will resolve that.
  • Loading branch information
Gil Tene authored and GitHub committed Dec 22, 2019
1 parent d8ada52 commit f806141
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions src/installer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -266,12 +266,21 @@ function normalizeVersion(version: string): string {
}
}

// Add trailing .x if it is missing
if (version.split('.').length != 3) {
if (version.endsWith('-ea')) {
// convert e.g. 14-ea to 14.0.0-ea
if (version.indexOf('.') == -1) {
version = version.slice(0, version.length - 3) + '.0.0-ea';
}
// match anything in -ea.X (semver won't do .x matching on pre-release versions)
if (version[0] >= '0' && version[0] <= '9') {
version = '>=' + version;
}
} else if (version.split('.').length < 3) {
// For non-ea versions, add trailing .x if it is missing
if (version[version.length - 1] != 'x') {
version = version + '.x';
}
}

return version;
}

0 comments on commit f806141

Please sign in to comment.