The c['builders'] key is a list of objects giving configuration for the
Builders.  For more information, See Builder.  The class definition for the
builder configuration is in buildbot.config.  In the configuration file,
its use looks like:
     from buildbot.config import BuilderConfig
     c['builders'] = [
         BuilderConfig(name='quick', slavenames=['bot1', 'bot2'], factory=f_quick),
         BuilderConfig(name='thorough', slavename='bot1', factory=f_thorough),
     ]
   The constructor takes the following keyword arguments:
nameslavenameslavenamesc['slaves'] list. Each
buildslave can accomodate multiple Builders.  The slavenames parameter
can be a list of names, while slavename can specify only one slave.
     factorybuildbot.process.factory.BuildFactory instance which
controls how the build is performed. Full details appear in their own
section, See Build Factories. Parameters like the location of the CVS
repository and the compile-time options used for the build are
generally provided as arguments to the factory's constructor.
   Other optional keys may be set on each Builder:
builddirname
with some characters escaped. Each builder must have a unique build
directory.
     slavebuilddirbuilddir. If a slave is connected to multiple builders
that share the same slavebuilddir, make sure the slave is set to
run one build at a time or ensure this is fine to run multiple builds from
the same directory simultaneously.
     categorynextSlaveBuilder
object which is assigning a new job, and a list of SlaveBuilder
objects. The function should return one of the SlaveBuilder
objects, or None if none of the available slaves should be
used.  This function can optionally return a Deferred which should
fire with the same results.
     nextBuildBuilder object
which is assigning a new job, and a list of BuildRequest objects
representing pending build requests, sorted by increasing submission time.  . 
The function should return one of the BuildRequest objects, or
None if none of the pending builds should be started.  This function can
optionally return a Deferred which should fire with the same results.
     locksenvShellCommand will override
variables of the same name passed to the Builder.
     For example, if you have a pool of identical slaves, it is often easier to manage variables like PATH from Buildbot, rather than manually editing it inside of the slaves' environment.
          f = factory.BuildFactory
          f.addStep(ShellCommand(
                        command=['bash', './configure']))
          f.addStep(Compile())
          
          c['builders'] = [
            BuilderConfig(name='test', factory=f,
                  slavenames=['slave1', 'slave2', 'slave3', 'slave4'],
                  env={'PATH': '/opt/local/bin:/opt/app/bin:/usr/local/bin:/usr/bin'}),
          ]
     mergeRequestsproperties