[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