The NuGet Problem
NuGet is a wonderful system, and I am very happy to be able to use and participate in it.
Unfortunately, it has a problem that I don’t know how to solve. In a word, it is a matter of granularity. With RavenDB, we currently have the following packages:
- RavenDB
- RavenDB.Embedded
- RavenDB.Client
The problem is that as we have some features that uses F#, we have some features that uses MVC, we have a debug visualizer for VS, we have… Well, I think you get the point. The problem is that if we split things too granularly, we end up with something like:
- RavenDB.Client.FSharp
- RavenDB.MvcIntegration
- RavenDB.DebugSupport
- RavenDB
- RavenDB.Core
- RavenDB.Embedded
- RavenDB.Client
- RavenDB.Sharding
- RavenDB.NServiceBus
- RavenDB.WebApiIntegration
- RavenDB.Etl
- RavenDB.Replication
- RavenDB.IndexReplication
- RavenDB.Expiration
- RavenDB.MoreLikeThis
- RavenDB.Analyzers
- RavenDB.Versioning
- RavenDB.Authorization
- RavenDB.OAuth
- RavenDB.CascadeDelete
And there are probably more.
It gets more complex because we don’t really have a good way to make decisions on the type of assemblies that we add to what projects.
As I said, I don’t have an answer, but I would sure appreciate suggestions.

Comments
Comment preview