[Buildbot-devel] AssertionError: Scheduler 'trunkscheduler' uses unknown builder 'factory'

Brian Warner warner-buildbot at lothar.com
Sun Sep 17 21:01:11 UTC 2006


brett <bneely at gmail.com> writes:

> That sounds like a good step, but the ambiguity for me was the
> distinction between the builder object name and the descriptive name.
> If you have the ability to display an error string for this case, can
> you clarify that point?

I've added the following string to the assert's error message.. how does it
sound?

        errmsg = ("The builderNames= argument to Scheduler must be a list "
                  "of Builder description names (i.e. the 'name' key of the "
                  "Builder specification dictionary)")


This will be displayed if you do any one of the following:

 b1 = {'name': 'fast-builder', 'slavename': 'machine3', 'builddir':
       'fast-builder', 'factory': f1}
 c['builders'] = [b1]

 Scheduler(name='full', branch=None, treeStableTimer=60, builderNames=b1)
 Scheduler(name='full', branch=None, treeStableTimer=60, builderNames=[b1])
 Scheduler(name='full', branch=None, treeStableTimer=60, builderNames='b1')



This interface (using dictionaries to describe the Builder) was probably the
very first one I created in Buildbot, and it really doesn't behave like
everything else in the config file. (back in those days I was thinking that a
web page where you could configure everything wouldn't be too far off, so I
was trying to make that easier by restricting the config to flat data rather
than using instances everywhere).

I'm tempted to change this at some point. Maybe something like:

 b1 = Builder(name="fast-builder", slavename="machine3",
              builddir="fast-builder", factory=f1)

And if we're changing that, we might allow Schedulers to accept Builder
instances instead of (or in addition to) the builder names.

thoughts?
 -Brian





More information about the devel mailing list