-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Update maintenance-packages pruning versions #49092
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request updates the pruning versions for maintenance packages in the .NET build tasks, ensuring that only frameworks previously pruning the version just before the maintenance-package version are updated.
- Updated maintenance-package versions for NETStandard2.1, NETCoreApp3.1, NETCoreApp2.1, NET6.0, and NET5.0 frameworks.
- Bumps include packages such as System.Buffers, System.Memory, System.Numerics.Vectors, System.Reflection.DispatchProxy, among others.
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netstandard2.1.cs | Bumped versions for System.Buffers, System.Memory, System.Numerics.Vectors, and System.Threading.Tasks.Extensions. |
src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp3.1.cs | Updated System.Reflection.DispatchProxy version. |
src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp2.1.cs | Updated versions for System.Memory, System.Numerics.Vectors, System.Threading.Tasks.Extensions, and System.ValueTuple. |
src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.net6.0.cs | Raised the version for System.Runtime.CompilerServices.Unsafe. |
src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.net5.0.cs | Updated System.Reflection.DispatchProxy version. |
This updates pruning versions for maintenance-packages. We do so only on frameworks where they were previously pruning the version just before the maintenance-package version.
e968482
to
380b99b
Compare
@@ -17,23 +17,23 @@ internal static class NETCoreApp21 | |||
{ "Microsoft.NETCore.App", "2.1.0" }, | |||
{ "Microsoft.VisualBasic", "10.3.0" }, | |||
{ "Microsoft.Win32.Registry", "4.5.0" }, | |||
{ "System.Buffers", "4.5.0" }, | |||
{ "System.Buffers", "4.6.1" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We cannot change
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp2.0.cs
Line 171 in 380b99b
{ "System.Buffers", "4.4.0" }, |
netcoreapp2.0
only included assembly 4.0.2.0
while the package has 4.0.3.0
.
{ "System.Memory", "4.5.5" }, | ||
{ "System.Numerics.Vectors", "4.5.0" }, | ||
{ "System.Memory", "4.6.3" }, | ||
{ "System.Numerics.Vectors", "4.6.1" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We cannot change
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp2.0.cs
Line 185 in 0e185be
{ "System.Numerics.Vectors", "4.4.0" }, |
netcoreapp2.0
only included assembly 4.1.3.0
while the package has 4.1.4.0
.
@@ -19,7 +19,7 @@ internal static class NETCoreApp31 | |||
{ "System.ComponentModel.Annotations", "4.7.0" }, | |||
{ "System.Diagnostics.DiagnosticSource", "4.7.0" }, | |||
{ "System.IO.FileSystem.AccessControl", "4.7.0" }, | |||
{ "System.Reflection.DispatchProxy", "4.7.0" }, | |||
{ "System.Reflection.DispatchProxy", "4.8.2" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We cannot change
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp2.0.cs
Line 189 in 0e185be
{ "System.Reflection.DispatchProxy", "4.4.0" }, |
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp2.1.cs
Line 28 in 0e185be
{ "System.Reflection.DispatchProxy", "4.5.0" }, |
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp3.0.cs
Line 25 in 0e185be
{ "System.Reflection.DispatchProxy", "4.6.0" }, |
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netstandard2.1.cs
Line 31 in 0e185be
{ "System.Reflection.DispatchProxy", "4.5.1" }, |
Because of the following versions in framework, while the package uses 4.0.6.0
:
Framework | Version in Framework |
---|---|
netcoreapp2.0 | 4.0.3.0 |
netcoreapp2.1 | 4.0.4.0 |
netcoreapp3.1 | 4.0.5.0 |
netstandard2.1 | 4.0.5.0 |
@@ -18,7 +18,7 @@ internal static class NETCoreApp60 | |||
{ "System.Formats.Asn1", "6.0.0" }, | |||
{ "System.Net.Http.Json", "6.0.0" }, | |||
{ "System.Reflection.Metadata", "6.0.0" }, | |||
{ "System.Runtime.CompilerServices.Unsafe", "6.0.0" }, | |||
{ "System.Runtime.CompilerServices.Unsafe", "6.1.2" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't change past versions for this, of course, because it was still shipping major versions/API.
{ "System.Reflection.DispatchProxy", "4.5.0" }, | ||
{ "System.Reflection.Metadata", "1.6.0" }, | ||
{ "System.Security.AccessControl", "4.5.0" }, | ||
{ "System.Security.Cryptography.Cng", "4.5.2" }, | ||
{ "System.Security.Cryptography.OpenSsl", "4.5.0" }, | ||
{ "System.Security.Principal.Windows", "4.5.0" }, | ||
{ "System.Threading.Tasks.Dataflow", "4.9.0" }, | ||
{ "System.Threading.Tasks.Extensions", "4.5.4" }, | ||
{ "System.ValueTuple", "4.5.0" }, | ||
{ "System.Threading.Tasks.Extensions", "4.6.3" }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We cannot change
sdk/src/Tasks/Microsoft.NET.Build.Tasks/FrameworkPackages/FrameworkPackages.netcoreapp2.0.cs
Line 207 in 0e185be
{ "System.Threading.Tasks.Extensions", "4.4.0" }, |
netcoreapp2.0
only included assembly 4.1.1.0
while the package has 4.2.1.0
Versions 4.4.0 and later for this package all have a placeholder for `netstandard2.0` so it's safe to prune as it doesn't expose any reference.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"System.Runtime.CompilerServices.Unsafe", "6.1.2"
This means that we would need to update this data every time m-p publishes new packages, right? For PackageOverrides.txt entries we chose the next major version: https://github.com/dotnet/runtime/blob/e163124bce28b7e868b62f4efd498fcaa7f95301/src/installer/pkg/sfx/Microsoft.NETCore.App/PackageOverrides.txt#L225
Can we do the same here? In general it would be good use the same versions as in PackageOverrides.txt for these m-p packages.
I think @dsplaisted already employ's lifting of these package versions sdk/src/Tasks/Microsoft.NET.Build.Tasks/GetPackagesToPrune.cs Lines 214 to 223 in 2310f2b
|
If I read the code correctly, only if the package uses a prerelease version. The m-p ones use a stable version. |
No - it's for non-prerelease. It's disabled for pre-release where API and features of the package might be changing more often. Once the package is released we're in "servicing" in which case this rule to prune higher patch versions is applied. |
Sounds good. Should conflict resolution get updated to use the same algorithm? |
Fixes #47314
This updates pruning versions for maintenance-packages. We do so only on frameworks where they were previously pruning the version just before the maintenance-package version.