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 (more interestingly) bugzilla as their BTS though.
-
They split Debian main into three parts: main, restricted and universe. 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.
Restricted contains firmware and binary-only drivers. Universe is basically
all packages of Debian which happened to build for them.
-
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 more 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). Then again,
there seems to be no concept of package maintenance either, only developers
caring more or less about specific parts of their main archive.
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.