Hi All, I'll take an initial "stab" at this. This is just my initial thoughts/brainstorms, but I could be convinced otherwise :)
On 5/5/2011 10:15 AM, Robin Taylor wrote: > Hi all, > > I just wanted to bring up one area that we didn't really touch on in the > developer meeting viz. the management of modules. For the sake of > argument lets assume we did move much of the code into discrete external > modules, are we in agreement about how we would manage these modules ? > > 1. Who would have commit rights to the various modules ? Bear in mind > that currently more than just the committers have commit rights to some > modules. Not a bad thing in itself but something to consider. In my mind, there are (at least) two "types" of module projects: 1) Third-Party "Plugin" modules -- these are modules which are *not* distributed "out-of-the-box", and in fact are not even centrally controlled by Committers (any third-party entity can create and distribute a 'plugin'). 2) "Official", "centrally controlled" modules/projects -- these are modules which are distributed "out-of-the-box", and/or have some level of centralized control (e.g. they are vetted, tested, approved and released centrally by the Committers). So, for some basic examples: * Currently, I'd consider the REST API to still be an "Third Party Plugin", which is still primarily under development by a 'third party entity' (in this case, it's really primarily Bojan). It hopefully will undergo a transition into a centrally controlled, "Official" module in near future, wherein it would then become vetted, accepted, and released as part of DSpace (or as an optional part of DSpace). * Currently, I'd consider 'dspace-discovery', 'dspace-solr', 'dspace-stats' and 'dspace-services' to be "Official Modules". These are all currently released "out-of-the-box" (even if some are disabled by default and optional to enable). They all also undergo a formalized Testathon & release as part of DSpace. Therefore, these should be considered vetted, tested, approved & released by the Committers. You'll notice, I mentioned the ability to *transition* between module types. I think this will become even more important in the future. We've already seen some modules make this transition, e.g. Discovery was initially a "Third Party Plugin" (controlled/developed entirely by @mire), but transitioned into an "Official" module during the DSpace 1.7.0 release when it was officially accepted/adopted by the Committers. > 2. Who would decide when a module should be released ? Based on the type of module, I think it's the group or entity that 'controls' that module. Third-party Plugin modules are released by the third-party person/group who is working on them. But, in my opinion, "official" modules should *always* be released by the Committers (after they have undergone official vetting, testing, approval). There may be some "gray areas" here, where we need to decide whether others (non-committers) could actually continue to help develop on "official" modules. But, I feel that even if others help with development of "official modules", the official *vetting* and *releasing* should be performed by a Committer. > > 3. Who would do the release ? Again, I'd say whoever 'controls' the module. In the case of "official" modules, it'd likely be either the DSpace Release Coordinator, or maybe we would designate a "Release Team" (in which case it would be someone who is officially a member of that Release Team who would be designated to release a particular module). > > I think this goes to the heart of how we see the project > developing. Does it remain under control of the existing committers > group or does it become more of an Eclipse type framework where > different interest groups maintain and manage their own modules. I'm not sure if all will agree with me. But, as you can tell above, I feel the existing Committers group needs to maintain some level of control over those "official" modules. At this point in time, I'm not sure we have enough highly active developers to make up "different interest groups" around different modules. However, as implied above, we should start to *enable* people to form their own interest groups and create their own 'third party plugins'. If some of those groups become highly active and build amazing 'third party plugins', that'd be *wonderful* (and we could then determine if we wanted to give those groups even more 'control'). But, until we see that happen, I think it is within our best interest to keep some level of 'centralized' Committer control (while also enabling others to build their own third-party plugins as they see fit). Again, just my opinions here (please feel free to disagree/agree with me, as I feel this is something we should discuss openly and decide upon together). - Tim ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd _______________________________________________ Dspace-devel mailing list Dspace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dspace-devel