-
Notifications
You must be signed in to change notification settings - Fork 258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Package Compatibility Filtering (for update) #2084
Comments
One example of a thread showing the confusion: Humanizr/Humanizer#520. I'm sure there'll be others as these packages become more widely used. |
Seems like this may become less of an issue with the latest CoreFX packages: https://github.com/dotnet/corefx/issues/5955 Still applies to other packages but possibly less of an issue. |
This is known, and already tracked. The answer in short is that we can't actually know that the new packages are not compatible based on the available metadata, so we actually have to add more smarts to the server (which we can't do to all servers) to understand the compatibility rules |
This is in our backlog. Package Compatibility Filtering (for search and update). |
This is older, but it has a lot less attention that #5725, so closing this in favor of that issue. |
The current behavior of NuGet is that it always returns the full list of newer package versions when showing potential upgrades. This is true for the UI and also for running
Upgrade-Package
from the console.The problem is that many packages will drop support for older platforms and NuGet will show them as upgrades. This confuses users and has lead to complaints. Further, if users change the default dependency version settings from "lowest" to "highest", they can get install errors that are hard to trace.
This is particularly prevalent for the System.* CoreFX packages where
System.Runtime 4.0.0
will install in a .NET 4.5.2 project butSystem.Runtime 4.0.20
won't. How is a user supposed to know that it's not compatible when NuGet shows it as an upgrade? Adding a further complication, what happens when a package likeSystem.Reflection.Extensions 4.0.1
is released? How should a user know that the package does apply to them when sometimes upgrades don't?While the current support matrix may be difficult to computer, with
netstandard
, it should be easier to filter out the platforms based on the packages'netstandard
version and the target projectsnetstandard
compatibility.This will save a lot of frustration, especially as more packages start using the CoreFX packages and starting to drop support for older platforms.
The text was updated successfully, but these errors were encountered: