15 Oct 2004 mbanck   » (Journeyer)

The Ubuntu development model

So, everybody says Ubuntu rocks. I tested it a while ago (and my parents now use it) and I can confirm that. Enough praise has been told about the Ubuntu distribution, so thought I would rather write about the Ubuntu project a bit, as this appears to be much more blurry.

It seems Canonical managed to pull off with a tiny workforce what Debian was not able to do with a thousand volunteers. Of course, there is the mythical man month: about three dozen highly skilled and motivated developers working full time on Ubuntu can somewhat compensate for thousand volunteers of which only a tiny fraction care about releasing at all. However, Ubuntu also bravely decided to take new approaches to distribution development (at least compared to Debian) and try fundamentally different ideas, a couple of which were taken from how the GNOME community works.

The following are the key development point I as an interested outsider gathered from reading their website and from following their mailing lists and IRC channels (corrections/additions welcome):

  • They have an infrastructure similar to the Debian one. The archive tools seem to be the same, given that their prime authors work for Canonical and they advertise python as their language of choice. They also have build daemons at least for their three supported architectures. They use mailman for their lists and (for now) bugzilla as their BTS though.
  • They split the Debian distribtution into 'main' and 'universe', adding additional packages to the former. The 'main' part is their supported set of Free Software, which comprises their base system, their GNOME desktop and their selected servers and console programs. Universe is basically all other Debian packages which happened to build for them. Next to those, they introduced a 'restricted' component which contains firmware and binary-only drivers.
  • At least for their first release, they branched unstable around halfway through their release cycle and worked from there. They concentrate on stabilizing and integrating their main packages and only worry about universe when there is time or interest.
  • They rebuild the whole archive (including universe) on their build daemons. If needed, they upload new versions for the packages, sometimes many revisions.
  • They have a set of rules that says they should be respectful and communicative between each other. Disputes are regulated by their technical board and community council. This warrants a good working climate between the Ubuntu maintainers, which makes Ubuntu fun to work on.
  • There is a rigid, time-based release schedule. Not only the release date itself is fixed well in advance, but also every major milestone along the release process.
  • As the release draws near, their release managers have to approve all new upstream versions and later on every fix. They also produce several testing CDs in short time intervals.
  • Everybody involved can upload any package (as long as the patch gets approved), there is no concept of NMUs (Non-Maintainer-Uploads). More precisely, there is no concept of package maintenance at all, different developers are just loosely appointed to specific parts of the archive, like X, GNOME, etc. Furthermore, they have teams working together concentrating on specific tasks like server, laptop, security, installer, ports, etc.

Especially the last three points make their release management both more flexible and more rigid at the same time compared to Debian's, and they allow for their strict 6-month release cycle.

It remains to be seen how the Ubuntu development evolves. Some interesting questions in this regard, which will only be answered by time:

  • Will all of their work flow back upstream? They modified the standard GNOME desktop, the Debian installation and the project-utopia stack a fair bit, along with numerous smaller tweaks. Whether some or all of those ideas will be proposed for inclusion (and accepted) will be seen.
  • Will they seriously try to integrate their distribution-wide modifications into the Custom Debian Distributions framework, or will Ubuntu rather become a distribution framework for Custom Ubuntu Distributions themselves?
  • Will they branch off unstable again, or will they just resync the untouched packages? They seem to have modified a huge amount of packages and no central source-repository-management (yet?), so branching/merging might be too cumbersome for them and they might just work from their release.
  • Will the Canonical employes who are also Debian Developers continue to dedicate some parts of their free time to work on their non-packaging related tasks for Debian, like account/release/archive management?
My answer to all of the above questions was initially 'yes', and I hope this will continue to be the case. But again, only time can tell.

Of course, it also remains to be seen how Debian development evolves. Ubuntu seems to be the first evolutionary challenge to Debian and it will be interesting to see how Debian adapts to it. It is already clear that Ubuntu will be good for Free Software in general and the Linux desktop in particular, no matter what happens.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!