Orthogonally to the process open dev / release, we have the notion of two different uses of Configurations. I call them the Projects vs the Dependencies style.
Let us look at these two uses. I will take an example that is not in Moose but we can see the exact same problems in Moose.
There is a parallel with XMLSupport (a group loading XMLparser, writer, SIXX, Pastell.... and XMLParser, XMLWriter
XMLSupport is a "Project" configuration: it is a convenient way to group and load (in particular it expresses dependencies to clients of XML) so the relation is not I load Sixx because I dependent on it. More I load it because I want to optionally offer it.
XMLParser is a "Dependencies" configuration: to parse XML we need OrderedPreservingDictionary, Bitmap... if we do not load them we cannot get XMLParser working.
Why this difference is important: When you want to build a tool using the XMLParser you do not want to get SIXX. pastell when you do not need it.
Based on this analysis we see that
PetitParser project, MooseIDE project are Projects while PetitParser (the package), MooseCore (the package) are dependencies configuration.
Now the problem is that we do not have a simple way to express the dependencies at the level of a package. Because when coding the XMLParser package you would write that it depends on SIXX.
Christophe is working on a prototype to get package dependencies expressed at the package level and he will present that at ESUG but this is not ready to use.
Now we could (but this is a lot of work) add a configuration"Dependencies" to any package. These dependencies would be really simple. We already have that for Traverser, Merlin, RoelTyper and many others.
This way we could have - Project configurations - Dependencies configurations
Now I would like to see is do we do it? Would be good to have different names to identify these configurations clearly. Or at least have a description that clearly say it.
Stef