From 94187707d38327ffeb2f7df5a50dc7c8a8914149 Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sat, 25 Jan 2025 14:15:35 +0100 Subject: [PATCH] fix(update): correct comparison [skip ci] --- patches/version-1-update.patch | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/patches/version-1-update.patch b/patches/version-1-update.patch index aa36b04..9d53864 100644 --- a/patches/version-1-update.patch +++ b/patches/version-1-update.patch @@ -67,7 +67,7 @@ index 48638aa..8f738e7 100644 + } } diff --git a/src/vs/platform/update/electron-main/updateService.darwin.ts b/src/vs/platform/update/electron-main/updateService.darwin.ts -index d3f27d3..4622c99 100644 +index d3f27d3..8454ff3 100644 --- a/src/vs/platform/update/electron-main/updateService.darwin.ts +++ b/src/vs/platform/update/electron-main/updateService.darwin.ts @@ -15,3 +15,3 @@ import { ILogService } from '../../log/common/log.js'; @@ -91,7 +91,7 @@ index d3f27d3..4622c99 100644 - const url = createUpdateURL(assetID, quality, this.productService); + const url = createUpdateURL(this.productService, quality, process.platform, process.arch); try { -@@ -94,4 +90,23 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau +@@ -94,4 +90,29 @@ export class DarwinUpdateService extends AbstractUpdateService implements IRelau protected doCheckForUpdates(context: any): void { + if (!this.url) { + return; @@ -105,8 +105,14 @@ index d3f27d3..4622c99 100644 + .then(update => { + if (!update || !update.url || !update.version || !update.productVersion) { + this.setState(State.Idle(UpdateType.Setup)); ++ ++ return Promise.resolve(null); + } -+ else if(semver.compareBuild(update.productVersion.replace(/(\d+\.\d+\.\d+)(?:\.(\d+))(?:\-\w+)?/, '$1+$2'), `${this.productService.version}+${this.productService.release}`) >= 0) { ++ ++ const fetchedVersion = update.productVersion.replace(/(\d+\.\d+\.\d+)(?:\.(\d+))(\-\w+)?/, '$1$3+$2'); ++ const currentVersion = `${this.productService.version}+${this.productService.release}`; ++ ++ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) { + this.setState(State.Idle(UpdateType.Setup)); + } + else { @@ -126,7 +132,7 @@ index 6e076c7..81556b6 100644 + return createUpdateURL(this.productService, quality, process.platform, process.arch); } diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts -index 61109e5..2581f3b 100644 +index 61109e5..06981b3 100644 --- a/src/vs/platform/update/electron-main/updateService.win32.ts +++ b/src/vs/platform/update/electron-main/updateService.win32.ts @@ -11,3 +11,2 @@ import { CancellationToken } from '../../../base/common/cancellation.js'; @@ -187,25 +193,28 @@ index 61109e5..2581f3b 100644 - return createUpdateURL(platform, quality, this.productService); + return createUpdateURL(this.productService, quality, process.platform, process.arch, target); } -@@ -126,4 +141,7 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun +@@ -126,4 +141,10 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun if (!update || !update.url || !update.version || !update.productVersion) { - this.telemetryService.publicLog2<{ explicit: boolean }, UpdateNotAvailableClassification>('update:notAvailable', { explicit: !!context }); + this.setState(State.Idle(updateType)); + return Promise.resolve(null); + } ++ ++ const fetchedVersion = update.productVersion.replace(/(\d+\.\d+\.\d+)(?:\.(\d+))(\-\w+)?/, '$1$3+$2'); ++ const currentVersion = `${this.productService.version}+${this.productService.release}`; -+ if(semver.compareBuild(update.productVersion.replace(/(\d+\.\d+\.\d+)(?:\.(\d+))(?:\-\w+)?/, '$1+$2'), `${this.productService.version}+${this.productService.release}`) >= 0) { ++ if(semver.compareBuild(currentVersion, fetchedVersion) >= 0) { this.setState(State.Idle(updateType)); -@@ -158,3 +176,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun +@@ -158,3 +179,3 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun - const fastUpdatesEnabled = this.configurationService.getValue('update.enableWindowsBackgroundUpdates'); + const fastUpdatesEnabled = getUpdateType() == UpdateType.Setup && this.configurationService.getValue('update.enableWindowsBackgroundUpdates'); if (fastUpdatesEnabled) { -@@ -170,3 +188,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun +@@ -170,3 +191,2 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun .then(undefined, err => { - this.telemetryService.publicLog2<{ messageHash: string }, UpdateErrorClassification>('update:error', { messageHash: String(hash(String(err))) }); this.logService.error(err); -@@ -254,6 +271,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun +@@ -254,6 +274,14 @@ export class Win32UpdateService extends AbstractUpdateService implements IRelaun } else { - spawn(this.availableUpdate.packagePath, ['/silent', '/log', '/mergetasks=runcode,!desktopicon,!quicklaunchicon'], { - detached: true,