Governance/Approved/NewProjectProcess

= OpenStack Project Expansion Process = Time:  2011-03-10

Drafter:  JonathanBryce

Status:  Approved

New Project Addition
The OpenStack community is focused on producing open source cloud software. It was founded with two projects: Compute (nova) and Object Storage (swift). Over time, additional projects will be added that contribute to the mission of OpenStack.

In order to maintain a high standard of quality and a cohesive set of complimentary components, the community needs a defined mechanism for adding additional projects. Some projects will be created with the intention of adding them to OpenStack while some will be existing software projects that would like to transition to the OpenStack community development processes and be under the OpenStack governance model. In either case, the Project Policy Board (PPB) will make the final determination regarding the inclusion of any project as a core OpenStack project. The 2011 Charter and Scope details some of the requirements for core OpenStack projects.

To be included, the project should be directly relevant to the mission of OpenStack. Examples of relevant projects could include alternate cloud storage technologies, cloud networking technologies and other systems that extend, improve, enhance or interact with existing OpenStack projects.

Process

 * 1) Publish the project's source code. The first step is to make the project's source code available publicly. All projects should create a page in the OpenStack wiki and add it into the Related Projects category. It will then appear on the Projects page. The project's wiki page should include a description of the project, links to the project's source code, define what is and is not being proposed for submission as an OpenStack project, and explain any relevant relationships to existing OpenStack projects.
 * 2) Gather community feedback. The response of the existing OpenStack community members to each project will be a contributing factor in evaluating the relevance and quality of that project. The submitter of the proposed project should make an effort to demonstrate the value of the project and encourage the community to provide feedback and initiate discussions with the community through use of the wiki and the OpenStack mailing lists.
 * 3) Evaluation criteria. In addition to the general community feedback, the project will be evaluated on a number of points:
 * 4) * A review of the source code for quality and adherence to OpenStack coding standards
 * 5) * All previous contributors will need to agree to the OpenStack CLA
 * 6) * The resources that will be available to maintain the project. Is there a technical lead and enough developers to move the project forward?
 * 7) * The maturity of the project. Has it been used in production and deployed at scale? Are there existing open source projects that are a better option?
 * 8) * Vision and future of the project. Is there a compelling roadmap with potential to enhance the entire OpenStack project set? Projects are encourage to create a manifesto (e.g. http://antirez.com/post/redis-manifesto.html)
 * 9) Project Policy Board review and decision. The PPB will review the project and the feedback from the community and decide on the inclusion of the project as a core OpenStack project, or optionally as an incubated project.
 * 10) Optional incubation period. If the PPB feels that a project is very relevant and has great potential for advancing OpenStack's mission but is immature in its implementation or development processes, the PPB may choose to incubate the project for a period of time. During this period, the project would not be an official core OpenStack, but would follow the policies and procedures of the OpenStack development process. Incubated projects would have the acknowledged goal of moving to become full core OpenStack projects once they had achieved the necessary level of maturity as determined by the PPB.

If a project is submitted to become an official OpenStack project, but is not approved, the project may remain listed in the related project's directory, however it shall not represent itself as being an officially sanctioned OpenStack project. A project that is not accepted for inclusion must wait three months before resubmitting their request for inclusion.

Once a project is approved for addition as an core project, it will be promoted in the next release cycle. All projects must be approved for promotion to core 6 weeks before a release cycle's design summit. After approval, a new PTL will be elected for the project in the regular PTL election cycle.