The incubator.apache.org project is dedicated to facilitating the smooth entry of valid new and donated code bases and community projects into the Apache Software Foundation. It is managed in cooperation with various individuals worldwide (both independent and company-affiliated experts), who use the Internet to communicate, plan and develop incubation processes and procedures.
What this charter is about
This charter briefly describes the mission, history, organization, and processes of the project.
incubator.apache.org exists to provide an entry path into Apache for new code bases and community projects (hereafter referred to as "products"). The Apache Software Foundation is a community of developers that promotes a set of values and ideals in software development. The incubator projects exists to help new projects adapt to the ASF, and to ensure that such projects are functioning in the "Apache way" before being released fully into the Foundation.
incubator.apache.org defines a set of processes and guidelines that can be used by Apache members and projects sponsoring a new code base into the foundation. A minimal set of core processes are defined that are mandatory for all new code bases to follow. The incubator project also helps in providing the infrastructure necessary for new projects and code bases to transition into the ASF. Finally, the incubator provides a core set of committers who can assist sub-projects through the incubation process.
The incubator makes no judgement, and defines no processes that would judge the technical merits of the products being incubated. The purpose of incubation is to ensure developers of new code bases are meeting the community ideals of the Foundation, not to determine the relative technical merits of any particular product.
This project was established under the direction of the Apache Software Foundation in October 2002 to facilitate joint open-source development.
The ASF Board
The management board of the Apache Software Foundation.
The Apache Incubator Project, referred to in this document as "incubator.apache.org" or "the incubator.apache.org project".
incubator.apache.org is comprised of a number of subprojects; a subproject represents a product currently going through the incubation process.
Anyone who makes a contribution to the development of the incubator.apache.org project or a subproject.
Each subproject has a set of committers. Committers are contributors who have read/write access to the source code repository.
Each product going through incubation must have an assigned ASF member who is responsible for guiding the product through the process and ensuring that the product is meeting its incubation requirements.
THE PROJECT MANAGEMENT COMMITTEE
5.1 The incubator.apache.org project is managed by a core group of contributors known as the Project Management Committee [PMC].
5.2 The activities of the PMC are coordinated by the Chairperson, who is an officer of corporation and reports to the Apache Board. The Chairperson will, on the request of the Apache Board, provide reports to the Board on issues related to the running of the incubator.apache.org project.
5.3 The PMC has the following responsibilities:
- a) Accepting new products for incubation.
- b) Facilitating code or other donations by individuals or companies, in collaboration with the relevant ASF projects or individuals.
- c) Approval of processes and procedures developed for the purpose of incubation.
- d) Assisting in resolving queries and issues raised by projects in incubation.
- e) Providing a repository for the history of incubated projects and lessons learnt.
- f) Assisting in the resolution of license issues and other legal issues associated with projects being incubated in conjunction with the ASF board and the sponsoring ASF project and/or sponsor.
- g) Ensuring that administrative and infrastructure work is completed.
- h) Facilitating relationships among projects and subprojects.
- i) Facilitating relationships between incubator.apache.org and the external world.
- j) Overseeing incubator.apache.org to ensure that the mission defined in this document is being fulfilled.
- k) Resolving conflicts within the project.
- l) Reporting to the ASF board (through the Chair) on the progress of the project.
5.4 Contributors of the Incubator project can nominate at any time, and when they feel necessary, individuals for election to the Incubator PMC.
5.5 Every 12 months, the PMC will provide a recommendation to the Apache Board for the position of Chairperson of the PMC.
5.6 This recommendation will be made on the basis of an election held within the PMC. The election will be performed using a simple majority vote of PMC members.
5.7 Upon agreement by the Apache Board, the recommended Chairperson will, if they are not already, be appointed an officer of the corporation. See http://www.apache.org/foundation/bylaws.html for more information.
5.8 In the unlikely event that a member of the PMC becomes disruptive to the process, ceases to make contributions for an extended period, or ceases to take part in PMC votes for an extended period of time, said member may be removed by unanimous vote of remaining PMC members.
5.9 The PMC is responsible for maintaining and updating this charter. Development must follow the process outlined below, so any change to the development process necessitates a change to the charter. Changes must be unanimously approved by all members of the PMC. A contributor may challenge a change to the charter at any time and ask for a vote of all incubator.apache.org active committers, in which case a two-thirds majority must approve the change.
6.1 incubator.apache.org is made up of sub-projects, representing the products going through the incubation process. Such sub-projects are associated with the Incubator until such time as they :
- a) get closed down due to incubation failure;
- b) leave the incubator to become sub-projects of another ASF project; or
- c) leave the incubator to become full projects under the ASF.
6.2 New sub-projects are created within the Incubator when a sponsoring project (in cases where the sub-project will ultimately be owned by that project) or the board (in cases where the the sub-project will become a full Apache project) so request. Such requests may only occur when the sponsoring entity has accepted (through an appropriate formal voting mechanism) that the product in question will fall under the purview if and when it completes the incubation process.
6.3 Sub-projects may be removed only on the request of the sponsoring project or the board.
6.4 It is the responsibility of the sponsoring entity to define the rules under which they will sponsor a project through the incubation process.
7.1 Incubation Mentors ("Mentors") are members of the ASF who have been nominated to assist a product through the incuation process. They are responsible for ensuring that all necessary incubation processes are followed, and will report to the sponsoring entity on the progress of the product.
8.1 Like all Apache projects, the incubator project is a meritocracy –
the more work you do, the more you are allowed to do. Contributions will include participating in mailing lists, reporting bugs, providing patches and proposing changes to a product.
8.2 There are two types of contributors in the Incubation project. Contributors working on a sub-project going through the incubation process, and contributors working on the processes and procedures for the Incubation project itself.
8.3 Developers who make regular and substantial contributions may become committers as described below.
9.1 Each subproject has a set of committers. Committers are contributors who have read/write access to the source code repository. New committers are added when a contributor is nominated by a committer and approved by at least 50 percent of the active committers for that subproject with no opposing votes. In most cases, new committers will already be participating in the development process by submitting suggestions and/or fixes via the bug report page or mailing lists.
9.2 For the purposes of voting, committers will be classed as "active" or "inactive". Only active committers will be included in the totals used to determine the success or failure of a particular vote.
9.3 Committers remain active as long as they are contributing code or posting to the subproject mailing lists. If a committers has neither contributed code nor posted to the subproject mailing lists in 3 months, the PMC representatives for that subproject will e-mail the committer, the subproject development list, and the PMC mailing list notifying the committer that they are going to be moved to inactive status. If there is no response in 72 hours, the committer will become inactive.
9.4 An inactive status will not prevent a committer committing new code changes or posting to the mailing lists. Either of these activities will automatically re-activate the committer for the purposes of voting.
PROCESSES AND STANDARDS
10.1 In addition to supporting products going through the incubation process, the Incubator is charged with the creation of processes and procedures that support incuation.
10.2 Two types of processes can be created by the Incubator :
- a) Mandatory Processes. These are processes that must be followed by products going through the incubation process. Incubation shepherds will be responsible for ensuring that such processes are followed.
- b) Assisting Processes. These are processes that are created to assist the incubation shepherd. Shepherd may choose to follow or ignore such processes as best fits the product being incubated.
10.3 The Incubator may also create other standards that assist the shepherd in performing their activities.
11.1 The incubator.apache.org project site must provide the following:
a) Bug Database – This is a system for tracking bugs and feature requests.
b) Subproject Source Repositories – These are several repositories containing both the source code and documentation for the subprojects. Each subproject will have a set of committers to its repository.
c) Website – An incubator.apache.org website will contain information about the incubator.apache.org project, including documentation, and this charter. Each subproject going through the incubation process will have its own website with subproject information. Sponsoring projects may provide links to these sub-project websites from their own pages.
d) PMC Mailing List – This list is for PMC business requiring confidentiality, particularly when an individual or company requests discretion. All other PMC business should be done on the general mailing list.
e) General Mailing List – This mailing list is open to the public. It is intended for discussions that cross subprojects.
f) Subproject Mailing Lists – Each subproject should have a devoted mailing list. Many subprojects may wish to have both user and development lists. The individual subprojects may decide on the exact structure of their mailing lists.
Part of the Incubation process is to ensure that all incubated projects adhere to the "ASF Source Code License" prior to their leaving the incubator. All further contributions must be made under the same terms.
THE DEVELOPMENT PROCESS
13.1 The development process is intentionally lightweight; like other Apache projects, the committers decide which changes may be committed to the repository. Three +1 ('yes' votes) with no -1 ('no' votes or vetoes) are needed to approve a code change. For efficiency, some code changes from some contributors (e.g. feature additions, bug fixes) may be approved in advance, in which case they may be committed first and changed as needed, with conflicts resolved by majority vote of the committers.
QUESTION: Necessary? This should be a process/standard for incubation.
14.1 Each subproject must have a set of requirements as well as an up-to-date release plan and design document on its dedicated web page.
14.2 It is recommended that each subproject have a smoke-test system that works at least as a basic integration test.
RELATIONSHIP TO OTHER APACHE PROJECTS
15.1 The incubator.apache.org project must work closely with other Apache projects. The incubator holds responsibility for the development of processes and procedures that will be used by all other areas within the ASF. As such, the incubator.apache.org project needs to ensure that all such processes are acceptable to, and useable by, the wider ASF community.