- Incubation Policy
- Entry to Incubation
- Incubation Activities
- Podling Constraints
- Graduating from the Incubator
- Roles Defined
In October 2002 the Board of Directors of the Apache Software Foundation passed a resolution creating the Apache Incubator PMC (referred to as the "Incubator PMC" in this document) charged with "accepting new products into the Foundation, providing guidance and support to help each new product engender their own collaborative community, educating new developers in the philosophy and guidelines for collaborative development as defined by the members of the Foundation, and proposing to the board the promotion of such products to independent PMC status once their community has reached maturity" (reference Board Resolution).
The Incubator was tasked with the following responsibilities (reference Board Resolution):
This document is the normative reference for the policies and procedures put in place by the Incubator PMC for the Incubation process, which is used by the Incubator PMC to discharge their duties as described above.
It contains the minimum requirements that all new products and projects must meet before they will be fully accepted into the Apache Software Foundation.
The document makes use of the terms MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL. Where capitalised, these terms are to be used as per the definitions found in RFC 2119 .
This document contains the minimum requirements and processes that must be met by products and projects wishing to become part of the Apache Software Foundation.
This document does not apply outside the process of Incubation. Policies and processes that need to be met by products under incubation are not mandated (by this document) for other projects and sub-projects within the ASF.
This document is the normative set of requirements for Incubation. Where other documents are in conflict, this document should be taken as correct.
The contents of this document are formally approved by the Incubator PMC. All changes must be authorised by the Incubator PMC.
To provide a clear path for potential projects and sub-projects within the ASF to move from proposal stage through to fully membership in such as way as to ensure :
The incubation process covers the establishment of a candidate, acceptance (or rejection) of a candidate leading to the potential establishment of a Podling and associated incubation process, which ultimately leads to the establishment or a new Apache Top-Level-Project (TLP) or sub-project within an existing Apache Project.
Please read the guide to the process in conjunction with this policy.
In order to enter the Incubator, a Candidate MUST
To start the approval process, a proposal MUST be submitted to the Sponsor. Please read the Guide For Proposals.
The decision to approve the candidate proposal MUST be taken on a vote by the Sponsor, in accordance with that Entity's charter.
Upon a successful result, the PMC Chair of the Sponsor SHOULD request that the Incubator PMC take on the Candidate as a new Podling.
However when the Sponsor is the Incubator PMC, then they were the group of people who just voted. So the normal vote summary is sufficient.
Otherwise the Sponsor is an existing top-level project PMC, which now needs to notify the Incubator PMC. The request, which should be sent to the Incubator PMC on the general list, MUST contain the following information:
Any Incubator PMC member can send an acknowledgement that the request was received, then a 72 hour waiting period starts. After this time has elapsed and no Incubator PMC member objects, the status file may be committed and the podling started. If any Incubator PMC member says "hold" before the 72 hours are up, a formal discussion/vote will be conducted.
The nominated Mentors MAY be immediately accepted by the Incubator PMC. However the Incubator PMC MAY also suggest replacement Mentors. The Incubator PMC has the final choice of Mentors.
Upon acceptance by the Incubator PMC, the Candidate becomes a Podling under the care of the Incubator PMC.
Upon acceptance by the Incubator PMC, the Podling's Mentor becomes a member of the Incubator PMC (should they not already be one).
The following sections detail the minimum activities that must be undertaken by the various parties during an Incuabation process.
Your project's mentors are able to undertake many of the setup tasks. See the mentor guide for guidelines about the setup process. See notes about how to request project resources such as new committer accounts and new mailing lists. (Note that a committer account will not be created until the Contributor License Agreement (CLA) has been recorded.)
The source code that comes into the ASF as part of the podling project must pass through the IP clearance process; details are in the mentor guide linked above.
The progress of a Podling SHALL be tracked in a "project status" document. This SHALL be stored in http://svn.apache.org/repos/asf/incubator/public/trunk/content/projects/ and so become available at http://incubator.apache.org/projects/
The "project status" document SHALL include the following minimum content :
The Mentors MUST ensure that the "project status" document is up to date at all times. See these instructions .
Each Podling in Incubation SHALL undergo a regular review of progress by the Incubator PMC. Such reviews SHALL occur at least quarterly. The Incubator PMC MAY, at their discretion, choose to review individual Podlings with greater frequency. The Incubator PMC SHALL inform Podlings of review dates at least 4 weeks in advance.
At least one week prior to each review, the Mentor MUST produce a report for the Incubator PMC detailing overall progress with a focus on the preceding review period. It is RECOMMENDED that the report be based on the "project status" document for the Podling.
After each review, the Incubator PMC SHALL produce an Assessment of the project. The Assessment SHALL contain one of three recommendations:
Termination and Graduation are discussed in more detail in section "Graduating from the Incubator".
If the Podling or Mentor disagree with an assessment, they MAY request the Incubator PMC review the report. Such a request MUST include a details of what the Podling and/or Mentor is disputing, and their reasons for doing so.
Upon receipt of an Assessment Dispute, the Incubator PMC SHALL review the request and provide feedback to the Podling and Mentor. Such feedback MAY include a change to the original Assessment.
Should the Podling and/or Mentor still disagree with the contents of the report, they MAY appeal to the Board of the Apache Software Foundation. Such an appeal MUST include
The Board of the Apache Software Foundation MAY, after reviewing the appeal, choose to
The decision of the Board of the Apache Software Foundation is final.
A recommendation by the Incubator PMC for continuation of incubation SHALL include development recommendations. The Incubator PMC SHALL ensure that the recommended actions are tangible and quantifiable.
The Mentor SHALL review the contents of the continuation recommendation and ensure that the development recommendations are carried out over the following review period.
While in Incubation, Podlings are constrained in the actions they can undertake.
Please consult the guide to Podling Branding.
See the guidelines for Podling releases in conjunction with this policy.
Podlings are not yet fully accepted as part of the Apache Software Foundation. No release made by a Podling will be endorsed by the ASF. Unendorsed releases may be made by Podlings subject to the following policy.
Podlings in Incubation SHALL NOT perform any releases of software without the explicit approval of the Incubator PMC. Such approval SHALL be given only after the Incubator PMC has followed the process detailed in these guidelines, and SHALL NOT occur until all source has been legally transferred to the ASF.
Therefore, should a Podling decide it wishes to perform a release, the Podling SHALL hold a vote on the Podling's public -dev list. At least three +1 votes are required (see the Apache Voting Process page). If the majority of all votes is positive, then the Podling SHALL send a summary of that vote to the Incubator's general list and formally request the Incubator PMC approve such a release. Three +1 Incubator PMC votes are required. Below is an example showing how an incubating project managed this process:
Should the Incubator PMC, in accordance with these guidelines vote to approve the request, the Podling MAY perform the release under the following constraints :
Releases for podling MUST be distributed through
In addition, the Podling MAY choose to distribute approved releases through
other channels like the central Maven repository.
The Podling is not yet an Apache project, and it should thus always refer to the Incubator Project Resource usage Guidelines, that are as follows.
Please consult the guide to Podling Websites for the current policies for websites.
This section describes the requirements and process for graduating from the Incubator.
Prior to graduation, a Podling needs to show that :
This is achieved by imposing a set of Graduation Criteria that, when met, will demonstrate these objectives.
Therefore, to successfully graduate from the Incubator into the ASF, a Podling SHALL meet the minimum requirements detailed below. The Incubator PMC MAY set additional requirements at their discretion. Such additional requirements MAY be proposed by the Mentor or the Sponsor, however only the Incubator PMC is authorised to formally place such requirements on a Podling.
The minimum requirements that a Podling SHALL meet prior to being graduated to the ASF are :
If you receive a recommendation for termination then you have a problem. Chances are that there are either legal or structural problems with your project that in the opinion of the Incubator PMC are not resolvable within a reasonable time frame. A termination decision is basically time to close down the project. However, you do have the right to appeal a termination decision with the Board of Directors and/or your Sponsor. You should be aware that several Members of the Board are also Members of the Incubator PMC and as such, an appeal is unlikely to be successful.
In cases where a Podling has successfully completed Incubation, and is graduating from the Incubator to become a Top Level Project, the Incubator PMC SHALL provide a recommendation to the board that the Podling is ready to gradualate. The recommendation SHALL include a draft resolution for the board to vote on.
In cases where a Podling has successfully completed Incubation, and is graduating from the Incubator to become a sub-project within an already existing Top Level Project, the Incubator PMC SHALL provide a recommendation to the TLP that the Podling is ready to graduate.
See Graduation Guide.
Definitions of the roles involved in the Incubation process.
The Project Management Committee is responsible to the Board for administering the Incubator Project in the manner specified in the founding resolution.
The roles and responsibilities of the PMC are described and discussed here.
The person appointed by the Board of Directors to have primary responsibility for oversight of the Incubator Project, its policies, and policy implementation.
A proposal for incubation. Described in detail here.
A Member of the Apache Software Foundation who supports a Candidate's application for Incubation and who supports and assists the Podling through the Incubation process.
A Sponsor SHALL be either:
This role and its responsibilities are discussed here.
A Podling has one or more Mentors, one of which MUST be an Apache Member. Mentors are chosen by the Sponsor to actively monitor the podling, guide the podling in the Apache Way, and report its status to the Sponsor and the Incubator PMC. All Mentors must be members of the Incubator PMC. A Mentor has responsibilities toward the Incubator PMC, the Sponsor, and the community of the assigned Podling.
The candidate shall declare an initial set of committers. On acceptance of a candidate project, the assigned Mentors shall be given access to the Podling's repository for the duration of the incubation process. This is to allow the Mentors to perform their incubation duties, and is for administrative purposes only. To be given full committer privileges, such as the right to add new code to the repository, the Mentor must earn them as would any other potential new committer. In some cases, the Mentor may be part of the initial set of declared committers, but this is not a requirement of the Incubation process.