The c['builders'] specification is the last one in master.cfg that is defined with a dictionary. I think it would be much clearer if it were defined as an instance. So instead of:
b1 = {"name": "svn-hello",
"slavename": "bot1",
"builddir": "svn-hello",
"factory": factory.BuildFactory(steps),
}
c['builders'].append(b1)
you would do:
b1 = Builder("svn-hello", "bot1", factory.BuildFactory(steps))
Builders.append(b1)
(assuming that #9 was implemented)
Also, the "builddir" argument should go away, and just use the builder name. Having to specify a separate directory is annoying. It might be nice to add a separate "verbose builder name" argument, though, since the normal builder name gets used as a directory name and thus can't have slashes (and really doesn't want to have spaces).