The NuGet Problem

time to read 1 min | 169 words

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:

  1. RavenDB.Client.FSharp
  2. RavenDB.MvcIntegration
  3. RavenDB.DebugSupport
  4. RavenDB
  5. RavenDB.Core
  6. RavenDB.Embedded
  7. RavenDB.Client
  8. RavenDB.Sharding
  9. RavenDB.NServiceBus
  10. RavenDB.WebApiIntegration
  11. RavenDB.Etl
  12. RavenDB.Replication
  13. RavenDB.IndexReplication
  14. RavenDB.Expiration
  15. RavenDB.MoreLikeThis
  16. RavenDB.Analyzers
  17. RavenDB.Versioning
  18. RavenDB.Authorization
  19. RavenDB.OAuth
  20. 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.