[Mailman-Developers] Should we move to Bazaar?

Barry Warsaw barry at python.org
Thu May 3 00:09:15 CEST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I'm very encouraged and excited by all the interest from developers  
who want to get involved in the Mailman project.  I've always wanted  
to broaden the sphere of developers beyond the current core three  
(though I can't say enough about the great job Tokio and Mark do).  I  
think this is a good time to ask whether we should move from  
Subversion to Bazaar <http://www.bazaar-vcs.org> for our source code  
revision control system.

There are plusses and minuses, and I will not make the decision  
unilaterally (unless you want me to. :).  Certainly, Tokio's and  
Mark's opinions are very important here because they are currently  
doing exceptional work on the 2.1 branch and I don't want to  
jeopardize that!  Let me outline my thinking here and get your feedback.

Bazaar is a distributed version control system.  This is really the  
crucial different between centralized systems such as Subversion and  
CVS, and it's the main draw for wanting to switch.  Using a dvcs such  
as Bazaar really changes the way we as developers work on the code,  
and the way other non-privileged developers can interact with the  
project.  The biggest differences are that you can work completely  
disconnected from the central server, and you need have no special  
permissions to have *and publish* fully revision controlled personal  
branches.

The cons are that it's not as mature as Subversion or CVS, but I have  
confidence that it's pretty stable.  It has not yet reached a 1.0  
release, but I think that's coming soon.  (It's been ported to *nix,  
OS X, and Windows, and it's written in Python if that matters).  It  
does not have all the features of Subversion (e.g. nested branches or  
externals), but it has enough to make it useable for everyday  
development.  It takes some getting used to for existing Subversion  
and CVS users, and the documentation is not as good.  But I think  
people can pick it up fairly quickly and there's a lot of effort  
being put into it.

Full disclosure: my company Canonical is the driving force behind  
Bazaar, and uses it internally for all our development.  It's free  
software though, so no worries on that front.  I would not recommend  
it for the Mailman project though unless I thought it could solve  
some real problems, that it was stable enough to rely on, and that  
Mailman would benefit from using it.  Having insiders to heckle  
helps, but it wouldn't be enough if that's all there was.

What problems does it solve?  Well, I'm /still/ struggling to merge  
in the work I did while on the train to PyCon in Dallas because of  
all the contortions I had to go through to work off-line for a couple  
of days.  Bazaar solves this by allowing me to do everything I need  
to do while completely disconnected, except push my changes to the  
master branch.  I could have committed, branched, merged, reverted,  
etc. all in a completely revision controlled way while off-line, and  
then I could have merged all my changes back to the master branch  
when I got back on-line.

It also solves a problem I have of many live branches.  Branches in  
Bazaar are cheap, unlike in Subversion.  This means I can easily  
create branches for my Elixir experiments, for the move to eggs, for  
playing with 5 different templating engines, etc.  And it's easy to  
merge between these.  I can also have private branches that need  
never see the embarrassing light of day until they are stable enough  
to merge into the main line.

What problems does it solve for you?  Well, if you're a developer  
wanting to contribute to Mailman but we don't know you well enough to  
give you commit privileges, you almost don't care.  You can branch  
from the main branch, and have a fully revision controlled private  
branch at your disposal.  You can do commits, branches, merges, etc.  
on your local branches.  You can even publish them via http, bzr+ssh,  
or sftp.  Why is that cool?  Well, say you created the best damn  
templating patch EVAR and you wanted everyone to see it.  Just  
publish your branch (or create a bundle -- a mailable tarball-like  
unit of your changes) and pass around the URL.  Anyone can then take  
a look at your branch, and the core developers can merge them into  
the mainline if we like them.  It's a great way for new developers to  
earn some street cred with minimal admin overhead.

And if we /don't/ like your changes, you do not have to maintain them  
as a disembodied patch.  You can say "screw the Mailman guys, here's  
my cool fork" and have a fully revision controlled version of your  
own, in a way that's much easier to track with upstream than with  
Subversion or CVS.

One more thing.  If we move to Bazaar, I would host the branches on  
Launchpad.net, which -- full disclosure again -- is developed,  
managed, and paid for by my employer.  Why Launchpad?  Because it's  
convenient, I have insiders I can bug, and because it already  
supports hosted Bazaar branches.

Let me emphasis that Canonical is in no way driving this.  They don't  
care what we do for Mailman, and understand fully that stuff like  
this are community decisions.  I personally think Bazaar+Launchpad  
will make some of our lives easier, but if you guys do not agree,  
we'll stick with what we've got, no harm, no foul.

Please do share your opinions freely here in public, or via private  
email.

Cheers,
- -Barry

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iQCVAwUBRjkMDHEjvBPtnXfVAQLcXgP/fnriiMwu9gAQEvXmUiGLXLSfkcmkzyAm
cqbu2QjmTm7uZapFq3WLmItfBuoVP3HkOdaa+ibpgR8WJUxt6UksbFXCSPPxmWlR
tPI8BS65r0gnf0MUM3dvbvkhizGVmYkhK7gAW6dmH43Um1o5CbskkbaWjIMLJ+0L
ter/gGwLu+8=
=ftG9
-----END PGP SIGNATURE-----


More information about the Mailman-Developers mailing list