[Buildbot-devel] when is a Source class not a revision control system?

Robert Helmer robert at roberthelmer.com
Wed Nov 28 00:59:33 UTC 2007


Some projects (for instance Mozilla, but also many Java/Ant projects) use a
build script (client.mk, build.xml, etc.) to do the checkout instead of
calling "cvs" directly.

For example, to check out Firefox:

cvs co client.mk
make -f client.mk MOZ_CO_PROJECT=browser

The "client.mk" script can take many arguments, and pulls different versions
of different subprojects. In this sort of case, it's not sufficient to use
the CVS class to check out client.mk, because subsequent updates will do
revert all the checked-out projects to the same branch and timestamp.

So - I am working on creating a new Source class, which does both of the
above, and enables Mozilla-based projects to get a real Source object, use
SourceStamps, etc (up til now we've been faking with ShellCommands :( ).

I've been calling this class ClientMk, but it occurs to me that other
projects might need this as well (such as Ant, Maven, etc.) so maybe it can
be made more generic. Is there a place in Buildbot for a more generic class
(CustomSource or something?) which is able to use a version control system
to check out an initial file, which is then responsible for driving the

Alternatively would a ClientMk class be acceptable in Buildbot proper? It
should enable any Mozilla-based project (of which there are quite a few now)
to use this and could serve as a template for others.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20071127/51269239/attachment.html>

More information about the devel mailing list