[Buildbot-devel] our multiple-darcs-repository use case

Kevin Turner acapnotic at twistedmatrix.com
Sat Dec 24 06:33:26 UTC 2005


A little about our setup here, just to add to the use case files:

We use darcs with several developers pushing to a central repository.

Each of our projects has multiple darcs repositories.  It's sort of like
having Twisted and TwistedWeb: you want to be able to get one repository
without the other, but the project as a whole really needs both, and
changes to one potentially effect the stability of the other.

So our "quux" project, which contains components "foo" and "bar", looks
like

quux/foo/_darcs
quux/bar/_darcs

Except each of our projects also has several branches.  Call them
"devel" and "stable".  So we really have

quux/devel/foo/_darcs
quux/devel/bar/_darcs
quux/stable/foo/_darcs
quux/stable/bar/_darcs

At the moment our change reporter (called by the posthook option of
darcs apply) is just doing 'buildbot sendchange' with a dummy commit
message and file list.  Hopefully future versions of darcs will be more
informative in the posthook and we can write a real one.

I've configured things so that the branch option to sendchange is
something like "devel/foo", which works with the baseURL option of
step.Darcs.  I'm left with a feeling that I might be abusing buildbot's
branch feature, but I'm not sure I understand how that is meant to be
used.

>From a user interface perspective, I want each branch to have its own
indicator.  This translates to having a one-to-many relationship between
branches and c['builders']; having one builder that potentially runs
several branches seems pretty weird.

I've got more-or-less duplicate builder definitions (same factory, same
steps, same slaves) for my normal Scheduler and my Try scheduler for
this reason; having the Try builds turn the other ones red was bad.

(by the way, Schedulers want to know about Categories.)

the bad thing about the way I am using "branch" now is that I don't good
defaults set, so if you don't type the right thing into the "branch" box
of the "force build" option, bad things happen.  I will be looking for
ways to hack up a Factory to set the default branch.

at some point, I will also need to get  quux/devel/foo in the PYTHONPATH
for when the quux/devel/bar tests run.

::end of brain dump::

Merry merry,

 - Kevin

-- 
The moon is last quarter, 48.8% illuminated, 22.3 days old.





More information about the devel mailing list