Normalize the local app version (#20061)

We need to strip the leading v from the local app version in pollForUpdate to ensure it compares correctly the version from the /version request indicating what the latest available version is. Previously, we only stripped the leading in getAppVersion which is used in some other places but not to decide whether an update is available.
pull/20068/head
James Salter 2021-12-06 23:12:29 +11:00 committed by GitHub
parent 9b780e0e60
commit 60788da1a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 4 deletions

View File

@ -128,7 +128,7 @@ export default class WebPlatform extends VectorBasePlatform {
});
}
getAppVersion(): Promise<string> {
getNormalizedAppVersion(): string {
let ver = process.env.VERSION;
// if version looks like semver with leading v, strip it
@ -137,7 +137,11 @@ export default class WebPlatform extends VectorBasePlatform {
if (semVerRegex.test(process.env.VERSION)) {
ver = process.env.VERSION.substr(1);
}
return Promise.resolve(ver);
return ver;
}
getAppVersion(): Promise<string> {
return Promise.resolve(this.getNormalizedAppVersion());
}
startUpdater() {
@ -151,9 +155,11 @@ export default class WebPlatform extends VectorBasePlatform {
pollForUpdate = () => {
return this.getMostRecentVersion().then((mostRecentVersion) => {
if (process.env.VERSION !== mostRecentVersion) {
const currentVersion = this.getNormalizedAppVersion();
if (currentVersion !== mostRecentVersion) {
if (this.shouldShowUpdate(mostRecentVersion)) {
showUpdateToast(process.env.VERSION, mostRecentVersion);
showUpdateToast(currentVersion, mostRecentVersion);
}
return { status: UpdateCheckStatus.Ready };
} else {