Curator's Note: The content of this article was originally written by Joe Brockmeier on the Build a Cloud blog.
The board voted last week, but the announcement came out today, so it’s officially official: Apache CloudStack is now a top-level project under the Apache Software Foundation (ASF).
In the grand scheme of things, this may not sound like a big deal – the ASF announces new TLPs pretty often, and Apache currently boasts more than 100 TLPs. But a fair number of projects don’t make it, and the amount of work required for a project to go from incubation to graduation isn’t trivial.
Many folks confuse incubation status with the maturity level of the code. It’s really important to understand that there’s not a direct correlation between the status of the code and the status of the project in the incubator. CloudStack, for example, entered the incubator as a mature project with quite a bit of real-world adoption.
Even if a project enters the incubator with an immature codebase, there’s no guarantee of graduation simply because the code becomes mature enough for production use – graduation is predicated on a different set of criteria, and releases are only one factor.
It is true that a release is an important step to graduation, though. A community needs to be able to demonstrate that it can follow Apache procedures and muster up a release that satisfies the release requirements. However, the release requirements aren’t “is this production-ready code?”
The guide to release management spells this out in great detail, but the checklist shows that it’s really about ensuring that a release is compliant with Apache policy. License compliance, of course, is a huge part of this. It requires two votes – the project’s PPMC and the Incubator PMC – to approve a release. That’s a lot of poking and prodding at a release before it’s allowed out in the wild as a release.
Graduation means that, in part, a community is trusted to manage the release process itself and put out software that doesn’t pose a problem for the ASF.
We have a lot of people to thank for this, but I’d like to give Chip Childers a special hat-tip for his tireless release management work.
Community Over Code
Graduation also signifies that a project has developed a diverse community that is capable of governing itself ”the Apache Way.”
You’d need to spend some quality time on the Apache Way site to take in all the concepts that are bundled up under “The Apache Way,” but the high-level points are:
- Community: A project needs to have a well-functioning community that is composed of individuals acting in the best interests of the project rather than only their interests or those of their company.
- Merit: Contributors who demonstrate consistent contributions of high quality and who follow the Apache Way should become a committer and perhaps eventually a PMC member. This is to ensure that contributors can work efficiently, and that contributions aren’t dominated or blocked by an unchanging core group.
- Openness: Work has to be done in the open. Decisions have to be taken on the mailing lists, not in corporate offices or in private exchanges.
- Charity: Projects are providing open source software for the public good.
- Bacon and beer: Not really, but I’d support adding this…
- Communication: Within and without the project, a lot of communication is necessary. A project that can accomplish this is doing well. A project that can accomplish this with very little friction – like CloudStack – is doing great. I have to say I’ve been consistently surprised by how cordial the CloudStack community has been.
One thing that doesn’t get mentioned as much is setting up the necessary infrastructure to make a project go. This means bug tracking, reviews, a source repo, mailing lists, a Web site, and all the goodies that projects need to survive, thrive, promote themselves, and publish code.
This isn’t a turnkey operation under the ASF, and it takes more than a little work to get this going. David Nalley deserves a huge chunk of the credit for getting things moving here.
Speaking of shout-outs, I want to say a big thanks for all the folks who mentored the Apache CloudStack project. Mentoring is a huge part of what makes Apache successful, and it’s great to have a group of people you can go to for help – or who can call shenanigans if a project isn’t Doing The Right Thing.
Just Getting Started
So, after less than a year, Apache CloudStack has reached a major milestone. Graduation is fantastic, but it really just means that it’s up to CloudStack to prove itself by continuing to release top-notch open source Infrastructure-as-a-Service software, and to continue cultivating its community and welcoming new contributors.
Just as in other parts of life, graduation just means an opportunity to work harder. But at least we don’t have any student loans hanging over the project!