Bazaar in a Continuous Integration Server context
John Arbash Meinel
john at arbash-meinel.com
Sat Apr 28 15:36:39 BST 2007
Jean-François Veillette wrote:
> At work we are looking to change CVS for a better scm, bazaar is a good
> At that point, we are also looking to add a continuous integration
> server to our infrastructure.
> Based on this matrix :
> only Continuum is integrated with Bazaar.
> My question are :
> - Is the above matrix uptodate in regard to bazaar integration
> - Are there any other Continuous Integration Server that are integrated
> with Bazaar that are not part of this matrix
> - Bazaar itself seem to be using something similar (pqm), any comments
> on that or the way people have achieve somehow the same goal
> - jfv
I can't say that I've used any of those tools to know for sure. I would
be surprised if it was difficult to integrate bzr into any of the other
tools. Especially if you use "centralized" mode, then bzr acts fairly
similar to SVN. (bzr checkout, bzr update, bzr merge?)
For bzr we use a Patch Queue Manager. Where you basically send an
email request and the PQM merges your code, and runs the test suite. If
there are no file conflicts (bzr merge returns 0), and make check
succeeds then the patch is committed to the controlled branch.
We've automated some of the user-end by having a plugin that provides
"bzr pqm-submit" which looks up your mailserver and pqm mailing address
and default submission branch, etc. And then composes the email and
pipes it through GPG for you.
It would certainly be reasonable to do something similar with any other
Also, the continuous integration tools I've seen have been more about
letting you know when you break the codebase, rather than having you
only allow clean commits.
At least that is what I've seen for Cruise Control and such. Some of
that is because some people's test suites take way too long (hours), and
delaying a merge (or commit for SVN) for that long is not reasonable.
With Bazaar, because you can develop on a branch, and continue to
develop even which the PQM is checking your last merge point, it doesn't
stop you from working.
I know someone was working with bzr and 'buildbot' for python. It was
just a matter of writing 2 scripts (one for updating, and one for
running 'make check'). So I would be very surprised if the other tools
didn't support some level of configuration which lets you change the
tool. It might also be possible to write a "svn" wrapper to make bzr
output look like svn (bzr status --short is close to svn, but needs a
bit of changes to line up exactly).
More information about the bazaar