[Buildbot-devel] repository + Source steps

Dustin J. Mitchell dustin at zmanda.com
Fri Apr 9 20:10:16 UTC 2010


There have been a number of changes recently regarding Source steps
and the repository attribute of a change/sourcestamp.  With apologies
if I missed anyone, this has been mainly the work of Tobias Oberstein,
Benoît Allard, and Marcus Lindblom.

However, I want to make sure I (and everyone reading this) understand
what's going on here.

First, some time ago we added "repository" and "project" attributes to
Changes and SourceStamps.  The repository attribute is intended to
supply context for revision and branch, and the project is an
arbitrary string that can designate the particular project being
changed (whatever that means to the organization .. usually a
particular codebase that requires a particular build process).

We also added the ability to flexibly filter on these attributes to
all change-watching Schedulers (mostly Scheduler and
AnyBranchScheduler).  That means you can set up a scheduler to listen
for changes to a particular project, and start particular builders
when those changes arrive.  It's multi-project support!  Hooray!

But very few people just want to build two completely independent
applications in the same buildmaster.  Everyone's got their twist [*].

So, one handy thing is to have the *same* buildfactory be able to
build multiple projects, which means that the Source steps should
check out code from the repository in the SourceStamp.  But with the
exising (0.7.12) configuration language, that was hard: we've always
required that the repository be specified twice in the configuration,
once in the ChangeSource, and once in the Source step.  So there are a
number of recent changes so that a Source step will, if not given a
repository explicitly, use the repository from the SourceStamp.  This
last part is documented here:
  http://github.com/djmitche/buildbot/commit/a9ab23bfaa7fa91e04f4f1c15451c1708777a90b

I would like to verify a few things, though:

 1. There are no behavior changes to Source steps for existing configurations
 2. Which VC systems does this work with?

There are many more changes to be made.  Tobias is looking at how to
build each project in a separate repository (I'll send a separate
email about that).  There are lots of other changes on the horizon,
too!

Dustin

[*] And, I should note, in general everyone thinks that their twist is
so self-evident that "everyone does it this way" and it should just be
the default behavior.  Not so!

-- 
Open Source Storage Engineer
http://www.zmanda.com




More information about the devel mailing list