From f66ee4dd838cba78d8c619b24457e1cd1c3cef45 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Fri, 12 Aug 2022 09:20:37 -0700 Subject: [PATCH 1/2] Update branding to 8.0.0-alpha1 --- .github/fabricbot.json | 2 +- eng/Versions.props | 6 +- src/Framework/test/TestData.cs | 198 +++++++++--------- .../Shared/TemplatePackageInstaller.cs | 2 + 4 files changed, 105 insertions(+), 103 deletions(-) diff --git a/.github/fabricbot.json b/.github/fabricbot.json index a5d3f7b365b3..841c49e363f2 100644 --- a/.github/fabricbot.json +++ b/.github/fabricbot.json @@ -2562,7 +2562,7 @@ { "name": "addMilestone", "parameters": { - "milestoneName": "7.0-rc1" + "milestoneName": "8.0-alpha1" } } ], diff --git a/eng/Versions.props b/eng/Versions.props index 05c62bc6c36c..75feea111e76 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -6,7 +6,7 @@ --> - 7 + 8 0 0 1 @@ -16,8 +16,8 @@ --> false release - rc - Release Candidate $(PreReleaseVersionIteration) + alpha + Alpha $(PreReleaseVersionIteration) true false $(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion) diff --git a/src/Framework/test/TestData.cs b/src/Framework/test/TestData.cs index 12423f63ceba..073a50d0de02 100644 --- a/src/Framework/test/TestData.cs +++ b/src/Framework/test/TestData.cs @@ -155,92 +155,91 @@ static TestData() ListedTargetingPackAssemblies = new SortedDictionary { - { "Microsoft.AspNetCore", "7.0.0.0" }, - { "Microsoft.AspNetCore.Antiforgery", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Cookies", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.OAuth", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authorization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authorization.Policy", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Authorization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Forms", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Server", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Web", "7.0.0.0" }, - { "Microsoft.AspNetCore.Connections.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.CookiePolicy", "7.0.0.0" }, - { "Microsoft.AspNetCore.Cors", "7.0.0.0" }, - { "Microsoft.AspNetCore.Cryptography.Internal", "7.0.0.0" }, - { "Microsoft.AspNetCore.Cryptography.KeyDerivation", "7.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection", "7.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection.Extensions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics", "7.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics.HealthChecks", "7.0.0.0" }, - { "Microsoft.AspNetCore.HostFiltering", "7.0.0.0" }, - { "Microsoft.AspNetCore.Hosting", "7.0.0.0" }, - { "Microsoft.AspNetCore.Hosting.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Hosting.Server.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Html.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Connections", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Connections.Common", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Extensions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Features", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Results", "7.0.0.0" }, - { "Microsoft.AspNetCore.HttpLogging", "7.0.0.0" }, - { "Microsoft.AspNetCore.HttpOverrides", "7.0.0.0" }, - { "Microsoft.AspNetCore.HttpsPolicy", "7.0.0.0" }, - { "Microsoft.AspNetCore.Identity", "7.0.0.0" }, - { "Microsoft.AspNetCore.Localization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Localization.Routing", "7.0.0.0" }, - { "Microsoft.AspNetCore.Metadata", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.ApiExplorer", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Cors", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.DataAnnotations", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Formatters.Json", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Formatters.Xml", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Localization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Razor", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.RazorPages", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.TagHelpers", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.ViewFeatures", "7.0.0.0" }, - { "Microsoft.AspNetCore.OutputCaching", "7.0.0.0" }, - { "Microsoft.AspNetCore.RateLimiting", "7.0.0.0" }, - { "Microsoft.AspNetCore.Razor", "7.0.0.0" }, - { "Microsoft.AspNetCore.Razor.Runtime", "7.0.0.0" }, - { "Microsoft.AspNetCore.RequestDecompression", "7.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCaching", "7.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCaching.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCompression", "7.0.0.0" }, - { "Microsoft.AspNetCore.Rewrite", "7.0.0.0" }, - { "Microsoft.AspNetCore.Routing", "7.0.0.0" }, - { "Microsoft.AspNetCore.Routing.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.HttpSys", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.IIS", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.IISIntegration", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets", "7.0.0.0" }, - { "Microsoft.AspNetCore.Session", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Common", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Protocols.Json", "7.0.0.0" }, - { "Microsoft.AspNetCore.StaticFiles", "7.0.0.0" }, - { "Microsoft.AspNetCore.WebSockets", "7.0.0.0" }, - { "Microsoft.AspNetCore.WebUtilities", "7.0.0.0" }, + { "Microsoft.AspNetCore.Antiforgery", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authentication.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authentication.Cookies", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authentication.Core", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authentication.OAuth", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authentication", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authorization.Policy", "8.0.0.0" }, + { "Microsoft.AspNetCore.Authorization", "8.0.0.0" }, + { "Microsoft.AspNetCore.Components.Authorization", "8.0.0.0" }, + { "Microsoft.AspNetCore.Components.Forms", "8.0.0.0" }, + { "Microsoft.AspNetCore.Components.Server", "8.0.0.0" }, + { "Microsoft.AspNetCore.Components.Web", "8.0.0.0" }, + { "Microsoft.AspNetCore.Components", "8.0.0.0" }, + { "Microsoft.AspNetCore.Connections.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.CookiePolicy", "8.0.0.0" }, + { "Microsoft.AspNetCore.Cors", "8.0.0.0" }, + { "Microsoft.AspNetCore.Cryptography.Internal", "8.0.0.0" }, + { "Microsoft.AspNetCore.Cryptography.KeyDerivation", "8.0.0.0" }, + { "Microsoft.AspNetCore.DataProtection.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.DataProtection.Extensions", "8.0.0.0" }, + { "Microsoft.AspNetCore.DataProtection", "8.0.0.0" }, + { "Microsoft.AspNetCore.Diagnostics.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Diagnostics.HealthChecks", "8.0.0.0" }, + { "Microsoft.AspNetCore.Diagnostics", "8.0.0.0" }, + { "Microsoft.AspNetCore.HostFiltering", "8.0.0.0" }, + { "Microsoft.AspNetCore.Hosting.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Hosting.Server.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Hosting", "8.0.0.0" }, + { "Microsoft.AspNetCore.Html.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http.Connections.Common", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http.Connections", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http.Extensions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http.Features", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http.Results", "8.0.0.0" }, + { "Microsoft.AspNetCore.Http", "8.0.0.0" }, + { "Microsoft.AspNetCore.HttpLogging", "8.0.0.0" }, + { "Microsoft.AspNetCore.HttpOverrides", "8.0.0.0" }, + { "Microsoft.AspNetCore.HttpsPolicy", "8.0.0.0" }, + { "Microsoft.AspNetCore.Identity", "8.0.0.0" }, + { "Microsoft.AspNetCore.Localization.Routing", "8.0.0.0" }, + { "Microsoft.AspNetCore.Localization", "8.0.0.0" }, + { "Microsoft.AspNetCore.Metadata", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.ApiExplorer", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Core", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Cors", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.DataAnnotations", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Formatters.Json", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Formatters.Xml", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Localization", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.Razor", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.RazorPages", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.TagHelpers", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc.ViewFeatures", "8.0.0.0" }, + { "Microsoft.AspNetCore.Mvc", "8.0.0.0" }, + { "Microsoft.AspNetCore.OutputCaching", "8.0.0.0" }, + { "Microsoft.AspNetCore.RateLimiting", "8.0.0.0" }, + { "Microsoft.AspNetCore.Razor.Runtime", "8.0.0.0" }, + { "Microsoft.AspNetCore.Razor", "8.0.0.0" }, + { "Microsoft.AspNetCore.RequestDecompression", "8.0.0.0" }, + { "Microsoft.AspNetCore.ResponseCaching.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.ResponseCaching", "8.0.0.0" }, + { "Microsoft.AspNetCore.ResponseCompression", "8.0.0.0" }, + { "Microsoft.AspNetCore.Rewrite", "8.0.0.0" }, + { "Microsoft.AspNetCore.Routing.Abstractions", "8.0.0.0" }, + { "Microsoft.AspNetCore.Routing", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.HttpSys", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.IIS", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.IISIntegration", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.Kestrel.Core", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets", "8.0.0.0" }, + { "Microsoft.AspNetCore.Server.Kestrel", "8.0.0.0" }, + { "Microsoft.AspNetCore.Session", "8.0.0.0" }, + { "Microsoft.AspNetCore.SignalR.Common", "8.0.0.0" }, + { "Microsoft.AspNetCore.SignalR.Core", "8.0.0.0" }, + { "Microsoft.AspNetCore.SignalR.Protocols.Json", "8.0.0.0" }, + { "Microsoft.AspNetCore.SignalR", "8.0.0.0" }, + { "Microsoft.AspNetCore.StaticFiles", "8.0.0.0" }, + { "Microsoft.AspNetCore.WebSockets", "8.0.0.0" }, + { "Microsoft.AspNetCore.WebUtilities", "8.0.0.0" }, + { "Microsoft.AspNetCore", "8.0.0.0" }, { "Microsoft.Extensions.Caching.Abstractions", "7.0.0.0" }, { "Microsoft.Extensions.Caching.Memory", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration", "7.0.0.0" }, { "Microsoft.Extensions.Configuration.Abstractions", "7.0.0.0" }, { "Microsoft.Extensions.Configuration.Binder", "7.0.0.0" }, { "Microsoft.Extensions.Configuration.CommandLine", "7.0.0.0" }, @@ -248,27 +247,27 @@ static TestData() { "Microsoft.Extensions.Configuration.FileExtensions", "7.0.0.0" }, { "Microsoft.Extensions.Configuration.Ini", "7.0.0.0" }, { "Microsoft.Extensions.Configuration.Json", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.KeyPerFile", "7.0.0.0" }, + { "Microsoft.Extensions.Configuration.KeyPerFile", "8.0.0.0" }, { "Microsoft.Extensions.Configuration.UserSecrets", "7.0.0.0" }, { "Microsoft.Extensions.Configuration.Xml", "7.0.0.0" }, - { "Microsoft.Extensions.DependencyInjection", "7.0.0.0" }, + { "Microsoft.Extensions.Configuration", "7.0.0.0" }, { "Microsoft.Extensions.DependencyInjection.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Diagnostics.HealthChecks", "7.0.0.0" }, - { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions", "7.0.0.0" }, + { "Microsoft.Extensions.DependencyInjection", "7.0.0.0" }, + { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions", "8.0.0.0" }, + { "Microsoft.Extensions.Diagnostics.HealthChecks", "8.0.0.0" }, + { "Microsoft.Extensions.Features", "8.0.0.0" }, { "Microsoft.Extensions.FileProviders.Abstractions", "7.0.0.0" }, { "Microsoft.Extensions.FileProviders.Composite", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Embedded", "7.0.0.0" }, + { "Microsoft.Extensions.FileProviders.Embedded", "8.0.0.0" }, { "Microsoft.Extensions.FileProviders.Physical", "7.0.0.0" }, { "Microsoft.Extensions.FileSystemGlobbing", "7.0.0.0" }, - { "Microsoft.Extensions.Features", "7.0.0.0" }, - { "Microsoft.Extensions.Hosting", "7.0.0.0" }, { "Microsoft.Extensions.Hosting.Abstractions", "7.0.0.0" }, + { "Microsoft.Extensions.Hosting", "7.0.0.0" }, { "Microsoft.Extensions.Http", "7.0.0.0" }, - { "Microsoft.Extensions.Identity.Core", "7.0.0.0" }, - { "Microsoft.Extensions.Identity.Stores", "7.0.0.0" }, - { "Microsoft.Extensions.Localization", "7.0.0.0" }, - { "Microsoft.Extensions.Localization.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Logging", "7.0.0.0" }, + { "Microsoft.Extensions.Identity.Core", "8.0.0.0" }, + { "Microsoft.Extensions.Identity.Stores", "8.0.0.0" }, + { "Microsoft.Extensions.Localization.Abstractions", "8.0.0.0" }, + { "Microsoft.Extensions.Localization", "8.0.0.0" }, { "Microsoft.Extensions.Logging.Abstractions", "7.0.0.0" }, { "Microsoft.Extensions.Logging.Configuration", "7.0.0.0" }, { "Microsoft.Extensions.Logging.Console", "7.0.0.0" }, @@ -276,12 +275,13 @@ static TestData() { "Microsoft.Extensions.Logging.EventLog", "7.0.0.0" }, { "Microsoft.Extensions.Logging.EventSource", "7.0.0.0" }, { "Microsoft.Extensions.Logging.TraceSource", "7.0.0.0" }, - { "Microsoft.Extensions.ObjectPool", "7.0.0.0" }, - { "Microsoft.Extensions.Options", "7.0.0.0" }, + { "Microsoft.Extensions.Logging", "7.0.0.0" }, + { "Microsoft.Extensions.ObjectPool", "8.0.0.0" }, { "Microsoft.Extensions.Options.ConfigurationExtensions", "7.0.0.0" }, { "Microsoft.Extensions.Options.DataAnnotations", "7.0.0.0" }, + { "Microsoft.Extensions.Options", "7.0.0.0" }, { "Microsoft.Extensions.Primitives", "7.0.0.0" }, - { "Microsoft.Extensions.WebEncoders", "7.0.0.0" }, + { "Microsoft.Extensions.WebEncoders", "8.0.0.0" }, { "Microsoft.JSInterop", "7.0.0.0" }, { "Microsoft.Net.Http.Headers", "7.0.0.0" }, { "System.Diagnostics.EventLog", "7.0.0.0" }, diff --git a/src/ProjectTemplates/Shared/TemplatePackageInstaller.cs b/src/ProjectTemplates/Shared/TemplatePackageInstaller.cs index 8ae3fdd8c799..d81d360c5b49 100644 --- a/src/ProjectTemplates/Shared/TemplatePackageInstaller.cs +++ b/src/ProjectTemplates/Shared/TemplatePackageInstaller.cs @@ -34,6 +34,7 @@ internal static class TemplatePackageInstaller "Microsoft.DotNet.Web.ProjectTemplates.5.0", "Microsoft.DotNet.Web.ProjectTemplates.6.0", "Microsoft.DotNet.Web.ProjectTemplates.7.0", + "Microsoft.DotNet.Web.ProjectTemplates.8.0", "Microsoft.DotNet.Web.Spa.ProjectTemplates.2.1", "Microsoft.DotNet.Web.Spa.ProjectTemplates.2.2", "Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0", @@ -41,6 +42,7 @@ internal static class TemplatePackageInstaller "Microsoft.DotNet.Web.Spa.ProjectTemplates.5.0", "Microsoft.DotNet.Web.Spa.ProjectTemplates.6.0", "Microsoft.DotNet.Web.Spa.ProjectTemplates.7.0", + "Microsoft.DotNet.Web.Spa.ProjectTemplates.8.0", "Microsoft.DotNet.Web.Spa.ProjectTemplates", "Microsoft.AspNetCore.Blazor.Templates", }; From e292522c10fb488807af6cc7e524fe1074965ca0 Mon Sep 17 00:00:00 2001 From: Doug Bunting <6431421+dougbu@users.noreply.github.com> Date: Mon, 15 Aug 2022 16:59:16 -0700 Subject: [PATCH 2/2] !fixup! wip --- src/Framework/test/SharedFxTests.cs | 17 +- src/Framework/test/TargetingPackTests.cs | 23 +- src/Framework/test/TestData.cs | 270 +++++++++++------------ 3 files changed, 167 insertions(+), 143 deletions(-) diff --git a/src/Framework/test/SharedFxTests.cs b/src/Framework/test/SharedFxTests.cs index d3f1e4b6e548..ac242e006772 100644 --- a/src/Framework/test/SharedFxTests.cs +++ b/src/Framework/test/SharedFxTests.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.IO.Compression; +using System.Linq; using System.Reflection.Metadata; using System.Reflection.PortableExecutable; using System.Xml.Linq; @@ -159,32 +160,38 @@ public void SharedFrameworkContainsValidDepsJson() [Fact] public void SharedFrameworkAssembliesHaveExpectedAssemblyVersions() { - // Only test managed assemblies from dotnet/aspnetcore. + // Assemblies from this repo and dotnet/runtime don't always have identical assembly versions. var repoAssemblies = TestData.GetSharedFrameworkBinariesFromRepo() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0]; var version = Version.Parse(versionStringWithoutPrereleaseTag); + var aspnetcoreVersionString = TestData.GetSharedFxVersion().Split('-', 2)[0]; + var aspnetcoreVersion = Version.Parse(aspnetcoreVersionString); + var dlls = Directory.GetFiles(_sharedFxRoot, "*.dll", SearchOption.AllDirectories); Assert.NotEmpty(dlls); Assert.All(dlls, path => { - // Unlike dotnet/aspnetcore, dotnet/runtime varies the assembly version while in servicing. - if (!repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path))) + var name = Path.GetFileNameWithoutExtension(path); + if (string.Equals(name, "aspnetcorev2_inprocess", StringComparison.Ordinal)) { + // Skip our native assembly. return; } + var expectedVersion = repoAssemblies.Contains(name) ? aspnetcoreVersion : version; + using var fileStream = File.OpenRead(path); using var peReader = new PEReader(fileStream, PEStreamOptions.Default); var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); var assemblyDefinition = reader.GetAssemblyDefinition(); // Assembly versions should all match Major.Minor.0.0 - Assert.Equal(version.Major, assemblyDefinition.Version.Major); - Assert.Equal(version.Minor, assemblyDefinition.Version.Minor); + Assert.Equal(expectedVersion.Major, assemblyDefinition.Version.Major); + Assert.Equal(expectedVersion.Minor, assemblyDefinition.Version.Minor); Assert.Equal(0, assemblyDefinition.Version.Build); Assert.Equal(0, assemblyDefinition.Version.Revision); }); diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 3fccd1febce3..76be10479af3 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -38,7 +38,7 @@ public void TargetingPackContainsListedAssemblies() var actualAssemblies = Directory.GetFiles(Path.Combine(_targetingPackRoot, "ref", _targetingPackTfm), "*.dll") .Select(Path.GetFileNameWithoutExtension) .ToHashSet(); - var listedTargetingPackAssemblies = TestData.ListedTargetingPackAssemblies.Keys.ToHashSet(); + var listedTargetingPackAssemblies = TestData.ListedTargetingPackAssemblies.ToHashSet(); _output.WriteLine("==== actual assemblies ===="); _output.WriteLine(string.Join('\n', actualAssemblies.OrderBy(i => i))); @@ -60,11 +60,25 @@ public void TargetingPackContainsListedAssemblies() [Fact] public void RefAssembliesHaveExpectedAssemblyVersions() { + // Assemblies from this repo and dotnet/runtime don't always have identical assembly versions. + var repoAssemblies = TestData.GetAspNetCoreTargetingPackDependencies() + .Split(';', StringSplitOptions.RemoveEmptyEntries) + .ToHashSet(); + + var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0]; + var version = Version.Parse(versionStringWithoutPrereleaseTag); + var aspnetcoreVersionString = TestData.GetSharedFxVersion().Split('-', 2)[0]; + var aspnetcoreVersion = Version.Parse(aspnetcoreVersionString); + IEnumerable dlls = Directory.GetFiles(Path.Combine(_targetingPackRoot, "ref", _targetingPackTfm), "*.dll", SearchOption.AllDirectories); Assert.NotEmpty(dlls); Assert.All(dlls, path => { + var expectedVersion = repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path)) ? + aspnetcoreVersion : + version; + var fileName = Path.GetFileNameWithoutExtension(path); var assemblyName = AssemblyName.GetAssemblyName(path); using var fileStream = File.OpenRead(path); @@ -72,8 +86,11 @@ public void RefAssembliesHaveExpectedAssemblyVersions() var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); var assemblyDefinition = reader.GetAssemblyDefinition(); - TestData.ListedTargetingPackAssemblies.TryGetValue(fileName, out var expectedVersion); - Assert.Equal(expectedVersion, assemblyDefinition.Version.ToString()); + // Assembly versions should all match Major.Minor.0.0 + Assert.Equal(expectedVersion.Major, assemblyDefinition.Version.Major); + Assert.Equal(expectedVersion.Minor, assemblyDefinition.Version.Minor); + Assert.Equal(0, assemblyDefinition.Version.Build); + Assert.Equal(0, assemblyDefinition.Version.Revision); }); } diff --git a/src/Framework/test/TestData.cs b/src/Framework/test/TestData.cs index 073a50d0de02..2763c05a5048 100644 --- a/src/Framework/test/TestData.cs +++ b/src/Framework/test/TestData.cs @@ -9,7 +9,7 @@ public static class TestData { public static List ListedSharedFxAssemblies; - public static SortedDictionary ListedTargetingPackAssemblies; + public static List ListedTargetingPackAssemblies; static TestData() { @@ -153,141 +153,141 @@ static TestData() "System.Threading.RateLimiting", }; - ListedTargetingPackAssemblies = new SortedDictionary + ListedTargetingPackAssemblies = new List { - { "Microsoft.AspNetCore.Antiforgery", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Cookies", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Core", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.OAuth", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authentication", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authorization.Policy", "8.0.0.0" }, - { "Microsoft.AspNetCore.Authorization", "8.0.0.0" }, - { "Microsoft.AspNetCore.Components.Authorization", "8.0.0.0" }, - { "Microsoft.AspNetCore.Components.Forms", "8.0.0.0" }, - { "Microsoft.AspNetCore.Components.Server", "8.0.0.0" }, - { "Microsoft.AspNetCore.Components.Web", "8.0.0.0" }, - { "Microsoft.AspNetCore.Components", "8.0.0.0" }, - { "Microsoft.AspNetCore.Connections.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.CookiePolicy", "8.0.0.0" }, - { "Microsoft.AspNetCore.Cors", "8.0.0.0" }, - { "Microsoft.AspNetCore.Cryptography.Internal", "8.0.0.0" }, - { "Microsoft.AspNetCore.Cryptography.KeyDerivation", "8.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection.Extensions", "8.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection", "8.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics.HealthChecks", "8.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics", "8.0.0.0" }, - { "Microsoft.AspNetCore.HostFiltering", "8.0.0.0" }, - { "Microsoft.AspNetCore.Hosting.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Hosting.Server.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Hosting", "8.0.0.0" }, - { "Microsoft.AspNetCore.Html.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http.Connections.Common", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http.Connections", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http.Extensions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http.Features", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http.Results", "8.0.0.0" }, - { "Microsoft.AspNetCore.Http", "8.0.0.0" }, - { "Microsoft.AspNetCore.HttpLogging", "8.0.0.0" }, - { "Microsoft.AspNetCore.HttpOverrides", "8.0.0.0" }, - { "Microsoft.AspNetCore.HttpsPolicy", "8.0.0.0" }, - { "Microsoft.AspNetCore.Identity", "8.0.0.0" }, - { "Microsoft.AspNetCore.Localization.Routing", "8.0.0.0" }, - { "Microsoft.AspNetCore.Localization", "8.0.0.0" }, - { "Microsoft.AspNetCore.Metadata", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.ApiExplorer", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Core", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Cors", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.DataAnnotations", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Formatters.Json", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Formatters.Xml", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Localization", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Razor", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.RazorPages", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.TagHelpers", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.ViewFeatures", "8.0.0.0" }, - { "Microsoft.AspNetCore.Mvc", "8.0.0.0" }, - { "Microsoft.AspNetCore.OutputCaching", "8.0.0.0" }, - { "Microsoft.AspNetCore.RateLimiting", "8.0.0.0" }, - { "Microsoft.AspNetCore.Razor.Runtime", "8.0.0.0" }, - { "Microsoft.AspNetCore.Razor", "8.0.0.0" }, - { "Microsoft.AspNetCore.RequestDecompression", "8.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCaching.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCaching", "8.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCompression", "8.0.0.0" }, - { "Microsoft.AspNetCore.Rewrite", "8.0.0.0" }, - { "Microsoft.AspNetCore.Routing.Abstractions", "8.0.0.0" }, - { "Microsoft.AspNetCore.Routing", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.HttpSys", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.IIS", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.IISIntegration", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Core", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets", "8.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel", "8.0.0.0" }, - { "Microsoft.AspNetCore.Session", "8.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Common", "8.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Core", "8.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Protocols.Json", "8.0.0.0" }, - { "Microsoft.AspNetCore.SignalR", "8.0.0.0" }, - { "Microsoft.AspNetCore.StaticFiles", "8.0.0.0" }, - { "Microsoft.AspNetCore.WebSockets", "8.0.0.0" }, - { "Microsoft.AspNetCore.WebUtilities", "8.0.0.0" }, - { "Microsoft.AspNetCore", "8.0.0.0" }, - { "Microsoft.Extensions.Caching.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Caching.Memory", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Binder", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.CommandLine", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.EnvironmentVariables", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.FileExtensions", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Ini", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Json", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.KeyPerFile", "8.0.0.0" }, - { "Microsoft.Extensions.Configuration.UserSecrets", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Xml", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration", "7.0.0.0" }, - { "Microsoft.Extensions.DependencyInjection.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.DependencyInjection", "7.0.0.0" }, - { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions", "8.0.0.0" }, - { "Microsoft.Extensions.Diagnostics.HealthChecks", "8.0.0.0" }, - { "Microsoft.Extensions.Features", "8.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Composite", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Embedded", "8.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Physical", "7.0.0.0" }, - { "Microsoft.Extensions.FileSystemGlobbing", "7.0.0.0" }, - { "Microsoft.Extensions.Hosting.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Hosting", "7.0.0.0" }, - { "Microsoft.Extensions.Http", "7.0.0.0" }, - { "Microsoft.Extensions.Identity.Core", "8.0.0.0" }, - { "Microsoft.Extensions.Identity.Stores", "8.0.0.0" }, - { "Microsoft.Extensions.Localization.Abstractions", "8.0.0.0" }, - { "Microsoft.Extensions.Localization", "8.0.0.0" }, - { "Microsoft.Extensions.Logging.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Configuration", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Console", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Debug", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.EventLog", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.EventSource", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.TraceSource", "7.0.0.0" }, - { "Microsoft.Extensions.Logging", "7.0.0.0" }, - { "Microsoft.Extensions.ObjectPool", "8.0.0.0" }, - { "Microsoft.Extensions.Options.ConfigurationExtensions", "7.0.0.0" }, - { "Microsoft.Extensions.Options.DataAnnotations", "7.0.0.0" }, - { "Microsoft.Extensions.Options", "7.0.0.0" }, - { "Microsoft.Extensions.Primitives", "7.0.0.0" }, - { "Microsoft.Extensions.WebEncoders", "8.0.0.0" }, - { "Microsoft.JSInterop", "7.0.0.0" }, - { "Microsoft.Net.Http.Headers", "7.0.0.0" }, - { "System.Diagnostics.EventLog", "7.0.0.0" }, - { "System.IO.Pipelines", "7.0.0.0" }, - { "System.Security.Cryptography.Xml", "7.0.0.0" }, - { "System.Threading.RateLimiting", "7.0.0.0" }, + { "Microsoft.AspNetCore.Antiforgery" }, + { "Microsoft.AspNetCore.Authentication.Abstractions" }, + { "Microsoft.AspNetCore.Authentication.Cookies" }, + { "Microsoft.AspNetCore.Authentication.Core" }, + { "Microsoft.AspNetCore.Authentication.OAuth" }, + { "Microsoft.AspNetCore.Authentication" }, + { "Microsoft.AspNetCore.Authorization.Policy" }, + { "Microsoft.AspNetCore.Authorization" }, + { "Microsoft.AspNetCore.Components.Authorization" }, + { "Microsoft.AspNetCore.Components.Forms" }, + { "Microsoft.AspNetCore.Components.Server" }, + { "Microsoft.AspNetCore.Components.Web" }, + { "Microsoft.AspNetCore.Components" }, + { "Microsoft.AspNetCore.Connections.Abstractions" }, + { "Microsoft.AspNetCore.CookiePolicy" }, + { "Microsoft.AspNetCore.Cors" }, + { "Microsoft.AspNetCore.Cryptography.Internal" }, + { "Microsoft.AspNetCore.Cryptography.KeyDerivation" }, + { "Microsoft.AspNetCore.DataProtection.Abstractions" }, + { "Microsoft.AspNetCore.DataProtection.Extensions" }, + { "Microsoft.AspNetCore.DataProtection" }, + { "Microsoft.AspNetCore.Diagnostics.Abstractions" }, + { "Microsoft.AspNetCore.Diagnostics.HealthChecks" }, + { "Microsoft.AspNetCore.Diagnostics" }, + { "Microsoft.AspNetCore.HostFiltering" }, + { "Microsoft.AspNetCore.Hosting.Abstractions" }, + { "Microsoft.AspNetCore.Hosting.Server.Abstractions" }, + { "Microsoft.AspNetCore.Hosting" }, + { "Microsoft.AspNetCore.Html.Abstractions" }, + { "Microsoft.AspNetCore.Http.Abstractions" }, + { "Microsoft.AspNetCore.Http.Connections.Common" }, + { "Microsoft.AspNetCore.Http.Connections" }, + { "Microsoft.AspNetCore.Http.Extensions" }, + { "Microsoft.AspNetCore.Http.Features" }, + { "Microsoft.AspNetCore.Http.Results" }, + { "Microsoft.AspNetCore.Http" }, + { "Microsoft.AspNetCore.HttpLogging" }, + { "Microsoft.AspNetCore.HttpOverrides" }, + { "Microsoft.AspNetCore.HttpsPolicy" }, + { "Microsoft.AspNetCore.Identity" }, + { "Microsoft.AspNetCore.Localization.Routing" }, + { "Microsoft.AspNetCore.Localization" }, + { "Microsoft.AspNetCore.Metadata" }, + { "Microsoft.AspNetCore.Mvc.Abstractions" }, + { "Microsoft.AspNetCore.Mvc.ApiExplorer" }, + { "Microsoft.AspNetCore.Mvc.Core" }, + { "Microsoft.AspNetCore.Mvc.Cors" }, + { "Microsoft.AspNetCore.Mvc.DataAnnotations" }, + { "Microsoft.AspNetCore.Mvc.Formatters.Json" }, + { "Microsoft.AspNetCore.Mvc.Formatters.Xml" }, + { "Microsoft.AspNetCore.Mvc.Localization" }, + { "Microsoft.AspNetCore.Mvc.Razor" }, + { "Microsoft.AspNetCore.Mvc.RazorPages" }, + { "Microsoft.AspNetCore.Mvc.TagHelpers" }, + { "Microsoft.AspNetCore.Mvc.ViewFeatures" }, + { "Microsoft.AspNetCore.Mvc" }, + { "Microsoft.AspNetCore.OutputCaching" }, + { "Microsoft.AspNetCore.RateLimiting" }, + { "Microsoft.AspNetCore.Razor.Runtime" }, + { "Microsoft.AspNetCore.Razor" }, + { "Microsoft.AspNetCore.RequestDecompression" }, + { "Microsoft.AspNetCore.ResponseCaching.Abstractions" }, + { "Microsoft.AspNetCore.ResponseCaching" }, + { "Microsoft.AspNetCore.ResponseCompression" }, + { "Microsoft.AspNetCore.Rewrite" }, + { "Microsoft.AspNetCore.Routing.Abstractions" }, + { "Microsoft.AspNetCore.Routing" }, + { "Microsoft.AspNetCore.Server.HttpSys" }, + { "Microsoft.AspNetCore.Server.IIS" }, + { "Microsoft.AspNetCore.Server.IISIntegration" }, + { "Microsoft.AspNetCore.Server.Kestrel.Core" }, + { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic" }, + { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" }, + { "Microsoft.AspNetCore.Server.Kestrel" }, + { "Microsoft.AspNetCore.Session" }, + { "Microsoft.AspNetCore.SignalR.Common" }, + { "Microsoft.AspNetCore.SignalR.Core" }, + { "Microsoft.AspNetCore.SignalR.Protocols.Json" }, + { "Microsoft.AspNetCore.SignalR" }, + { "Microsoft.AspNetCore.StaticFiles" }, + { "Microsoft.AspNetCore.WebSockets" }, + { "Microsoft.AspNetCore.WebUtilities" }, + { "Microsoft.AspNetCore" }, + { "Microsoft.Extensions.Caching.Abstractions" }, + { "Microsoft.Extensions.Caching.Memory" }, + { "Microsoft.Extensions.Configuration.Abstractions" }, + { "Microsoft.Extensions.Configuration.Binder" }, + { "Microsoft.Extensions.Configuration.CommandLine" }, + { "Microsoft.Extensions.Configuration.EnvironmentVariables" }, + { "Microsoft.Extensions.Configuration.FileExtensions" }, + { "Microsoft.Extensions.Configuration.Ini" }, + { "Microsoft.Extensions.Configuration.Json" }, + { "Microsoft.Extensions.Configuration.KeyPerFile" }, + { "Microsoft.Extensions.Configuration.UserSecrets" }, + { "Microsoft.Extensions.Configuration.Xml" }, + { "Microsoft.Extensions.Configuration" }, + { "Microsoft.Extensions.DependencyInjection.Abstractions" }, + { "Microsoft.Extensions.DependencyInjection" }, + { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" }, + { "Microsoft.Extensions.Diagnostics.HealthChecks" }, + { "Microsoft.Extensions.Features" }, + { "Microsoft.Extensions.FileProviders.Abstractions" }, + { "Microsoft.Extensions.FileProviders.Composite" }, + { "Microsoft.Extensions.FileProviders.Embedded" }, + { "Microsoft.Extensions.FileProviders.Physical" }, + { "Microsoft.Extensions.FileSystemGlobbing" }, + { "Microsoft.Extensions.Hosting.Abstractions" }, + { "Microsoft.Extensions.Hosting" }, + { "Microsoft.Extensions.Http" }, + { "Microsoft.Extensions.Identity.Core" }, + { "Microsoft.Extensions.Identity.Stores" }, + { "Microsoft.Extensions.Localization.Abstractions" }, + { "Microsoft.Extensions.Localization" }, + { "Microsoft.Extensions.Logging.Abstractions" }, + { "Microsoft.Extensions.Logging.Configuration" }, + { "Microsoft.Extensions.Logging.Console" }, + { "Microsoft.Extensions.Logging.Debug" }, + { "Microsoft.Extensions.Logging.EventLog" }, + { "Microsoft.Extensions.Logging.EventSource" }, + { "Microsoft.Extensions.Logging.TraceSource" }, + { "Microsoft.Extensions.Logging" }, + { "Microsoft.Extensions.ObjectPool" }, + { "Microsoft.Extensions.Options.ConfigurationExtensions" }, + { "Microsoft.Extensions.Options.DataAnnotations" }, + { "Microsoft.Extensions.Options" }, + { "Microsoft.Extensions.Primitives" }, + { "Microsoft.Extensions.WebEncoders" }, + { "Microsoft.JSInterop" }, + { "Microsoft.Net.Http.Headers" }, + { "System.Diagnostics.EventLog" }, + { "System.IO.Pipelines" }, + { "System.Security.Cryptography.Xml" }, + { "System.Threading.RateLimiting" }, }; if (!VerifyAncmBinary())