-
Notifications
You must be signed in to change notification settings - Fork 525
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
Unlisted Packages been found in Paket Outdated #327
Comments
mhm how can we detect this? /cc @maartenba |
Don't laugh... Packages are considered unlisted if their Published property matches a magic date:
|
@forki @maartenba We should make a list of magic values used by NuGet. |
Maarten you are a true hero for us. |
and https://www.nuget.org/packages/Rx-PlatformServices/2.3.0 shows "unlisted". but I don't find the magic date. |
It does however on https://www.nuget.org/api/v2/Packages?$filter=Id eq 'Rx-PlatformServices' and Version eq '2.3' |
So they give different results. Da fuq?
|
thanks to @maartenba's excellent help it's now fixed in 0.11.16. You might have to use |
Excellent news, thanks to all |
Can I include unlisted packages if needed? RavenDB.Client requires the unlisted Microsoft.CompilerServices.AsyncTargetingPack |
That's a joke right? Which ravendb package?
|
Wonderful :-) |
please try 0.13.1 - it should work with RavenDB.Client |
It's not good, but it's absolutely valid scenario. But even than, if a Paket user have specified a dependency and it have dependency on unlisted package and no other version present, Paket should warn the user, but not fail. @forki is awesome, fix arrives while I'm writing the comment ;) |
You sir, are a scholar and a gentleman |
This is a very special edge case since there is not a single unlisted package anymore. Otherwise it would have worked in 0.13.0 |
@maartenba @jeffhandley I think the API just broke: see https://www.nuget.org/api/v2/Packages?$filter=Id%20eq%20%27Rx-PlatformServices%27%20and%20Version%20eq%20%272.3.0%27 gives me:
This worked 2 days ago! |
NuGet v3! Maybe... |
I'm calling v2 here. It just gives different result. This breaks Paket and maybe even nuget.exe |
See later in thread. |
Thanks Maarten I thought I'm stupid. just to complete the list: |
We'll take a look, but I don't think we made any changes here. We haven't really been touching the v2 API while preparing to release v3 Preview, so I'm not sure what would have happened to cause this behavior to change. I know that Version vs. NormalizedVersion has been a distinction for a while, where Version exposes the raw version specified in the package (and this package says "2.3" not "2.3.0") whereas NormalizedVersion is normalized to a SemVer format. You say this worked 2 days ago. With this exact package id/version pair, looking for it with "2.3"? Or is it possible that this edge case of this package having "2.3" specified in the nuspec was not detected before? |
BTW Both of the following work:
|
Thanks for the info. Maybe something else returned 2.3 instead of 2.3.0
|
Seems to be related to this specific package. Tried a couple of others and there the Version is still intact. |
Yeah, you'd likely see 2.3 show up in some places, including from the nuspec itself. If you download the nupkg for the package and crack it open, you'll see "2.3" for the version. We normalize those versions before we bake them in anywhere in the NuGet VS client. And then we normalize versions while asking for package restore and whatnot too. But we have to expose Version verbatim in some places for backwards compat from before we normalized versions. |
Ok I think I found the issue. Thanks everyone for helping. The new api v3 gives the normalized version. The old v2 gives 2.3. The good news is: it's not a breaking change. Just something we have to Thanks
|
Cool. Yeah, API v3 is going to try to hide a lot of the old quirks like this, normalizing versions through and through. If you always use NormalizedVersion against API v2, you should be good. |
Yes. Very cool. Thanks
|
The only problem is the fallback. Not every feed supports v3 so we have to
|
Right. I'm pretty sure our clients have been normalizing on all requests for a long time. |
Ok thanks. That's something we can easily do.
|
When asking for normalized versions, we will hijack the request and serve it from the search service instead of the db. So that makes sense. |
no that part isn't affected since we cache this data already on disk. |
Paket is picking packages which have been unlisted from Nuget
e.g. RX-PlatformServices
Paket.Dependencies has
nuget Rx-PlatformServices 2.2.5
when running paket outdated it finds v2.3 which is noted as been unlisted at the nuget site
https://www.nuget.org/packages/Rx-PlatformServices/2.3.0
The text was updated successfully, but these errors were encountered: