[Buildbot-devel] Big fat buildbot example

Georges Racinet gracinet at anybox.fr
Mon Nov 5 11:14:51 UTC 2012


Hi,

On 11/05/2012 11:49 AM, Pierre Tardy wrote:
> I like it. I'm working on similar stuff also, but it is not yet ready 
> for publication.
>
> Looking at your code, I can find good concepts that could improve my 
> design.
> I'm not really focused on a config system that is simple, but rather 
> one that put higher level abstraction to the rather low level API of 
> the config.

>
> One of the key problem is the slave managment system. I think you may 
> improve SimpleConfig to have a generic slave capability system,where 
> each slave would have a capability dictionary can be a string or a 
> list e.g:
> OS = "windows"
> supported_test = [ "lint", "selexium"]
>
> Then, the slavemanager can have a function named slaves_by(self, 
> **caps), that returns the slave names that match the needed capability 
> of the builder

if that's a relevant source of inspiration, I've had to implement a 
similar buildslave capability concept as well for our openerp generic 
configurator. It is actually much more generic than that.

In that context, capabilities have versions and properties. The 
properties are meant to provide configuration that applies to that 
capability. A slave can present a capability in several versions (main 
use case for that is database services)

These capabilities can be used for

  - filtering : running builds only on those slave that support them 
(used in particular for functional testing layer). If I'm correct this 
is what Pierre writes about
  - distributing : spawning several builders to test for the different 
versions of that capability present among buildslaves (main use-case 
postgresql versions)
  - running : using the properties for that version of the capability to 
run against it (main use-case local postgresql ports etc).

If people are interested, details are documented there :
http://pypi.python.org/pypi/anybox.buildbot.openerp#registration-and-slave-capabilities
http://pypi.python.org/pypi/anybox.buildbot.openerp#id11
>
> my config manager is not yet ready for publication, but here is the 
> slave management part:
>
> http://pastebin.mozilla.org/1914696
sound indeed similar at first glance.

Regards,





More information about the devel mailing list