From f26a89c2c3d6cf2abab327bcd4bbd620e20ec848 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 24 Nov 2021 23:20:46 +0100 Subject: [PATCH] #15756 set metadata always and fix hadPreReleaseVersion --- .../node/extensionManagementService.ts | 2 +- .../node/extensionsScanner.ts | 22 +++++++++---------- .../common/webExtensionManagementService.ts | 2 +- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index a68c9b48d8c4..7dd62de58fab 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -288,7 +288,7 @@ class InstallGalleryExtensionTask extends AbstractInstallExtensionTask { installableExtension.metadata.isMachineScoped = this.options.isMachineScoped || existingExtension?.isMachineScoped; installableExtension.metadata.isBuiltin = this.options.isBuiltin || existingExtension?.isBuiltin; installableExtension.metadata.isPreReleaseVersion = this.gallery.properties.isPreReleaseVersion; - installableExtension.metadata.hadPreReleaseVersion = this.gallery.properties.isPreReleaseVersion || existingExtension?.hadPreReleaseVersion; + installableExtension.metadata.hadPreReleaseVersion = this.gallery.hasPreReleaseVersion ? this.gallery.properties.isPreReleaseVersion : existingExtension?.hadPreReleaseVersion; try { const local = await this.installExtension(installableExtension, token); diff --git a/src/vs/platform/extensionManagement/node/extensionsScanner.ts b/src/vs/platform/extensionManagement/node/extensionsScanner.ts index 2453fea7afee..35c38c4820ac 100644 --- a/src/vs/platform/extensionManagement/node/extensionsScanner.ts +++ b/src/vs/platform/extensionManagement/node/extensionsScanner.ts @@ -299,9 +299,7 @@ export class ExtensionsScanner extends Disposable { const changelogUrl = stat.children.find(({ name }) => /^changelog(\.txt|\.md|)$/i.test(name))?.resource; const identifier = { id: getGalleryExtensionId(manifest.publisher, manifest.name) }; const local = { type, identifier, manifest, location: extensionLocation, readmeUrl, changelogUrl, publisherDisplayName: null, publisherId: null, isMachineScoped: false, isBuiltin: type === ExtensionType.System }; - if (metadata) { - this.setMetadata(local, metadata); - } + this.setMetadata(local, metadata); return local; } } catch (e) { @@ -329,15 +327,15 @@ export class ExtensionsScanner extends Disposable { } } - private setMetadata(local: IRelaxedLocalExtension, metadata: Metadata): void { - local.publisherDisplayName = metadata.publisherDisplayName || null; - local.publisherId = metadata.publisherId || null; - local.identifier.uuid = metadata.id; - local.isMachineScoped = !!metadata.isMachineScoped; - local.isPreReleaseVersion = !!metadata.isPreReleaseVersion; - local.hadPreReleaseVersion = !!metadata.hadPreReleaseVersion; - local.isBuiltin = local.type === ExtensionType.System || !!metadata.isBuiltin; - local.installedTimestamp = metadata.installedTimestamp; + private setMetadata(local: IRelaxedLocalExtension, metadata: Metadata | null): void { + local.publisherDisplayName = metadata?.publisherDisplayName || null; + local.publisherId = metadata?.publisherId || null; + local.identifier.uuid = metadata?.id; + local.isMachineScoped = !!metadata?.isMachineScoped; + local.isPreReleaseVersion = !!metadata?.isPreReleaseVersion; + local.hadPreReleaseVersion = !!metadata?.hadPreReleaseVersion; + local.isBuiltin = local.type === ExtensionType.System || !!metadata?.isBuiltin; + local.installedTimestamp = metadata?.installedTimestamp; } private async removeUninstalledExtensions(): Promise { diff --git a/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts b/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts index ea8fd42829d2..10e3633def83 100644 --- a/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts +++ b/src/vs/workbench/services/extensionManagement/common/webExtensionManagementService.ts @@ -152,7 +152,7 @@ class InstallExtensionTask extends AbstractExtensionTask implem metadata.publisherId = this.extension.publisherId; metadata.installedTimestamp = Date.now(); metadata.isPreReleaseVersion = this.extension.properties.isPreReleaseVersion; - metadata.hadPreReleaseVersion = this.extension.properties.isPreReleaseVersion || metadata.hadPreReleaseVersion; + metadata.hadPreReleaseVersion = this.extension.hasPreReleaseVersion ? this.extension.properties.isPreReleaseVersion : metadata.hadPreReleaseVersion; } const scannedExtension = URI.isUri(this.extension) ? await this.webExtensionsScannerService.addExtension(this.extension, metadata)