Pin PackageOverrides.txt Extensions versions at Major.Minor.0 in servicing (#25986)
- set the package version of Extensions assemblies using NETCore.App version
- ignore Microsoft.Extensions.Internal.Transport package version
- transport package has a non-stable version and isn't shipped
- just got lucky this worked before versions stabilize
- update test expectations when checking PackageOverrides.txt
- use NuGet.Versioning to make this easier
This commit is contained in:
parent
3ee23fb771
commit
6418c8f78a
|
|
@ -169,6 +169,7 @@ and are generated based on the last package release.
|
||||||
<LatestPackageReference Include="Moq" />
|
<LatestPackageReference Include="Moq" />
|
||||||
<LatestPackageReference Include="Newtonsoft.Json.Bson" />
|
<LatestPackageReference Include="Newtonsoft.Json.Bson" />
|
||||||
<LatestPackageReference Include="NSwag.ApiDescription.Client" />
|
<LatestPackageReference Include="NSwag.ApiDescription.Client" />
|
||||||
|
<LatestPackageReference Include="NuGet.Versioning" />
|
||||||
<LatestPackageReference Include="Selenium.Support" />
|
<LatestPackageReference Include="Selenium.Support" />
|
||||||
<LatestPackageReference Include="Selenium.WebDriver" />
|
<LatestPackageReference Include="Selenium.WebDriver" />
|
||||||
<LatestPackageReference Include="Selenium.WebDriver.ChromeDriver" />
|
<LatestPackageReference Include="Selenium.WebDriver.ChromeDriver" />
|
||||||
|
|
|
||||||
|
|
@ -205,6 +205,7 @@
|
||||||
<MicrosoftWebAdministrationPackageVersion>11.1.0</MicrosoftWebAdministrationPackageVersion>
|
<MicrosoftWebAdministrationPackageVersion>11.1.0</MicrosoftWebAdministrationPackageVersion>
|
||||||
<MicrosoftWebXdtPackageVersion>1.4.0</MicrosoftWebXdtPackageVersion>
|
<MicrosoftWebXdtPackageVersion>1.4.0</MicrosoftWebXdtPackageVersion>
|
||||||
<SystemIdentityModelTokensJwtPackageVersion>6.7.1</SystemIdentityModelTokensJwtPackageVersion>
|
<SystemIdentityModelTokensJwtPackageVersion>6.7.1</SystemIdentityModelTokensJwtPackageVersion>
|
||||||
|
<NuGetVersioningPackageVersion>5.7.0</NuGetVersioningPackageVersion>
|
||||||
<!-- Packages from 2.1, 2.2, and 3.1 branches used for site extension build. -->
|
<!-- Packages from 2.1, 2.2, and 3.1 branches used for site extension build. -->
|
||||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>2.1.1</MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>
|
<MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>2.1.1</MicrosoftAspNetCoreAzureAppServicesSiteExtension21PackageVersion>
|
||||||
<MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>2.2.0</MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>
|
<MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>2.2.0</MicrosoftAspNetCoreAzureAppServicesSiteExtension22PackageVersion>
|
||||||
|
|
|
||||||
|
|
@ -155,14 +155,24 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
||||||
DependsOnTargets="_ResolveTargetingPackContent"
|
DependsOnTargets="_ResolveTargetingPackContent"
|
||||||
Inputs="$(MSBuildAllProjects)"
|
Inputs="$(MSBuildAllProjects)"
|
||||||
Outputs="$(TargetDir)$(PackageConflictManifestFileName)">
|
Outputs="$(TargetDir)$(PackageConflictManifestFileName)">
|
||||||
|
<PropertyGroup>
|
||||||
|
<_PinnedNETCoreAppRuntimeVersion>$(MicrosoftNETCoreAppRuntimeVersion)</_PinnedNETCoreAppRuntimeVersion>
|
||||||
|
<_PinnedNETCoreAppRuntimeVersion
|
||||||
|
Condition=" '$(IsServicingBuild)' == 'true' ">$(_PinnedNETCoreAppRuntimeVersion.Split('.')[0]).$(_PinnedNETCoreAppRuntimeVersion.Split('.')[1]).0</_PinnedNETCoreAppRuntimeVersion>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<!-- Use package version for non-Extensions references -->
|
<!-- Use package version for non-Extensions references. -->
|
||||||
<_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition="!Exists('$(RuntimeExtensionsReferenceDirectory)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " />
|
<_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')"
|
||||||
|
Condition="!Exists('$(RuntimeExtensionsReferenceDirectory)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND
|
||||||
|
'%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND
|
||||||
|
'%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND
|
||||||
|
'%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " />
|
||||||
|
|
||||||
<!-- Pin version for extensions references -->
|
<!-- Use pinned NETCore.App version for Extensions references. -->
|
||||||
<_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(MicrosoftExtensionsInternalTransportPackageVersion)')" />
|
<_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(_PinnedNETCoreAppRuntimeVersion)')" />
|
||||||
|
|
||||||
<_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " />
|
<_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')"
|
||||||
|
Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<WriteLinesToFile
|
<WriteLinesToFile
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<PlatformManifestFileName>PlatformManifest.txt</PlatformManifestFileName>
|
<PlatformManifestFileName>PlatformManifest.txt</PlatformManifestFileName>
|
||||||
<PlatformManifestOutputPath>$(ArtifactsObjDir)$(PlatformManifestFileName)</PlatformManifestOutputPath>
|
<PlatformManifestOutputPath>$(ArtifactsObjDir)$(PlatformManifestFileName)</PlatformManifestOutputPath>
|
||||||
|
|
||||||
<!-- Platform manifest and package override metatdata -->
|
<!-- Platform manifest and package override metadata. -->
|
||||||
<ReferencePackSharedFxVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</ReferencePackSharedFxVersion>
|
<ReferencePackSharedFxVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</ReferencePackSharedFxVersion>
|
||||||
<ReferencePackSharedFxVersion Condition="'$(VersionSuffix)' != ''">$(ReferencePackSharedFxVersion)-$(VersionSuffix)</ReferencePackSharedFxVersion>
|
<ReferencePackSharedFxVersion Condition="'$(VersionSuffix)' != ''">$(ReferencePackSharedFxVersion)-$(VersionSuffix)</ReferencePackSharedFxVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Newtonsoft.Json" />
|
<Reference Include="Newtonsoft.Json" />
|
||||||
|
<Reference Include="NuGet.Versioning" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ using System.Reflection.Metadata;
|
||||||
using System.Reflection.PortableExecutable;
|
using System.Reflection.PortableExecutable;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Xml.Linq;
|
using System.Xml.Linq;
|
||||||
|
using NuGet.Versioning;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
using Xunit.Abstractions;
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
|
|
@ -143,25 +144,46 @@ namespace Microsoft.AspNetCore
|
||||||
|
|
||||||
Assert.Equal(packageOverrideFileLines.Length, runtimeDependencies.Count + aspnetcoreDependencies.Count);
|
Assert.Equal(packageOverrideFileLines.Length, runtimeDependencies.Count + aspnetcoreDependencies.Count);
|
||||||
|
|
||||||
foreach (var entry in packageOverrideFileLines)
|
// PackageOverrides versions should remain at Major.Minor.0 while servicing.
|
||||||
|
var netCoreAppPackageVersion = TestData.GetMicrosoftNETCoreAppPackageVersion();
|
||||||
|
Assert.True(
|
||||||
|
NuGetVersion.TryParse(netCoreAppPackageVersion, out var parsedVersion),
|
||||||
|
"MicrosoftNETCoreAppPackageVersion must be convertable to a NuGetVersion.");
|
||||||
|
if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease)
|
||||||
|
{
|
||||||
|
netCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
var aspNetCoreAppPackageVersion = TestData.GetReferencePackSharedFxVersion();
|
||||||
|
Assert.True(
|
||||||
|
NuGetVersion.TryParse(aspNetCoreAppPackageVersion, out parsedVersion),
|
||||||
|
"ReferencePackSharedFxVersion must be convertable to a NuGetVersion.");
|
||||||
|
if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease)
|
||||||
|
{
|
||||||
|
aspNetCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0";
|
||||||
|
}
|
||||||
|
|
||||||
|
Assert.All(packageOverrideFileLines, entry =>
|
||||||
{
|
{
|
||||||
var packageOverrideParts = entry.Split("|");
|
var packageOverrideParts = entry.Split("|");
|
||||||
|
Assert.Equal(2, packageOverrideParts.Length);
|
||||||
|
|
||||||
var packageName = packageOverrideParts[0];
|
var packageName = packageOverrideParts[0];
|
||||||
var packageVersion = packageOverrideParts[1];
|
var packageVersion = packageOverrideParts[1];
|
||||||
|
|
||||||
if (runtimeDependencies.Contains(packageName))
|
if (runtimeDependencies.Contains(packageName))
|
||||||
{
|
{
|
||||||
Assert.Equal(TestData.GetMicrosoftNETCoreAppPackageVersion(), packageVersion);
|
Assert.Equal(netCoreAppPackageVersion, packageVersion);
|
||||||
}
|
}
|
||||||
else if (aspnetcoreDependencies.Contains(packageName))
|
else if (aspnetcoreDependencies.Contains(packageName))
|
||||||
{
|
{
|
||||||
Assert.Equal(TestData.GetReferencePackSharedFxVersion(), packageVersion);
|
Assert.Equal(aspNetCoreAppPackageVersion, packageVersion);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Assert.True(false, $"{packageName} is not a recognized aspNetCore or runtime dependency");
|
Assert.True(false, $"{packageName} is not a recognized aspNetCore or runtime dependency");
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue