fsprojects / Paket

A dependency manager for .NET with support for NuGet packages and Git repositories.
https://fsprojects.github.io/Paket/
MIT License
1.99k stars 520 forks source link

Unlisted Microsoft.Management.Infrastructure by default #3757

Open theimowski opened 4 years ago

theimowski commented 4 years ago

Description

Paket resolves Microsoft.Management.Infrastructure to an unlisted version: 4.0

This package might be special in regard that this unlisted version is actually higher than the latest supported, which is currently 2.0

Repro steps

Paket version 5.241.2

  1. dotnet new console
  2. paket convert-from-nuget
  3. paket add --project project.csproj Microsoft.Management.Infrastructure

Expected behavior

Microsoft.Management.Infrastructure resolved to 2.0

Actual behavior

Microsoft.Management.Infrastructure resolved to 4.0:

NUGET
  remote: https://api.nuget.org/v3/index.json
    Microsoft.Management.Infrastructure (4.0)

Known workarounds

Pin version in paket.dependencies

forki commented 4 years ago

Yes. If no other version is available in the range then we fallback to unlisted

theimowski commented 4 years ago

Is that by design? If so why?

forki commented 4 years ago

The original case was that a lot of people (including MS) released packages as unlisted before they hit 1.0. Basically this from a time when SemVer wasn't popular at all. And prerelease versions weren't really used. So in order to make it work we had to fallback to unlisted versions.

This time is probably long gone and I assume you run into a new edge case. Tbh I assume it would be fine to deprecate this fallback in v6

Tomasz Heimowski notifications@github.com schrieb am Mi., 18. Dez. 2019, 13:03:

Is that by design? If so why?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/fsprojects/Paket/issues/3757?email_source=notifications&email_token=AAAOANFZKT5VRHD56CJ7PATQZIGRZA5CNFSM4J4J4M32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHF4YBQ#issuecomment-567004166, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAOANB6RBWTF2EXJ7JDLTTQZIGRZANCNFSM4J4J4M3Q .

theimowski commented 4 years ago

I'd opt to change that in v6 yeah.

Not sure about other users, but me as a Paket user if I needed a prerelease version, I'd explicitly set it. So resolving to an unlisted version without any warning might be quite an issue - I'd hardly even notice if I didn't git diff on paket.lock

matthid commented 4 years ago

Strange for me paket usually skips unlisted versions in the resolution if there are no conditions which force it to use it (for example >=3 in this scenario). Maybe this is just a bug in paket add?

forki commented 4 years ago

Yes. It should only use unlisted if there is no listed version available.