choco
choco copied to clipboard
Upgrade NuGet.Core to v3/v4
https://github.com/NuGet/Home/issues/1839
Upgrade NuGet.Core to a version that better handles conflict resolution
Fixes #507 Fixes #227 (hopeful) Fixes #116 (maybe) Fixes #1158 Relates to #2592 - support for embedded icons
References
- https://github.com/NuGet/NuGetGallery/issues/3004#issuecomment-223145697
- http://stackoverflow.com/a/34959690
- https://daveaglick.com/posts/exploring-the-nuget-v3-libraries-part-1
- https://daveaglick.com/posts/exploring-the-nuget-v3-libraries-part-2
- https://daveaglick.com/posts/exploring-the-nuget-v3-libraries-part-3
- https://martinbjorkstrom.com/posts/2018-09-19-revisiting-nuget-client-libraries
- https://devblogs.microsoft.com/nuget/Play-with-packages/
https://github.com/NuGet/Home/issues/1870
This will require .NET 4.5 for the upgrade to a v3 version of NuGet so this will need to move to ~~0.9.11~~ 0.11.0 where we are eclipsing support for .NET 4 (and Windows 2003).
Hi ferventcoder, I know it's a bit early (as 0.9.10 has only just been released) but I was wondering if you have an estimate for when this work might be started. It would be good to test if this fixes the issues I was having (even if it's a development build).
It is definitely a bit early. No estimate yet on this.
Just wondered if there is any update on when this might be fixed?
Looking at late 2017 depending on where it falls in prioritization. Right now it is a few back on the list. We have a pretty aggressive schedule so it could be done in 2017 but it may fall back to 2018.
Hi @ferventcoder, Is there any update on this? Thanks, Tim
@timbrown5 Note the Milestone - that gives you the best idea on where things are. It's definitely scheduled, but priorities shift based on customer needs, etc.
What is the current version of NuGet used by Chocolatey? I am unable to install a NuGet Package because it believes I am using version 2.11 of Nuget. I am actually using choco version 0.10.11
The error is this one:
The 'Microsoft.NETCore.Platforms 2.0.2' package requires NuGet client version '2.12' or above, but the current NuGet version is '2.11.0.0'.
@eriviere Chocolatey in what version? It is 2.11, but we're moving it up to 2.14 soon. Hopefully that will make the move up to v3 better.
Hello everybody! I stumbled across this issue today, because we are running a NuGet Server in-house, which unfortunately does not support the old NuGet v2 API anymore. Therefore I cannot install the created .nupkg files via the repository, but only as a file. Do you have a plan when the issue will be implemented?
Any Updates for the v3 Support ?
I wish it was just that darn simple to upgrade and call it done. It's not an "upgrade", moreso it really is a reimplementation.
When you see the labels change, you will know we are working on it. HTH
I am sorry if this is unrelated, but I am trying to set up a GitLab Nuget Package Repository right now on our internal GitLab server to publish chocolatey packages to.
This would allow us to define, build, push, store and distribute the chocolatey packages all from within GitLab and its CI/CD pipelines.
However I am so far unable to get it to work - is this because the GitLab Nuget repositories are v3/v4? All their feeds end with .json files, you can see it in the documentation above.
If you need the incentive/user story, I am currently in a C4B trial with QDE and have already moved the included jenkins jobs to our pre-existing automation engine as that or GitLab CI is what we'd be using if we were to stick with C4B. Now Sonatype Nexus is next on the chopping block because I wouldn't want to keep using that either - it's kinda ugly and GitLab, GitHub and Azure DevOps already offer native NuGet package repositories - between these three, we've probably realistically covered 90% of the market for popular git/repo/workflow/ops platforms, so many of your customers will have existing investment in one of these platforms and will likely - like me - consider it a burden and con to chocolatey as a whole to have to set up, maintain and support a completely separate java-based server/software just for hosting chocolatey packages.
Originally, I didn't want to set up a nuget repository at all - I thought why can't chocolatey just download everything from a simple folder structure on an HTTP-server with some metadata files? That would be so easy to manage and set up - well, turns out, indirectly that is possible with sleet - this would allow me to just chuck all my packages into S3-compatible blob storage (which we can also easily host and backup in our own datacenter, S3 != cloud) and then have sleet turn it into a faux nuget feed for chocolatey to consume - but again, obviously no support for the old legacy NuGet v2 !
From the documented recommended chocolatey repositories many are either paid, heavily discouraged, literally unmaintained for years - or called Nexus.
It appears the delay on supporting NuGet v3/v4 has created an unfortunate soft reliance/depencendy on that one product, when meanwhile the IT world has moved on to repositores integrated with gitops platforms or blob storage?
Again, I'm thankful for any clarifications where I am mistaken - I am wrangling through docs, building an understanding and setting this up as we speak
Thanks for your efforts with chocolatey in general
is this because the GitLab Nuget repositories are v3/v4? All their feeds end with .json files, you can see it in the documentation above.
The Gitlab nuget server has the v3 api only. The nuget v2 api is ODATA (xml), while the nuget v3 api is json based. There is a feature request here for Gitlab to support nuget v2 api, and it looks like pretty much the only reason is because Chocolatey does not have v3 api support yet.
The v3/v4 mentioned in the title of this issue is not directly in reference to the api version, but in reference to the version of the NuGet.Core library. The upgraded NuGet.Core version will support the nuget v3 api feeds.
From the documented recommended chocolatey repositories many are either paid, heavily discouraged, literally unmaintained for years - or called Nexus.
Proget is also a viable option, and the free version does work with Chocolatey. IMO the free version is not as feature-rich as Nexus OSS, and it isn't open-source, but it works well enough. I personally run Nexus because I was not impressed with Proget in a docker container.
If you need the incentive/user story, I am currently in a C4B trial with QDE
Looking at the milestones page, it seems like they are expecting a minimum of four more 0.10.x releases. And currently, this is aimed at 0.11 release milestone. https://github.com/chocolatey/choco/milestones
The last release (0.10.15) was about a year and a half ago, and it seems like the website and business edition (QDE, central management) have gotten most of the development time since then, so I don't know when to expect another release. I would suggest bringing this up with email support if you want more info, as they may be willing to give more details on a timeline.
@ferventcoder - do you have any thoughts on when this might be available? I am having a hard time finding justifications (other than Chocolatey) for GitLab to refactor to Nuget V2 compatibility.
Hey, any update on this?
@mamor This is in our roadmap but we haven't committed to a date.
Since Sonatype Nexus is starting to move away from OrientDB to HSQL/Postgres and stripped v2 support for those database types, this is getting way more serious. Any news?
@pauxus This is on our roadmap. We anticipate it being Q1 / Q2 2023.
Here are a couple more resources I found: https://www.meziantou.net/exploring-the-nuget-client-libraries.htm https://lunarfrog.com/blog/using-nuget-libraries-in-your-projects https://stackoverflow.com/questions/39569318/how-to-download-and-unzip-packages-using-nuget-v3-api
This issue has been open for over six years. Any progress? Providers like GitLab do not support NuGet v2 repositories, so this becomes a blocker to buying your product.
@tomatwoodgeode Have you seen the activity in the issue above your comment?
I would appreciate a clear statement on v3 support. Chocolatey has been great, but the v2 API constraint is becoming a problem. The comments above @tomatwoodgeode are not clear to me as I am no expert so do not understand much of the jargon within those comments.
Thank you,
@JCW-USDA We are working towards implementing Nuget v3 support which we would anticipate being available, given what we know now, in Q1 / Q2 of 2023.
Any news on that to support v3 and not only v2 ? /nuget/v3/index.json
@JCW-USDA We are working towards implementing Nuget v3 support which we would anticipate being available, given what we know now, in Q1 / Q2 of 2023.
it seems that this issue is not really attached to a project or a delivery?
@DiscoveringWorld as stated by @pauby we are planning (this doesn't mean an exact timeline) to have this available n Q1 / Q2 of 2023. Once we know exactly when we are going to be able to ship this, a milestone will be assigned to this issue.
I hope it is understood that it is not a trivial task to add v3 support to Chocolatey, but it is something that we are committed to doing. We just need to ensure that we do it in a way that doesn't break any existing functionality in Chocolatey.
The core work of updating to use these assemblies has been completed, so I am going to mark this as closed. Any additional issues/problems that are found during testing can still be attributed to this issue for tracking purposes though.
@gep13 is there any more news since your Oct 7, 2022 update for NuGet v3 API support in chocolatey? My team owns a service that supports NuGet v3 and I it would be good to know when we should plan for compatibility testing.
we are planning (this doesn't mean an exact timeline) to have this available n Q1 / Q2 of 2023. Once we know exactly when we are going to be able to ship this, a milestone will be assigned to this issue.