[Buildbot-devel] Using blamelist

Brian Warner warner-buildbot at lothar.com
Fri Sep 29 07:49:03 UTC 2006


> but don't have too high expectations: as for explained reason, the 
> blamelist is rather 'stupid' and can in no way replace deeper problem 
> analysis by a human (also as to who exactly caused the problem), but it 
> is helpful for a start.

Right. The hope is that the build is normally passing, and failing builds are
pretty rare. If your tests are deterministic, and the previous build passed,
then a failing build is clearly the "fault" of the people who made the
changes that went into the new failing build. That's the essence of the
blamelist: who was responsible for this build's changes.

The "interested users" and "responsible users" lists are there in
anticipation of additional code (not yet developed) that will either parse
the logs for details of a failure, or pay attention to the source files that
were changed, or other development-policy things.

For example, your organization might have a rotating "build sheriff": say Bob
is on call for Tuesdays, and any build problems that occur on a Tuesday are
his responsibility. Obviously the person who checked in the code is
responsible too, but maybe Bob is a paid employee while the committer is not,
or maybe Bob knows more about the cross-platform issues than anyone else. On
Wednesday, Sue is the build sheriff. The idea is that the code would have an
internal table, and when the build starts, it checks the date and adds either
Bob or Sue to the "responsible users" list.

Likewise, you might have module owners: Ted knows the database code the best,
and if anyone changes code in the db/ directory, he will want to know about
the outcome of the resulting build. So some (not yet implemented) buildbot
customization would do something like:

 module_owners = set()
 for c in changes:
   for f in c.files:
     if f.startswith("db/"):
       module_owners.add("ted")
 for who in module_owners:
   build.addInterestedUsers(who)


I still haven't figured out where this code wants to live.. probably in the
Factory. If anyone has ideas about this, please let me know.

cheers,
 -Brian




More information about the devel mailing list