|
|
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):
- the acceptance and oversight of new products submitted or proposed to
become part of the Foundation;
- providing guidance and ensuring that subprojects under its purview
develop products according to the Foundation's philosophy and
guidelines for collaborative development; and
- regularly evaluating products under its purview and making the
determination in each case of whether the product should be
abandoned, continue to receive guidance and support, or proposed to
the board for promotion to full project status as part of an existing
or new Foundation PMC; and be it further.
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 :
- new projects and sub-projects are developing products according to
the ASF's philophy and guidelines for collaborative development;
- the ownership of any code initially submitted by the project is
formally and legaly transferred to the ASF; and
- only those products that meet the Apache's requirements are fully
accepted into the ASF.
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
- be nominated for incubation by a member of the Apache Software
Foundation ("The Champion"); and
- be approved by a Sponsor.
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 the Incubator
PMC take on the Candidate as a new Podling. The request,
which should be sent to the Incubator PMC on the
general list,
MUST contain the following information:
- a reference to the results of the vote (so as to provide an audit
trail for the records);
- a reference to the Candidate's proposal;
- the Mentors, nominated by the Sponsor, who will guide the Candidate
through the Incubation Process. At least one nominated Mentor MUST be
a member of the Apache Software Foundation.
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.
Once a proposal has been accepted
and the podling created
a Mentor SHOULD initiate the creation of:
Your project's mentors are able to undertake many of the setup
tasks. 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.)
Your project committers/PPMC members need to become familiar with
the ASF Infrastructure information
and in particular the
PMC notes.
Also see the Incubator PMC Guide.
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/site-author/projects/
and so become available at
http://incubator.apache.org/projects/
The "project status" document SHALL include the following minimum
content :
- status of setup tasks;
- all exit criteria (see
Exiting the Incubator);
- status of Podling against exit criteria.
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:
- that the Podling be Terminated;
- that the Podling continue in Incubation; or
- that the Podling be Graduated from Incubation.
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 original assessment;
- the request for review to the Incubator PMC;
- the response from the Incubator PMC; and
- the reason the Podling and/or Mentor still dispute the report.
The Board of the Apache Software Foundation MAY, after reviewing the
appeal, choose to
- ammend the incubation Assessment;
- validate the assessment of the Incubator PMC; or
- take any other action it deems appropriate to the circumstance.
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.
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),
and only the PPMC member
votes are binding. 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 :
- the release archive MUST contain the word "incubating" in the
filename; and
- the release archive MUST contain an Incubation disclaimer (as
described in the previous section), clearly visible in the main
documentation or README file.
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 :
- it is a worthy and healthy project;
- it truly fits within the ASF framework;and
- it "gets" the Apache Way.
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 :
-
Legal
-
- All code ASL'ed
- The code base must contain only ASL or ASL-compatible dependencies
- License grant complete
- CLAs on file.
- Check of project name for trademark issues
-
Meritocracy / Community
-
- Demonstrate an active and diverse development community
- The project is not highly dependent on any single contributor
(there are at least 3 legally independent committers and there is no
single company or entity that is vital to the success of the project)
- The above implies that new committers are admitted according to ASF
practices
- ASF style voting has been adopted and is standard practice
- Demonstrate ability to tolerate and resolve conflict within the
community.
- Release plans are developed and excuted in public by the community.
-
- (requirement on minimum number of such releases?)
- Note: incubator projects are not permitted to issue an official
Release. Test snapshots (however good the quality) and Release
plans
are OK.
- Engagement by the incubated community with the other ASF communities,
particularly infrastructure@ (this reflects my personal bias that
projects should pay an nfrastructure "tax").
- Incubator PMC has voted for graduation
- Destination PMC, or ASF Board for a TLP, has voted for final
acceptance
-
Alignment / Synergy
-
- Use of other ASF subprojects
- Develop synergistic relationship with other ASF subprojects
-
Infrastructure
-
- SVN module has been created
- Mailing list(s) have been created
- Mailing lists are being archived
- Issue tracker has been created
- Project website has been created
- Project ready to comply with ASF mirroring guidelines
- Project is integrated with GUMP if appropriate
- Releases are PGP signed by a member of the community
- Developers tied into ASF PGP web of trust
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.
The list below summarizes steps a project needs to perform after
graduation to move out of the Incubator.
PPMC
refers to the old PPMC for the graduating project,
PMC
refers to the new PMC under which the graduating project falls (this
might be the former PPMC for a new TLP), and
Project
refers to the committers on the graduating project.
- Move svn repository from incubator to its new location
- PMC sends email to infrastructure@ and opens a JIRA issue requesting
that infrastructure move the svn repository.
- PMC updates the svn-authorization files to provide committers access
to the newly-named repositories.
- Project verifies all committers have commit access.
- Project removes incubator disclaimer notices.
- Migrate web site
- PMC emails root@ and opens a JIRA issue requesting UNIX karma for
committers to access new location on people.apache.org.
- Project verifies all committers know how to and have karma to update
the new web site.
- Project checks out/deploys the files in the new location.
- PPMC redirects old incubator URL to the new one by editing
https://svn.apache.org/repos/asf/incubator/public/trunk/site-publish/.htaccess .
- Project verifies the redirect works, then deletes old stuff at
/www/incubator.apache.org/${PROJECT} .
- PPMC updates http://incubator.apache.org/projects/projectname.html
with graduation status and link to new website location.
- Cleanup incubator
- PPMC updates http://incubator.apache.org/projects/index.html project
from "Currently Incubating" to "Successfully Incubated" table.
- Update JIRA/Bugzilla
- PMC emails infrastructure@ requesting that information for the
project be updated.
- Migrate mail lists:
- PMC sends email to infrastructure@ and opens a JIRA issue requesting
that the mailing lists and archives be migrated
- If the graduating project wants to send out a press release, it must
be cleared with the PRC.
Additional steps for a TLP include:
- A new TLP needs board approval. The PPMC creates a proposal including
a proposed PMC chair and sends that to the board.
- The ASF Chairman sends out an official notice that the board has
approved a new TLP.
- PMC may then notify infrastructure@ about the new TLP so they can add
DNS entries (and anything else).
- The mentor or other member updates www.apache.org to add a link to
the new TLP web site.
- The mentor or other member adds the new PMC to the board reporting
schedule (update the committee.txt file).
- The new TLP must send monthly board reports for three months after
approval.
Resources include:
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:
- the Board of the Apache Software Foundation;
- a Top Level Project (TLP) within the Apache Software Foundation
(where the TLP considers the Candidate to be a suitable sub-project);
or
- the Incubator PMC.
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.
|
|