Opened 4 years ago

Last modified 15 months ago

#3022 new enhancement

Provide a MatrixBuilderFactory

Reported by: Ben Owned by:
Priority: minor Milestone: 0.9.+
Version: master Keywords:
Cc:

Description

Lots of people make the mistake to believe that the slaveNames parameter of a Builder is to allow all the slaves to perform the build in parallel. Unfortunately, this is not the case, and this parameter is meant as a Load-balancing parameter, to allow another slave to perform the build would the one already be busy.

We should provide a builder factory class where the slaveNames parameter actually perform what people expects from the slaveNames parameter of a Builder.

What do you think of the idea ?

Can we first settle on an agreement for the interface of such a class ?

Change History (6)

comment:1 Changed 4 years ago by dustin

I think this muddies the definitions. Currently builders are "AND" and slaves are "OR", and even if people don't know that yet, once they learn it that's a simple thing to remember.

If you want parallel operations, you need multiple builders.

We currently tie a lot of other things to builders (not least of which is display), and that makes adding multiple builders a bit awkward. But I don't think that justifies changing the way builders and slaves work.

comment:2 Changed 4 years ago by Ben

My idea was not to channge the way builders work ! I just wanted to provide some utility classes that would do "the right things" (as we would expect it: create multiple builders, tie them to schedulers, slaves) given a set of handy parameters.

comment:3 Changed 4 years ago by dustin

  • Milestone changed from undecided to 0.9.+
  • Priority changed from major to minor

Ah, that makes sense then!

comment:4 Changed 4 years ago by Ben

Just posted a draft there: https://gist.github.com/benallard/77930537cd91bd85134a

Would integrating something to buildbot make sense, or is it too high level ?

comment:5 Changed 4 years ago by dustin

Let's leave it external, or in contrib/, and see what people think -- it's easy enough to incorporate into a config that way. If it becomes popular, we can move it into core.

Note: See TracTickets for help on using tickets.