As the OpenStack community grows, new projects will emerge and aspire to become an official integrated part of the OpenStack release. This page describes the various states those projects can be in, and the process those projects can follow to become part of the integrated release. This process is fully driven by the OpenStack Technical Committee.
A new project starts as an idea. While the project idea matures, it should be developed as an external, open source project. That gives the project a chance to gather a community of contributors and momentum around it. That time should be used to get alternate implementations of the same idea to coalesce around a single common project, reducing duplication of effort and ensuring long-term viability of the project. The scope and the basic design of the project should also be fleshed out during that period, and working code be produced.
Choosing the Apache 2.0 license for your new project will avoid relicensing headaches should you consider to be made part of the integrated release in the future. You can reuse most of the OpenStack development infrastructure by hosting your project under stackforge, and/or using Launchpad for bugs and blueprint tracking. This will let you enjoy all the tools we've built to support OpenStack and make transitioning to the "official" infrastructure painless.
Once your new project has matured, you may want to make it part of the OpenStack integrated release. If that's the case, you should file an OpenStack incubation request. If the project is not attached to an existing official program, you should also designate a program technical lead and follow the process for creating new programs. This should ideally be done very early in the development cycle (or at the end of the previous development cycle), so that you spend enough time in incubation to be considered for graduation at the end of the cycle.
Before it can be made part of the OpenStack integrated release, a project needs to go through a period of Incubation. This period is used to fill the gap with graduation requirements, learn about our release cycle, our release process, align with the OpenStack way and explore integration opportunities with the other projects. That period needs to last at least two development milestones.
During that period, projects are migrated to the openstack namespace and the main OpenStack infrastructure.
At the end of the development cycle, prior to the election of the next cycle's PTLs, the Technical Committee conducts a final graduation review. Projects that have spent at least two development milestones in incubation are reviewed, and the ones which have proved they can be part of the integrated release are promoted to Integrated status for the next release cycle.
Projects failing to meet graduation requirements may be invited to spend another cycle in incubation, or dropped from the incubation track.
Integrated projects are released as part of the common OpenStack integrated release. Projects cannot graduate in the middle of a cycle. They have to follow a full cycle as an integrated project before they are released as an integrated project.
The exact meaning of Core changed in 2013 due to the change in governance following the transition to the OpenStack Foundation. "Core" is now a label the Board of Directors of the Foundation can attach to a project that is part of the regular integrated release. Core projects are therefore the subset of Integrated projects that meet the criteria the Board of Directors attaches to Core. Core projects are expected to benefit from extra rights for using the OpenStack trademark.