I've been wondering recently how to distinguish the (Maven) subprojects under trunk that are ready for use vs. those that are still under development.  In fact, it's not even only the source organization, as our release binaries have included all projects (regardless of their state).  I've tried to note the status in the documentation, but I think that is insufficient and we need something that is more formal, obvious, and intuitive for users.

The 0.3 release included several projects that were not really "ready for use":
  • dna-sequencer-cnd
  • dna-sequencer-esbMessage
  • dna-sequencer-jbpm-jpdl
  • dna-connector-svn

And since the 0.3 release we have started (or will so be starting) several new subprojects:
  • dna-connector-store-jpa
  • dna-connector-jdbc-metadata (soon to be created)

So, here's my proposal:  we'd create in SVN a new "sandbox" directory under the "trunk" directory, and in this area is generally where subprojects would live until they are "mature enough" to move outside of the "sandbox".  In some cases, "mature enough" means that they are indeed complete, while in other cases they may be far enough along and there's commitment to finish them before the next release.  I'd anticipate that we'd be flexible on what "mature enough" means and decide on a case-by-case basis as a community when a sandbox project is "mature enough" on a case-by-case basis (although ultimately the project lead would have the final say).  However, sandbox projects would be excluded from the binary release assembly (but maybe included in the source assembly?) and would not be mentioned in the Getting Started document, and all mentions in the Reference Guide would be moved to a new chapter covering the sandbox.

Also, with this proposal, I'd think we would still keep all of the sandbox projects in our development environments (unless other wise requested by a project's developers).  And these sandbox projects would still included in the Maven builds and Hudson CI jobs.

Here's a strawman list of existing extensions that could be moved into the "sandbox", based purely upon my understanding of where these projects are and the plans to complete them by 0.4:
  • dna-classloader-maven (complete, but to be of any use it really needs additional components, like perhaps a Maven or SVN connector)
  • dna-sequencer-cnd
  • dna-sequencer-esbMessage
  • dna-sequencer-jbpm-jpdl
  • dna-connector-jdbc-metadata (soon to be created)
  • dna-sequencer-jdbc-metadata (actually, this is to be removed)

These projects would stay in "trunk", since they are planned to be completed for 0.4:
  • dna-connector-svn
  • dna-connector-store-jpa

Forgive me if my understanding of the state of these projects is wrong.  If that's the case, please speak up and correct me.

So, what do you think of this proposal?  Please weigh in with your thoughts and opinions about the proposal and the suggested list of "sandbox" subprojects.

Best regards,

Randall