Understanding the CloudStack Release Process
- 2. #whoami
• Director, The Apache Software Foundation
• VP Infra, The Apache Software Foundation
• PMC Member, Apache CloudStack
• Employed by Citrix
– Work in the Open Source Business Office
– Originally at Cloud.com
- 3. Releases
• Releases provide end users with usable
software
• Releases are official actions of the Foundation
• Aside from a vote, the release process is left
up to the project.
- 4. Releases – what we’ve done
• We ‘strive’ for a 4 months release cycle.
– We’ve never maintained schedule
• We have multiple ‘phases’ for the release
cycle.
- 5. Phase 1: Feature Development
• Features developed on branches and merged
when ready in this phase.
- 7. Phase 3: Code freeze
• When all testing is supposed to occur
• Stabilize the code base in preparation for
release
- 8. Phase 4: Release candidates
• This is when most testing seems to occur
• We end up with many release candidates
– The churn causes much frustration
- 9. The result
• We ‘generally’ have acceptable releases, but
sometimes they are delayed many months.
• We exhaust our community with repeated test
cycles.
- 10. Where we want to move
(Disclaimer: I am only one person – my views
may not be what we end up with. I do not have
fiat authority)
- 11. Where we want to move
• Reliance on automated testing.
• Much more rigid acceptance standards for
code
– Require automated test coverage for new features
– Require that problems be fixed and have tests
- 12. Where we want to move
• Gated commits – based on automated testing.
(passing tests as a requirement for each
commit)
- 13. Faster
• We want to release more frequently
• Smaller changesets – minimize the effect of
change on quality