Skip to content
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

Closed
clairernovotny opened this issue Feb 9, 2016 · 5 comments
Closed

Package Compatibility Filtering (for update) #2084

clairernovotny opened this issue Feb 9, 2016 · 5 comments
Labels
Functionality:Update The update package feature/command/experience Priority:3 Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog. Resolution:Duplicate This issue appears to be a Duplicate of another issue Status:Excluded from icebox cleanup Status:Inactive Icebox issues not updated for a specific long time Type:Feature
Milestone

Comments

@clairernovotny
Copy link

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 but System.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 like System.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 projects netstandard 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.

@clairernovotny clairernovotny changed the title NuGet Client: Upgrade package returns and shows packages that are incompatible with target project NuGet Client: Upgrade package shows packages that are incompatible with target project Feb 9, 2016
@clairernovotny
Copy link
Author

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.

@clairernovotny
Copy link
Author

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.

@yishaigalatzer
Copy link

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

@yishaigalatzer yishaigalatzer added this to the Client-VNext milestone Feb 9, 2016
@harikmenon harikmenon modified the milestone: Client-VNext Apr 19, 2016
@harikmenon harikmenon added this to the Future milestone Jul 18, 2016
@rrelyea rrelyea changed the title NuGet Client: Upgrade package shows packages that are incompatible with target project Package Compatibility Filtering (for update) Oct 17, 2017
@rrelyea rrelyea modified the milestones: Future-2, Backlog Oct 17, 2017
@rrelyea rrelyea added the Priority:2 Issues for the current backlog. label Oct 17, 2017
@rrelyea
Copy link
Contributor

rrelyea commented Oct 17, 2017

This is in our backlog. Package Compatibility Filtering (for search and update).

@rrelyea rrelyea added Functionality:Update The update package feature/command/experience Type:Feature labels Oct 17, 2017
@ghost ghost added the Status:Inactive Icebox issues not updated for a specific long time label Sep 1, 2022
@nkolev92 nkolev92 added Priority:3 Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog. and removed Priority:2 Issues for the current backlog. labels Apr 3, 2023
@nkolev92
Copy link
Member

nkolev92 commented Apr 4, 2024

This is older, but it has a lot less attention that #5725, so closing this in favor of that issue.

@nkolev92 nkolev92 closed this as not planned Won't fix, can't repro, duplicate, stale Apr 4, 2024
@nkolev92 nkolev92 added the Resolution:Duplicate This issue appears to be a Duplicate of another issue label Apr 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Functionality:Update The update package feature/command/experience Priority:3 Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog. Resolution:Duplicate This issue appears to be a Duplicate of another issue Status:Excluded from icebox cleanup Status:Inactive Icebox issues not updated for a specific long time Type:Feature
Projects
None yet
Development

No branches or pull requests

7 participants