From a7180af78008b0fa11e2d74c97b9aa0f9b2313d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:34:36 +0000 Subject: [PATCH 1/2] Initial plan From e950982d02e3ae09e01b6fa779a4240c8679ed54 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 11:37:47 +0000 Subject: [PATCH 2/2] Remove repository, downloadcount, icon metadata and related code Co-authored-by: JusterZhu <11714536+JusterZhu@users.noreply.github.com> --- .../Metadata/AvailableExtensionTests.cs | 62 ------------------- .../Metadata/ExtensionDescriptorTests.cs | 40 ------------ .../Metadata/AvailableExtension.cs | 6 -- .../Metadata/ExtensionDescriptor.cs | 12 ---- .../ExtensionPackageGenerator.cs | 10 --- src/c#/GeneralUpdate.Extension/README.md | 4 -- 6 files changed, 134 deletions(-) diff --git a/src/c#/ExtensionTest/Metadata/AvailableExtensionTests.cs b/src/c#/ExtensionTest/Metadata/AvailableExtensionTests.cs index b4fcaa01..edb0f9fe 100644 --- a/src/c#/ExtensionTest/Metadata/AvailableExtensionTests.cs +++ b/src/c#/ExtensionTest/Metadata/AvailableExtensionTests.cs @@ -36,19 +36,6 @@ public void Constructor_ShouldSetIsPreReleaseToFalse() Assert.False(extension.IsPreRelease); } - /// - /// Tests that a new AvailableExtension has DownloadCount initialized to null. - /// - [Fact] - public void Constructor_ShouldSetDownloadCountToNull() - { - // Act - var extension = new AvailableExtension(); - - // Assert - Assert.Null(extension.DownloadCount); - } - /// /// Tests that Descriptor property can be set and retrieved. /// @@ -85,54 +72,5 @@ public void IsPreRelease_CanBeSetToTrue() // Assert Assert.True(extension.IsPreRelease); } - - /// - /// Tests that DownloadCount property can be set and retrieved. - /// - [Fact] - public void DownloadCount_CanBeSetAndRetrieved() - { - // Arrange - var extension = new AvailableExtension(); - var expectedCount = 10000L; - - // Act - extension.DownloadCount = expectedCount; - - // Assert - Assert.Equal(expectedCount, extension.DownloadCount); - } - - /// - /// Tests that DownloadCount can be set to zero. - /// - [Fact] - public void DownloadCount_CanBeSetToZero() - { - // Arrange - var extension = new AvailableExtension(); - - // Act - extension.DownloadCount = 0; - - // Assert - Assert.Equal(0, extension.DownloadCount); - } - - /// - /// Tests that DownloadCount can be set back to null after having a value. - /// - [Fact] - public void DownloadCount_CanBeSetBackToNull() - { - // Arrange - var extension = new AvailableExtension { DownloadCount = 1000 }; - - // Act - extension.DownloadCount = null; - - // Assert - Assert.Null(extension.DownloadCount); - } } } diff --git a/src/c#/ExtensionTest/Metadata/ExtensionDescriptorTests.cs b/src/c#/ExtensionTest/Metadata/ExtensionDescriptorTests.cs index 5f90d96d..cb4b5572 100644 --- a/src/c#/ExtensionTest/Metadata/ExtensionDescriptorTests.cs +++ b/src/c#/ExtensionTest/Metadata/ExtensionDescriptorTests.cs @@ -195,40 +195,6 @@ public void Categories_CanBeSetAndRetrieved() Assert.Same(expectedCategories, descriptor.Categories); } - /// - /// Tests that Icon property can be set and retrieved. - /// - [Fact] - public void Icon_CanBeSetAndRetrieved() - { - // Arrange - var descriptor = new ExtensionDescriptor(); - var expectedIcon = "icon.png"; - - // Act - descriptor.Icon = expectedIcon; - - // Assert - Assert.Equal(expectedIcon, descriptor.Icon); - } - - /// - /// Tests that Repository property can be set and retrieved. - /// - [Fact] - public void Repository_CanBeSetAndRetrieved() - { - // Arrange - var descriptor = new ExtensionDescriptor(); - var expectedRepository = "https://github.com/user/repo"; - - // Act - descriptor.Repository = expectedRepository; - - // Assert - Assert.Equal(expectedRepository, descriptor.Repository); - } - /// /// Tests that SupportedPlatforms property can be set and retrieved. /// @@ -456,8 +422,6 @@ public void NullableProperties_CanBeSetToNull() Publisher = "Publisher", License = "MIT", Categories = new List(), - Icon = "icon.png", - Repository = "repo", DownloadUrl = "url", PackageHash = "hash", ReleaseDate = DateTime.Now, @@ -470,8 +434,6 @@ public void NullableProperties_CanBeSetToNull() descriptor.Publisher = null; descriptor.License = null; descriptor.Categories = null; - descriptor.Icon = null; - descriptor.Repository = null; descriptor.DownloadUrl = null; descriptor.PackageHash = null; descriptor.ReleaseDate = null; @@ -483,8 +445,6 @@ public void NullableProperties_CanBeSetToNull() Assert.Null(descriptor.Publisher); Assert.Null(descriptor.License); Assert.Null(descriptor.Categories); - Assert.Null(descriptor.Icon); - Assert.Null(descriptor.Repository); Assert.Null(descriptor.DownloadUrl); Assert.Null(descriptor.PackageHash); Assert.Null(descriptor.ReleaseDate); diff --git a/src/c#/GeneralUpdate.Extension/Metadata/AvailableExtension.cs b/src/c#/GeneralUpdate.Extension/Metadata/AvailableExtension.cs index f6b512f0..73f6dedb 100644 --- a/src/c#/GeneralUpdate.Extension/Metadata/AvailableExtension.cs +++ b/src/c#/GeneralUpdate.Extension/Metadata/AvailableExtension.cs @@ -15,11 +15,5 @@ public class AvailableExtension /// Pre-release versions are typically beta or alpha builds. /// public bool IsPreRelease { get; set; } - - /// - /// Gets or sets the total number of times this extension has been downloaded. - /// Null if download statistics are not available. - /// - public long? DownloadCount { get; set; } } } diff --git a/src/c#/GeneralUpdate.Extension/Metadata/ExtensionDescriptor.cs b/src/c#/GeneralUpdate.Extension/Metadata/ExtensionDescriptor.cs index d262e784..6c9c9ff4 100644 --- a/src/c#/GeneralUpdate.Extension/Metadata/ExtensionDescriptor.cs +++ b/src/c#/GeneralUpdate.Extension/Metadata/ExtensionDescriptor.cs @@ -59,18 +59,6 @@ public class ExtensionDescriptor [JsonPropertyName("categories")] public List? Categories { get; set; } - /// - /// Gets or sets the icon path for the extension (relative to package root). - /// - [JsonPropertyName("icon")] - public string? Icon { get; set; } - - /// - /// Gets or sets the repository URL for the extension source code. - /// - [JsonPropertyName("repository")] - public string? Repository { get; set; } - /// /// Gets or sets the platforms supported by this extension. /// Uses flags to allow multiple platform targets. diff --git a/src/c#/GeneralUpdate.Extension/PackageGeneration/ExtensionPackageGenerator.cs b/src/c#/GeneralUpdate.Extension/PackageGeneration/ExtensionPackageGenerator.cs index c40cd6cd..b9367427 100644 --- a/src/c#/GeneralUpdate.Extension/PackageGeneration/ExtensionPackageGenerator.cs +++ b/src/c#/GeneralUpdate.Extension/PackageGeneration/ExtensionPackageGenerator.cs @@ -162,16 +162,6 @@ private Task GenerateManifestAsync(string targetDirectory, Metadata.ExtensionDes manifest["categories"] = descriptor.Categories; } - if (!string.IsNullOrEmpty(descriptor.Icon)) - { - manifest["icon"] = descriptor.Icon; - } - - if (!string.IsNullOrEmpty(descriptor.Repository)) - { - manifest["repository"] = descriptor.Repository; - } - // Add engine/compatibility information if (descriptor.Compatibility != null) { diff --git a/src/c#/GeneralUpdate.Extension/README.md b/src/c#/GeneralUpdate.Extension/README.md index e0396fc6..611bb0fe 100644 --- a/src/c#/GeneralUpdate.Extension/README.md +++ b/src/c#/GeneralUpdate.Extension/README.md @@ -327,8 +327,6 @@ Extensions use a descriptor structure aligned with VS Code's package.json format "maxHostVersion": "2.0.0" }, "categories": ["Programming Languages", "Debuggers"], - "icon": "icon.png", - "repository": "https://github.com/user/repo", "supportedPlatforms": 7 } ``` @@ -362,8 +360,6 @@ var descriptor = new Metadata.ExtensionDescriptor Publisher = "publisher-name", License = "MIT", Categories = new List { "Programming Languages" }, - Icon = "icon.png", - Repository = "https://github.com/user/repo", SupportedPlatforms = Metadata.TargetPlatform.All, Compatibility = new Metadata.VersionCompatibility {