Yes! I'm very happy with this change, because I want to be able to make dependency changes in minimal increment, because it makes it much easier to debug when something breaks. And indeed it avoids rushing into incompatibilities when other packages may
not support the newer versions.
So being able to install A without necessarily updating all it's dependencies is a big win!
There is a couple of closely related scenario which I would like to bring up:
Scenario 1 : Update has a new dependency:
The source repository contains package B with version 1.0.0 and 1.0.2. It also contains package A with version 1.0.0 and 2.0.0. A 1.0.0 has no dependencies, but A 2.0.0 has a dependency on B (>= 1.0.0).
Assume that the current project already has package A version 1.0.0 and package B version 1.0.0 installed. Now you want to update package A to 2.0.0.
Scenario 2 : Update has the same dependency:
Same as above, except both A 1.0.0 and A 2.0.0. have a dependency on B (>= 1.0.0).
I believe that in both cases nuget should just update A and not update B, because the existing version of B satisfies the dependency version constraint. Is this also considered in the proposed behavior ?
(Of course this only applies when requesting the update of a specific package, and not when updating all packages).
PS: this behavior changes addresses at least partially the feature request
, which was briefly discussed here