[Buildbot-devel] precommit build

Nathaniel Smith njs at pobox.com
Fri Oct 28 07:17:10 UTC 2005

On Thu, Oct 27, 2005 at 11:35:35AM -0700, Brian Warner wrote:
> Monotone lets you set arbitrary attributes on individual changes (called
> "revisions" in monotone-speak), and then construct a tree using only the
> revisions which meet certain criteria. You could have a status plugin that
> sets a "tested=True" attribute on every Change that went into a good build,
> and then encourage developers to use trees that used this as a revision
> filter. That way they would never see the changes that failed a build. You'd

Almost right :-).  Monotone revisions are whole-tree snapshots
(located within a history graph), not individual patches a la Darcs.
So the operation isn't "combine every tested=True Change", it's "get
the latest Change with tested=True".

> still have to figure out some details: if the buildbot is always building the
> unfiltered "trunk", then once a bad change went in, all further builds would
> fail, causing other (innocent) revisions to be denied too. Plus you'd have to
> figure out how to get those revisions marked good again once the fix had been
> committed.

So these problems don't really exist, AFAICT :-).

Enabling this sort of workflow stuff is actually exactly what
originally inspired monotone to be written.  It turns out that the
"writing a VCS that basically doesn't suck" parts tend to preempt the
"play with cool workflow designs" parts, so these parts of the
program are disappointingly ill-worked-out right now, but there are
some parts -- the basic primitives needed to build stuff like this are
mostly there, and for instance, 'monotone update' already has built-in
ability to filter out revisions that don't match some testing criteria
(basically what Brian described above).  There are a lot of different
possible ways to do this kind of thing, though.

So basically this is an advertisement -- if anyone's interested in
figuring out how to make this stuff work for monotone, drop on by
#monotone at irc.OFTC.net or monotone-devel, we'll totally help you out

-- Nathaniel

"The problem...is that sets have a very limited range of
activities -- they can't carry pianos, for example, nor drink

More information about the devel mailing list