This is essentially the same case as, say, Wagon, or SCM.
Basically what we do there is have a bunch of providers that we
release alongside the API, but it is possible to create your own
separately. Of course, we could do each one individually - but that
has never really made sense in practice. It may start to over time as
we find we are releasing just for a particular provider, though.
- Brett
On 14/12/2007, at 7:25 AM, Shane Isbell wrote:
I wanted to break this off from the IT thread, where Brett had
raised the
issue of releasing plugins and core separately. I wanted to point
out a
particular nuance of NMaven. There is a concept of core components,
these
contains things like the CompilerContext, the AssemblyInfoContext and
various interfaces. Like Maven, there are, of course, plugins, the
compiler
plugin being one example.
But there is also a concept of extensions (or annotated implementation
classes), in which the contexts from the core will delegate
(IoC) to extensions like the ClassCompiler interface implementations
for
compiling say C# or VB.NET. There are also other extensions for
generating
the assembly info file based on the language and I expect others to
emerge. What this means is that there may be a version both of core
artifacts and of the compiler plugin, and yet the developer is still
able to
modify the behavior of the current compilers or to add new ones,
without
needing the re-release the compiler plugin or core components. These
extensions sit right in the middle of the components and plugins.
These
extensions are targeted toward third-party framework developers and
make it
easier to add support for new languages. I'm wondering whether the
extensions need to be broken apart and released separately as well.
Shane