Your Feedback about the Roslyn CTP NuGet Package?
As part of the Roslyn CTP in October 2011 we’ve published the core compiler and services binaries as a NuGet package:
https://nuget.org/packages/roslyn
Right now the Roslyn package adds references to the six core assemblies:
- Roslyn.Compilers
- Roslyn.Compilers.CSharp
- Roslyn.Compilers.VisualBasic
- Roslyn.Services
- Roslyn.Services.CSharp
- Roslyn.Services.VisualBasic
I’d like to gather suggestions and other feedback about this package. How can we improve?
The main piece of feedback we’ve heard so far is more fine-grained definition of what layers are needed:
- consumers don’t always need both C# and Visual Basic support
- consumers don’t always need the Services layer (Compiler layer is enough)
Hence it would probably make sense to split the main package into several dependent packages, but then it gets a little complicated. We’d have to publish 8 packages and then the consumer could pick one “top” package which would then pull down all the dependencies it needs and nothing else):
It looks like we’re not the first to ask these questions:
- https://ayende.com/blog/155169/the-nuget-problem
- https://dhickey.ie/post/2012/03/12/NuGet-Packages-Coarse-grained-vs-fine-grained-and-sub-dependencies.aspx
The consensus on this one seems to be that fine-granular is OK and as long as we publish updates to all subpackages simultaneously there shouldn’t be a problem.
Your feedback and ideas about this issue and other suggestions are welcome!
Comments
Anonymous
April 16, 2012
What exactly is saved by splitting into the dlls? A few hundred kilobytes of disk space in some obscure scenarios? Just keep it simple and put everything in a single DLL. You're always going to be shipping them together anyways. Where is the benefit of splitting them? Does .net really perform better when there's less meta-data to scan thru at run time or something? The extra complexity can only cause trouble.Anonymous
April 17, 2012
I could see why people might want to break each compiler up but if you want the services you get the whole enchilada. So maybe:
- [Everything]
- [Roslyn.Compilers.CSharp]
- [Roslyn.Compilers.VisualBasic]
- [Roslyn.Compilers]