Author Archive

Why Launchpad for Mailman?

Friday, February 20th, 2009

Over the last 18 months, I’ve moved GNU Mailman development from SourceForge to Launchpad.  The reasons are varied.

Mailman was one of the first projects hosted on SourceForge ages ago.  I think our project id is a pride-inducing low 103, and we were even highlighted as its Project of the Month at one point.  Of course SF itself uses Mailman to serve its own mailing lists.  While the SF guys have always been great (including providing assistance during the migration to LP), I just became increasingly roadblocked by it.

The first major motivation for moving was Bazaar. This is of course the GPL’d distributed version control system developed by Canonical and used for code hosting on Launchpad.  Having come from decades of SCCS/RCS/CVS/SVN use, distributed version control systems in general and Bazaar in particular have been an enlightenment on the order of learning Python.  I mean, who’d have thunk a version control system could be fun?

After we moved code hosting to Bazaar on LP, evaluating the other benefits of Launchpad became easier.  Truth be told, there was (and still is) some resistance in the community to moving to LP because Mailman is a GNU project but LP is not open source.  That’s being fixed. The next service to migrate was the tracker, and thanks to the excellent assistance of my colleague Graham Binns, we were able to migrate the SF issues to LP.  For years, even before I joined Canonical, I let the Mailman tracker languish because I found it so difficult to use.  The simplicity and power of Launchpad’s tracker really shines for me here, especially with its ability to link across projects and artifacts (e.g. branches linked to bugs).

The next major service to consider is translations.  While being one of the first Python applicatons to be internationalized and translated, we really have a pretty crufty process for updating translations.  Some language champions have commit privileges, but others have to email or upload po-file diffs, or even entire po-files.  This really sucks for a number of reasons, probably most of which is that the code developers are too tightly coupled with the translators.  Our releases are held up for quite a while as we gather updates to more than two dozen languages.

Currently Mailman has an experimental Pootle service.  Despite the gallant efforts of its maintainer, I don’t think it’s working out too well, mostly because it’s not well known and not well integrated with the rest of Mailman’s processes.  Again, here’s where Launchpad integration would really shine for us, but until Launchpad is open sourced we won’t be moving translations here.