There's been a proposal written today for a new Ubuntu release process. Under this proposed process, Ubuntu would abandon its traditional six-month release cycles in favor of monthly releases. Yep, once a month. The benefit of this proposal is that new Ubuntu features wouldn't be forced to land every six months but would land when the given feature is actually mature and ready. This is quite different from Ubuntu's current release process, but this proposal comes from Scott James Remnant, the former Canonical employee and Ubuntu Developer Manager.
Scott James Remnant left Canonical -- and his role as the Ubuntu Developer Manager -- to change hats and begin working for Google. Scott is still part of the Ubuntu Technical Board, but has written an interesting blog post entitled "A new release process for Ubuntu?"
Scott calls for a change as the current six month cadence causes too much chaos with too little development time. What makes matters worse is Scott's insight on how Canonical handles performance review and compensation around this development cycle. "Unfortunately Canonical’s own performance-review and management is also based around this schedule. The Ubuntu developers so employed (the vast majority) have such fundamentals as their pay, bonuses, etc. dictated by how many of their assigned features and work items are into the release by feature freeze. It’s not the only requirement, but it’s the biggest one."
Scott acknowledges, "Your new feature is going to take twelve months of development time to fully develop before it’s truly a replacement for the existing feature in Ubuntu. What you don’t do is spend twelve months developing and land it when it’s a perfect replacement. What you do do is develop it in 12-13 week bursts, which means it’s going to take you roughly four release cycles before it’s ready rather than two. And you land the quarter-complete feature in the first release, replacing the older stable feature."
This Ubuntu Technical Board member even admits that he has landed features too early to make it in the next Ubuntu release and that often what goes on is "removing the old, deprecated feature and breaking things temporarily with the promise that everything will be better in the next release, certainly the one after that, definitely by the LTS."
Two such well-known features that have landed too early in Ubuntu are the Unity Desktop and the Ubuntu Software Center. That shouldn't be much of a surprise if you've used Ubuntu 11.04, as many users hate Unity
Even simply focusing on the Ubuntu LTS (Long-Term Support) releases isn't a good idea according to Remnant.
His proposal is to begin carrying out a monthly release process that begins with Ubuntu 11.10. After this next major six-month Ubuntu release, do Ubuntu 11.11 in November, Ubuntu 11.12 in December, etc. Ubuntu would turn into much more of a rolling-release distribution under this proposal.
Those wishing to remain stable would be targeting "release" in their APT sources file while those on development would be targeting "beta" or the most risky would be an "alpha" release branch.
When a feature is ready it would be pushed into alpha, then beta, then release. This would be similar to Debian testing. If this proposal is accepted, Ubuntu developers would be responsible for uploading unpublished trunk branches of their feature work. Meeting the monthly release process would also involve greater code review, mandatory unit tests, and then functional and verification testing.
It's an interesting idea, but may be tough to get Canonical to change ways with the current Ubuntu development process. This monthly release cycle could complicate matters for ISV/IHVs, among other stakeholders. At the very least, hopefully this proposal will at least get Ubuntu developers and Canonical talking about the fundamental problem, which is on premature features being pushed into Ubuntu.
Read Scott James Remnant's proposal in full on his blog