Paket: Package manager for .NET and Mono
fsprojects.github.ioI hate to be a Negative Nancy, but wouldn't it be easier to Just Fix NuGet? I don't think that any of the problems being solved here are fundamentally incompatible with being fixed in NuGet (though I could be wrong).
How to get Paket
Paket is available on NuGet. To install the tool, run the following command in the Package Manager Console:
PM> Install-Package Paket
Oh no, don't give us another Python easyinstall mess; you need a package manager to get another package manager to get a third package manager. Well, at least it's not called "easy install" because that's exactly what it's not unless you already have everything installed. The whole purpose of a package manager is to avoid dependency mess and instead we get another 2 links in the chain that has to be installed manually.My answer to the main question in the faq, "Why do I need Paket instead of nuget?" (my paraphrase) is this: meh. NuGet's behavior simply doesn't cause me that many problems, and when it's a superbigdeal I can just get a git submodule and be on my merry way. The one killer feature I want is an easy way to convert a downloaded NuGet package into a folder of the latest sources.
And hey: NuGet is open-source.
The front page doesn't answer THE question, why would I use Paket instead of NuGet. Realistically in the .NET ecosystem, once Microsoft introduces a passable product (such as NuGet) the chances of any alternative to gain adoption are veeery swim.
See the faq : http://fsprojects.github.io/Paket/faq.html
Sure, in these long, cold winter nights what else is one to do...
If you have any analytics, compare the number of visitors to the main and to faq pages ...
Why not address these issues directly in nuget rather than building another layer on top?
If you want to add a killer feature to this, add better handling for non-referenced dependencies. By non-referenced I mean they don't exist as a project reference like a dll would. For example, if you're doing a web project and you depend on say angular. Angular isn't added as a project reference. Nuget/Visual Studio do all kinds of oddities to work around this. Unless there is already a solution to this that I don't know about (besides using two different package managers).
How does this differ from asp.vnext's kpm?
One thing I wish NuGet would do - let me download packages directly from Github, like Bower and Grunt do. I do use Bower and Grunt with ASP.NET but usually mixed with some NuGet packages. It would be nice to have one system for all.
Visual studio just added support for Bower and Grunt[1]. I'm thinking that might help us separate the ecosystem again -- nuget for server-side, bower/grunt for client-side.
[1] http://www.hanselman.com/blog/IntroducingGulpGruntBowerAndNp...
Wouldn't git submodules work for that? Assuming you use git for your own repo.