-
Notifications
You must be signed in to change notification settings - Fork 527
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
Question about Normalized Version Numbers and third party Nuget server (ProGet) #1777
Comments
The way I understand that section in the NuGet docs, appending .0 in the response would explicitly make it not comply. Also, according to that section, Paket should not add a zero 4th-part on requests. Am I missing something? |
Yes the normalization is in the opposite direction and would remove the That said: I consider this a bug in paket. We need to check for the
|
tbf it's probably not a "bug", but I'm happy to fix it as usability issue. |
Thanks forki. I appreciate the change even though it's not a bug in paket. Our server is internal to our company so I won't be able to give access. I can try a test version of paket or get you some debugging info if needed though. You can also get a trial license for ProGet but I think it would take some time to get setup. |
Also, I am able to build paket so I can add some debug lines or get some information that way. |
cool. let me know if I can help |
We are also experiencing this problem with the
and doesn't find any packages. However, if I edit the search URL to this, it does find it.
I created a ticket at ProGet, but got this reply in retrun.
☝️ please provide a fix as this is critical for our usage of Paket. For now the workaround is to put the Owin package into the NuGet cache locally. However this is very frustrating as we re-create our build images quite often. |
@rasmus where is the 1.0 coming from? Do you have a repro for us? |
@forki I can't provide a repo as the code is IP. But I cut the following snippets from our lock file if that helps.
|
And you are sure paket is not trying Owin 1.0 as one of the fallbacks? That would be weird. |
@forki Here's the log from our build
|
@forki Did a
|
Restore is not really the interesting part here since the lock file specified 1.0.0 so that's what paket sees as requested version. The question is more about install command. Instead of putting the package in local cache there is another workaround. You can edit the lock file manually and change the 1.0.0 for 1.0 until we figured it out |
can you please run "paket.exe update -v" and show the relevant parts here? thx |
or better "paket.exe update -f -v" |
@forki Did that and it seems like one of our internal packages has pinned The package is packed with Paket does figure out its supposed to fetch The problems after Paket writes e.g.
(the log file is about 40.000 lines, so I wont post it here) |
Tbh I don't understand why the proget doesn't show it under 1.0.0 like
nuget.org does. I think it's a bug on their side.
But I will investigate further on what we can do.
Am 09.08.2017 11:22 schrieb "Rasmus Mikkelsen" <notifications@github.com>:
… @forki <https://github.com/forki> Did that and it seems like one of our
internal packages has pinned Owin to 1.0 in its paket.dependencies. If I
open the package in the NuGet package explorer, it shows up as Owin ==
1.0.0, but that might just be the UI.
The package is packed with paket.exe pack
Paket does figure out its supposed to fetch Owin, 1.0.0 as its listed in
the package resolution later.
The problems after Paket writes Creating model and downloading packages.
The requests and responses for the Owin package are similar to that
posted in the earlier log message.
e.g.
...
Response from http://nuget-server/nuget/Default/Packages?$filter=(tolower(Id) eq 'owin') and (Version eq '1.0.0'):
<?xml version="1.0" encoding="utf-8"?><feed xml:base="http://nuget-server/nuget/Default/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"><title type="text">Packages</title><id>http://nuget-server/nuget/Default/Packages()/</id><updated>2017-08-09T08:50:02Z</updated><link rel="self" title="Packages" href="Packages" /></feed>
GetPackageDetails failed: System.Exception: Couldn't get package details for package Owin 1.0.0 on http://dev-nuget/nuget/Default.
at ***@***.***(String msg)
at ***@***.***(Unit unitVar)
at ***@***.***(AsyncParams`1 args)
Starting request to 'http://nuget-server/nuget/Default/Packages?$filter=(tolower(Id) eq 'owin') and (NormalizedVersion eq '1.0.0')'
...
(the log file is about 40.000 lines, so I'll wont post it here)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1777 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADgNKA293PtRysc-aiFf29lZRvcbS-Cks5sWXoZgaJpZM4JCoBe>
.
|
you can rename to .zip and extract it. then the pinned version is in the nuspec file. |
also take a look at https://fsprojects.github.io/Paket/template-files.html#Dependencies |
Just a small FYI, the latest (5.84.3) still can't download Owin from the ProGet feed |
As I said: I think it's a proget bug. It should work with normalized
versions like nuget.org.
But that said we need to find out why the paket.lock file shows 1.0.0 - if
we don't find a way to change it to 1.0 then we can't work around proget
since restore can't know that 1.0 is the way to talk about it.
Am 09.08.2017 3:27 nachm. schrieb "Rasmus Mikkelsen" <
notifications@github.com>:
… Just a small FYI, the latest (5.84.3) still can't download Owin from the
ProGet feed
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1777 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADgNLotsxMGWc7YsKn__muhPtg0VR6Fks5sWbPVgaJpZM4JCoBe>
.
|
@forki Thanks for clarifying, I have created a ticket at ProGet. |
Does this cause a problem with the latest version of NuGet client? I don't believe it does... and I hate to suggest it, but you should probably strive for full compatibility with NuGet client in situations like this... Please keep in mind that, as an enterprise package manager, we (as well as Microsoft, and our customers) are in a difficult position of needing to support: (1) old NuGet clients with new ProGet versions, and (2) new NuGet clients with old ProGet installations. NuGet has some really stupid versioning quirks, and it's important that we (Microsoft or ProGet) continue to support them in some manner. Here are two issues that may be discussing this, and the work-around that the NuGet team did to addresses them... |
@apapadimoulis it's fine we do exactly the same as nuget here from restore POV. The lockfile wants 1.0.0 and that's what we request. As I said there are two issues. Second is: If you just run install/update against nuget.org then version 1.0 is written into the lock file. This matches what ProGet prefers. I assume the root cause for the 1.0.0 is indeed in the private nuget package that pins it's transitive dependency to exactly 1.0.0. So this should definetly be changed. |
@rasmus I think for the pack issue we need to remove the normalize stuff from It already has a woraround for klondike. sigh |
Yeah, that was that v3.4 breaking change they did; main impact was that a handful of authors had to republish some older versions. But, a lot of customers can't upgrade ProGet to a new versions, so the client compatibility issue will still be there. |
Yes I know about these changes. And paket is compatible to that (even when
I think it should be fixed in all server implementations).
So the only thing for us to help PeoGet's users is to remove normalization
from pack command. Which is really sad and shouldn't be needed. But life is
a bitch and we will bite.
Am 09.08.2017 21:09 schrieb "Alex Papadimoulis" <notifications@github.com>:
… Proget doesn't think that's a valid version while nuget.org allows it. I
mean we have the "NormalizedVersion" parameter for exactly this.
Yeah, that was that v3.4 breaking change they did; main impact was that a
handful of authors had to republish some older versions. But, a lot of
customers can't upgrade ProGet to a new versions, so the client
compatibility issue will still be there.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1777 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADgNEYRGO2F2tYdMdBr6hkvMm64ODvPks5sWgP8gaJpZM4JCoBe>
.
|
LOL yes, thanks. For what it's worth, we are thinking to stop supporting these stupid version quirks in ProGet v5 (beta shipping Q4, full version in 2018Q1), so like who knows... in a few years, people will actually upgrade and you can remove these stupid hacks too. // so many big customers won't upgrade past v2 (which is like 4+ years old now), they say when we go to v5 they may go to v4 :wtf: |
/shrug
Am 09.08.2017 9:38 nachm. schrieb "Alex Papadimoulis" <
notifications@github.com>:
… LOL yes, thanks.
For what it's worth, we are thinking to stop supporting these stupid
version quirks in ProGet v5 (beta shipping Q4, full version in 2018Q1), so
like who knows... in a few years, people will actually upgrade and you can
remove these stupid hacks too.
// so many big customers won't upgrade past v2 (which is like 4+ years old
now), they say when we go to v5 they may go to v4 :wtf:
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1777 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AADgNA7ZZVm02c2K6sEkXtT6Jqhlmgy9ks5sWgrIgaJpZM4JCoBe>
.
|
@apapadimoulis and @forki many thanks for getting together on this. We really like ProGet and Paket and would like to see them getting along. I don't know about the inner quirks of NuGet versioning, but I'll test any solutions in our setup to help out here. So let me know if there's anything specific that I can do in this. Just a FYI, we use the latest version of ProGet |
@rasmus I didn't find a way yet to get Owin 1.0.0 in the lock file. Against nuget.org I always end up with 1.0 as ProGet would expect - even if I pin the version manually. Where is it going wrong? |
Can you all please retry with 5.86.0-alpha002. Otherwise we might break you on next release. |
Description
paket does not search for 4-digit version numbers when a 3-digit version number is specified. Is this the expected behavior?
Repro steps
Steps to reproduce the problem:
I a package, SqlTableDependency: 4.1.1, and uploaded it to a ProGet server.
ProGet automatically appends .0 to make it a 4-digit version 4.1.1.0. (They said this is to comply with NuGet version 3.4 change for normalized version numbers: http://docs.nuget.org/Create/Versioning#Normalized_Version_Numbers.)
I run paket update and it I get this error message
Could not resolve package SqlTableDependency:
Expected behavior
I was expecting 4.1.1 to work (not realizing that ProGet was changing it to 4.1.1.0).
Actual behavior
Specifying 4.1.1 fails to find 4.1.1.0 for the package.
Known workarounds
It works when I specify 4.1.1.0. (Is this the proper way to do it?)
Related information
The text was updated successfully, but these errors were encountered: