Quantcast
Channel: Active questions tagged nuget-package - Stack Overflow
Viewing all articles
Browse latest Browse all 3067

How do I understand changes across different versions of System.* NuGet packages?

$
0
0

I've got a .NET Framework 4.7.2 application, and am using the .NET CLI tooling and SDK-style projects, and have been happily building my application for some time.

After doing the appropriate performance measuring, I want to bring in System.Text.Json to replace a few uses of Newtonsoft.Json in one my netstandard2.0 assemblies. So I go to NuGet.org and look at the versions available, and I see 4.6.0, 4.7.0, 4.7.1, and 4.7.2.

Just "getting the latest" (4.7.2) warns me about upgrading a slew of other packages:

  • System.Buffers.4.4.0 -> System.Buffers.4.5.1
  • System.Memory.4.5.3 -> System.Memory 4.5.4
  • System.Numerics.Vectors.4.4.0 -> System.Numerics.Vectors.4.5.0
  • System.Runtime.CompilerServices.Unsafe.4.5.2 -> System.Runtime.CompilerServices.Unsafe.4.7.1
  • System.Threading.Tasks.Extensions.4.3.0 -> System.Threading.Tasks.Extensions.4.5.4

Even the older 4.6.0 warns me about upgrading some of those packages, with (understandably) different target versions:

  • System.Buffers.4.4.0 -> System.Buffers.4.5.0
  • System.Numerics.Vectors.4.4.0 -> System.Numerics.Vectors.4.5.0
  • System.Runtime.CompilerServices.Unsafe.4.5.2 -> System.Runtime.CompilerServices.Unsafe.4.6.0
  • System.Threading.Tasks.Extensions.4.3.0 -> System.Threading.Tasks.Extensions.4.5.2

Where is documentation on the scope of these changes including dependent packages to help me choose which version to bring into my application?

I've looked in the GitHub repository for commits that say anything about these package versions (e.g.System.Text.Json.4.7.1), but haven't found any. I can surmise from the release dates that they're connected to SDK/Runtime releases. For example, 4.7.0 was published on 3-Dec-2019, the release date for .NET Core 3.1; but what about 4.7.1 and 4.7.2? They look likely to be connected with servicing releases, but I'm struggling to find documentation of that.

I'm not targeting .NET Core 3.1 - I'm not targeting.NET Core at all - so "just use the latest and stay up-to-date" isn't a satisfactory answer; I want to understand runtime and API compatibility and be aware of breaking changes, even down the dependency tree. How can I find this information? Is it even available without closely tracking development in the GitHub repository?


Viewing all articles
Browse latest Browse all 3067

Trending Articles