01 June 2007 18:00
Mailman: cvs,svn--> Bazaar Launchpad
by pvergain & 1 otherThe Mailman source code was originally maintained using CVS, and only a few people had write access to the code. Later, development was moved to SourceForge and then the CVS repository was converted to Subversion. This proved to be a successful transition, as Subversion provides many benefits over CVS.
Now however, it's become clear that even Subversion has its limitations, and better options exist. Specifically, we want to use a distributed (or decentralized) revision control system. A dvcs has many beneficial features, both for the core developers and for casual, third party developers. These include:
* No write access to the central repository is necessary in order to develop, maintain, version control, and publish unofficial contributions.
* No connection to a repository server is necessary in order to commit changes.
* Much better branching and merging operations; no need to commit partially completed work.
* Much better merge tracking.
* Ability to sign revisions with GPG.
* Written in Python, with an easy plug-in architecture.
* Simple and intuitive commands.
What are the most immediate benefits? Tops on my list is the ability to commit changes and use all the benefits of version control without having to be connected to the server hosting the official branches. That means it's much easier for me to develop Mailman when, say I'm on a train. Once I'm back on the net, I can push the changes back to the hosted service and then everyone else can see the latest updates.
The other really cool thing is that unofficial developers can much more easily maintain their own branches, with easy sync'ing and merging with the official branches. That means 1) the core developers are no longer a bottleneck for you to publish your cool Mailman hacks; 2) your branches are much easier for core developers to review and merge than using a bunch of diff files.
Using a dvcs is an eye-opening change, so I hope you give it a try.
Target date for switching to Bazaar is June 22, 2007
Bazaar
We have chosen Bazaar as the dvcs for Mailman. Bazaar is free software, released under the GPL.
You should be able to learn enough about Bazaar (often called bzr after its command name) to be productive in a few hours, if you are already familiar with other revision control systems. I encourage you to read up on the Bazaar web site. Also, Bazaar is available on all major platforms; with many having packages available already (certainly so for Ubuntu Linux and Mac OS X via MacPorts).
I highly recommend Bazaar version 0.16 or newer. Use bzr --version to see what version you've got.
Full disclosure: Barry's company, Canonical develops Bazaar. This means Barry has some inside avenues for addressing any issues we might have with Bazaar.
Launchpad
Launchpad is a distributed software development platform which can be used to host Bazaar branches (among other things). We will use Launchpad to host the official Mailman branches. It's important to note that you do not need to use Launchpad to host and publish your own branches! If you have a web server or sftp site, you can easily host your own branches. We use Launchpad because it's highly available and backed up, and it is well integrated with other services we may some day take advantage of.
Full disclosure: Barry's company Canonical also develops and maintains Launchpad, which means he has some inside avenues for addressing any issues we might have with the hosting service.
1
(1 marks)