As someone who has been covering open source for a very long time, I take great interest in the processes that organizations adopt to nurture new software projects. When Victor Fong mentioned Cloud Foundry Incubator in this story, I was drawn towards the idea of incubation at Cloud Foundry Foundation (CFF).
I learned that CFF has an incubation process that provides a safe, friendly environment for new projects like RackHD to help them grow, mature and become part of the foundation; to be used in a production environment.
When I asked about the primary goal of the CFF Incubator, Chip Childers, VP of technology at Cloud Foundry Foundation told me, “The goal of the Cloud Foundry Foundation’s project incubation process is to provide a mechanism for projects to enter the Foundation. Projects may be either previously existing code from the community or new initiatives that start with only a proposal and a team.”
That might sound similar to how another open source organization, Apache Software Foundation incubates projects. But in reality, there is a big difference between ASF Incubator and CFF incubation. Childers explained, “The ASF incubates projects that graduate to become TLPs (top level projects), which are PMCs in their own right.”
On the contrary, at the CFF, there are existing PMC’s which contain multiple projects at various stages of lifecycle. “Projects may be incubating, active or retired. Each PMC is responsible for making decisions about which proposed projects should be accepted. The PMCs themselves have been created around specific areas of the overall Cloud Foundry platform,” said Childers.
The PMCs that exist today are: Runtime (the core Cloud Foundry runtime components, including the CLI tool, Cloud Controller, Logging and Metrics Pipeline, scheduling, etc.), BOSH, Buildpacks, Services and Utilities.
“The Cloud Foundry Foundation focuses on incubating projects that are specifically tied to the Cloud Foundry platform itself as either natural extensions or supporting technologies,” said Childers.
From Incubation to retirement
Once a project is in incubation, the duration of its maturity varies from project to project. Incubating projects can graduate to become ‘active’, which means the project is ready for production. In most cases by that time a project graduates to active phase, it is already running somewhere in production.
“The question of graduation from incubation to active is one that each PMC is responsible for managing themselves. Beyond the obvious criteria around intellectual property management issues (licensing, dependencies, etc..), one of the other common criteria that all of the PMCs have adopted is a judgment of the project’s readiness for production usage,” explained Chiders.
Like everything in this world – projects are born, they mature and then they are retired. CF has a very developed lifecycle plan for such projects.
Once a project has reached the end of life it’s retired and placed in Cloud Foundry Attic, which means that it will no longer be maintained by the foundation. Attic is also an indication to users that they should migrate from the retiring project.
“So far, we have largely been moving specific repositories into the attic, while the owning project team continues to work on other repositories. This is natural for us, since we continue to enhance and evolve the platform on a fairly rapid pace. As an example, the foundation released a coordinated release of the whole platform thirty-one times in calendar year 2015,” said Childers.
CFF incubation is an excellent place for those projects who want to become part of the CF ecosystem. If you are targeting at CF as the PaaS platform and want your project to be part of it, check out the GitHub page. Keep in mind that it is less focused on making incubation an advantage for developers. The main focus is on ensuring that CF is incubating the *right* projects for the CF ecosystem.
Image credit: Valtteri Mäki/Flickr