The Commons Incubator would act as a "perpetual podling" or "mini-Incubator" overseeing the influx of components to be adopted into Apache Commons.

BACKGROUND

Apache Commons, a conglomerate of smallish Java libraries, lacks a good procedure for importing preexisting codebases.

RATIONALE

The typical ASF top-level project (TLP) absorbs code donations by means of a software grant. Clearly delineated subprojects (usually partially or completely dependent on the TLP) often enter instead through the Incubator. Commons, as a project that has no code other than that of its subprojects, is essentially a microcosm of the ASF itself. Commons has long offered a sandbox area for the development of new ideas, similar to the approach now taken in Apache Labs. With regard to the creation of new subprojects from preexisting codebases, however, the PMC is in agreement that procedures similar to those in practice in the ASF Incubator are more appropriate than the software grant approach, given that the Incubator has already formalized much the same process as would need to be taken to guarantee the acceptability of donated code. Unfortunately the processes of the Incubator proper are not a perfect fit.

With regard to community exit requirements, a typical podling requires a heterogenous community of three or more developers. Commons is an open community in the sense that all Commons committers have karma to all components, thus any component to graduate into Commons proper inherits an existing, diverse community. This greatly mitigates any component's risk of orphanhood. The PMC envisions Commons' incubator space as functioning in a manner similar to that in which its development sandbox currently operates: all ASF committers are welcome to participate in the Commons sandbox, and would be welcome to contribute to incubating components, subject to a natural consensus-building process. Active contributors to graduating components would be accepted into the project as full Commons committers with shared karma.

Another aspect of existing Incubator practices that is suboptimal for Commons' requirements is that, a Commons component being a relatively small entity, it is difficult to justify expending the same effort to set one up as would typically be required for a normal-sized podling. For this reason it would be advantageous to keep incubating Commons components under a single Subversion tree, and as subcomponents of a single JIRA project. Finally, the existing Commons communications lists could be utilized. Component setup would thus be minimal.

Having established that setting up a Commons Incubator separate from the Apache Incubator would be counterproductive and quite a duplication of effort, Commons would like to see established on its behalf a "special case" podling or miniature Incubator whose exit criteria parallel those Commons uses to gauge the propriety of a sandbox component's promotion to "proper" status, namely:

The component is ready for its first ASF release.

At least three people are available for development/maintenance.

All Incubator legal checks have been passed.

INITIAL GOALS

Prove/hone the Commons Incubator approach on several candidates that have been proposed as new Apache Commons subprojects, and for which a PMC vote indicates willingness to incubate.

CURRENT STATUS

(Applicable at incubating component level)

Meritocracy:

Community:

Core Developers:

Alignment:

KNOWN RISKS

(Where applicable, at incubating component level)

Orphaned Products:

N/A

Inexperience with Open Source:

Homogenous Developers:

N/A

Reliance on Salaried Developers:

N/A

No Ties to Other Apache Products:

A Fascination with the Apache Brand:

DOCUMENTATION

(Applicable at incubating component level)

INITIAL SOURCE

(Applicable at incubating component level)

EXTERNAL DEPENDENCIES

Optimally any non-optional dependencies for Commons components will be other Commons components. Failing that, normal ASF third-party licensing policies to be enforced.

REQUIRED RESOURCES

Mailing Lists:

Commons lists

Subversion Directory:

Umbrella under Commons or Incubator

Issue Tracking:

JIRA project with subcomponents to be managed by Mentors a la Commons Sandbox