choco icon indicating copy to clipboard operation
choco copied to clipboard

Upgrade NuGet.Core to v3/v4

Open ferventcoder opened this issue 9 years ago • 25 comments

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/

ferventcoder avatar Dec 16 '15 07:12 ferventcoder

https://github.com/NuGet/Home/issues/1870

ferventcoder avatar Dec 23 '15 15:12 ferventcoder

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).

ferventcoder avatar Jan 05 '16 19:01 ferventcoder

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).

timbrown5 avatar Jun 30 '16 10:06 timbrown5

It is definitely a bit early. No estimate yet on this.

ferventcoder avatar Jun 30 '16 16:06 ferventcoder

Just wondered if there is any update on when this might be fixed?

timbrown5 avatar Apr 18 '17 13:04 timbrown5

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.

ferventcoder avatar Apr 18 '17 16:04 ferventcoder

Hi @ferventcoder, Is there any update on this? Thanks, Tim

timbrown5 avatar Apr 19 '18 15:04 timbrown5

@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.

ferventcoder avatar Apr 19 '18 16:04 ferventcoder

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 avatar May 22 '18 14:05 eriviere

@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.

ferventcoder avatar Jan 18 '19 01:01 ferventcoder

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?

jp1337 avatar Jul 22 '20 13:07 jp1337

Any Updates for the v3 Support ?

strausmann avatar Aug 13 '20 20:08 strausmann

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

ferventcoder avatar Aug 22 '20 18:08 ferventcoder

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

jantari avatar Dec 30 '20 14:12 jantari

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.

TheCakeIsNaOH avatar Dec 30 '20 17:12 TheCakeIsNaOH

@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.

DarwinJS avatar Jan 19 '21 17:01 DarwinJS

Hey, any update on this?

malmor avatar Oct 26 '21 12:10 malmor

@mamor This is in our roadmap but we haven't committed to a date.

pauby avatar Oct 26 '21 17:10 pauby

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 avatar May 23 '22 11:05 pauxus

@pauxus This is on our roadmap. We anticipate it being Q1 / Q2 2023.

pauby avatar May 23 '22 17:05 pauby

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

TheCakeIsNaOH avatar Jun 16 '22 17:06 TheCakeIsNaOH

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 avatar Jul 18 '22 19:07 tomatwoodgeode

@tomatwoodgeode Have you seen the activity in the issue above your comment?

pauby avatar Jul 18 '22 20:07 pauby

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 avatar Jul 19 '22 13:07 JCW-USDA

@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.

pauby avatar Jul 19 '22 14:07 pauby

Any news on that to support v3 and not only v2 ? /nuget/v3/index.json

DiscoveringWorld avatar Oct 05 '22 15:10 DiscoveringWorld

@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 avatar Oct 05 '22 17:10 DiscoveringWorld

@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.

gep13 avatar Oct 07 '22 08:10 gep13

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 avatar Jan 24 '23 09:01 gep13

@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.

carlistixx avatar Feb 06 '23 21:02 carlistixx