Browse Source

Heuristic for transport feed Roslyn selection (VSIX build will now fail)

net11
Christoph Wille 2 weeks ago
parent
commit
6d3966e772
  1. 4
      Directory.Packages.props
  2. 36
      ICSharpCode.Decompiler.Tests/Helpers/RoslynToolset.cs
  3. 6
      ILSpy.sln
  4. 3
      NuGet.config

4
Directory.Packages.props

@ -15,8 +15,8 @@ @@ -15,8 +15,8 @@
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.8" />
<PackageVersion Include="McMaster.Extensions.CommandLineUtils" Version="5.0.1" />
<PackageVersion Include="McMaster.Extensions.Hosting.CommandLine" Version="5.0.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.3.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.3.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.6.0-2.26177.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.VisualBasic" Version="5.6.0-2.26177.1" />
<PackageVersion Include="Microsoft.DiaSymReader.Converter.Xml" Version="1.1.0-beta2-22171-02" />
<PackageVersion Include="Microsoft.DiaSymReader" Version="1.4.0" />
<PackageVersion Include="Microsoft.DiaSymReader.Native" Version="17.0.0-beta1.21524.1" />

36
ICSharpCode.Decompiler.Tests/Helpers/RoslynToolset.cs

@ -41,8 +41,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -41,8 +41,8 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
abstract class AbstractToolset
{
readonly SourceCacheContext cache;
readonly SourceRepository repository;
readonly FindPackageByIdResource resource;
readonly SourceRepository repository, transportFeedRepository;
readonly FindPackageByIdResource resource, transportFeedResource;
protected readonly string baseDir;
public AbstractToolset(string baseDir)
@ -50,9 +50,31 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -50,9 +50,31 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
this.cache = new SourceCacheContext();
this.repository = Repository.Factory.GetCoreV3("https://api.nuget.org/v3/index.json");
this.resource = repository.GetResource<FindPackageByIdResource>();
this.transportFeedRepository = Repository.Factory.GetCoreV3("https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json");
this.transportFeedResource = transportFeedRepository.GetResource<FindPackageByIdResource>();
this.baseDir = baseDir;
}
enum PackageVersionKind
{
Rtm,
Preview,
TransportFeed,
}
// RTM versions look like 5.3.0, and preview ones like 4.12.0-3.final. Transport feed ones eg 5.6.0-2.26177.1
static PackageVersionKind ClassifyVersion(NuGetVersion version)
{
if (!version.IsPrerelease)
return PackageVersionKind.Rtm;
var labels = version.ReleaseLabels.ToList();
bool looksLikeTransportFeed = labels.Count >= 3
&& labels.All(static label => int.TryParse(label, out _));
return looksLikeTransportFeed ? PackageVersionKind.TransportFeed : PackageVersionKind.Preview;
}
protected async Task FetchPackage(string packageName, string version, string sourcePath, string outputPath)
{
if (!Directory.Exists(Path.Combine(Roundtrip.RoundtripAssembly.TestDir, "nuget")))
@ -70,9 +92,15 @@ namespace ICSharpCode.Decompiler.Tests.Helpers @@ -70,9 +92,15 @@ namespace ICSharpCode.Decompiler.Tests.Helpers
{
packageStream = new MemoryStream();
await resource.CopyNupkgToStreamAsync(
NuGetVersion parsedVersion = NuGetVersion.Parse(version);
PackageVersionKind versionKind = ClassifyVersion(parsedVersion);
FindPackageByIdResource selectedResource = versionKind == PackageVersionKind.TransportFeed
? transportFeedResource
: resource;
await selectedResource.CopyNupkgToStreamAsync(
packageName,
NuGetVersion.Parse(version),
parsedVersion,
packageStream,
cache,
logger,

6
ILSpy.sln

@ -1,7 +1,6 @@ @@ -1,7 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.32014.148
# Visual Studio Version 18
VisualStudioVersion = 18.4.11620.152 stable
MinimumVisualStudioVersion = 15.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{F45DB999-7E72-4000-B5AD-3A7B485A0896}"
ProjectSection(SolutionItems) = preProject
@ -42,6 +41,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution @@ -42,6 +41,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Directory.Build.props = Directory.Build.props
Directory.Packages.props = Directory.Packages.props
global.json = global.json
NuGet.config = NuGet.config
EndProjectSection
EndProject
Global

3
NuGet.config

@ -4,8 +4,8 @@ @@ -4,8 +4,8 @@
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
<add key="dotnet9-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9-transport/nuget/v3/index.json" />
<add key="dotnet10-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10-transport/nuget/v3/index.json" />
<add key="dotnet11-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet11-transport/nuget/v3/index.json" />
</packageSources>
<packageSourceMapping>
<packageSource key="nuget.org">
@ -19,6 +19,7 @@ @@ -19,6 +19,7 @@
<packageSource key="dotnet-tools">
<package pattern="Microsoft.DiaSymReader.Converter.Xml" />
<package pattern="Microsoft.DiaSymReader.PortablePdb" />
<package pattern="Microsoft.CodeAnalysis.*" />
</packageSource>
</packageSourceMapping>
</configuration>

Loading…
Cancel
Save