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
{