Hi, Based on earlier discussion [1] I would like to propose that we start a new "Apache JCR Commons" subproject within Jackrabbit. See below what this could mean in practice. As usual, comments are welcome!
COMPONENTS The JCR Commons subproject would take over the development and maintenance of the following components: * jackrabbit-jcr-commons * jackrabbit-jcr-tests * jackrabbit-jcr-benchmark * jackrabbit-jcr-rmi * jackrabbit-jcr-servlet * jackrabbit-webdav * jackrabbit-jcr-server * jackrabbit-classloader * jackrabbit-ocm * jackrabbit-ocm-nodemanagement This would leave the jackrabbit-core component and the deployment packages (webapp, jca, standalone) as the clear core of the remaining Jackrabbit repository project. For now I think the SPI layer is so close in scope to the repository implementation that we should keep it close to the core. The text-extractors component has very limited use outside Jackrabbit (especially now that Apache Tika is available), so I'd keep it with the repository implementation until we can phase it out entirely in favor of using Tika. Everything else goes to the JCR Commons subproject. Note that the webdav component is a bit special in that it actually doesn't have much to do with JCR, so eventually it might be useful to find a good home for it for example in Apache HttpComponents. Anyway, for now I think the best home for it is still within Jackrabbit, and by moving it to the commons subproject we give it a better chance to evolve without ties to the Jackrabbit core release cycle. COMMUNITY * Committers: For now there will be just a single set of Jackrabbit committers. Later on we may want to consider adopting a "subproject committer" concept for making it easier to grant someone committership to just the commons components. * PMC: The Jackrabbit PMC will govern also this new subproject. DEVELOPMENT * Initial code: The initial code for the new subproject would come from the selected existing components in Jackrabbit trunk. * Releases: Each component within the new subproject would have it's own independent release cycle. To avoid confusion with the existing 1.x releases, the release numbering of the moved components would start at 2.0. Since all these components are relatively small and tightly scoped, it would probably be useful to keep their version numbering down to just two levels, i.e. use x.y instead of x.y.z as the numbering scheme. INFRASTRUCTURE * Web site: The subproject will have its own web site at http://jackrabbit.apache.org/commons/. We might want to follow the example of Apache Commons in organizing this web site. * Mailing lists: We create the following new mailing lists for the subproject: commons-{user,dev,[EMAIL PROTECTED] Again, following the example of Apache Commons in how to organize the mailing lists (for example use a [rmi] subject prefix for all messages regarding JCR-RMI) is probably a good idea. * Subversion: We create a new asf/jackrabbit/commons directory that will contain all the code of the new subproject. Each component will have it's own {trunk,branches,tags} structure within this subtree. For example, the JCR-RMI component would be developed in asf/jackrabbit/commons/jcr-rmi/trunk. All Jackrabbit committers will have write access to this subtree. Notifications of commits to this subtree will be sent to the new commons-commits@ list. * Issue tracker: We create separate Jira projects for each component in the subproject. These projects will be grouped using a new "JCR Commons" category in Jira. Update messages will be sent to the new commons-dev@ list. [1] http://markmail.org/message/dmvi7dtjeknkiuzl BR, Jukka Zitting