wanna-build / how to sort packages on buildds?
I have a problem I need to solve in perl within wanna-build:
Sometimes we have a few packages we don't want to build on a certain
buildds. Sometimes this is because this package needs lots of ram. Or
it takes quite long and would waste the parallel building a machine
supports. Or whatever else. Of course a package could be in more than
Now, what I would like to do is to write that down in a central file
That is, to mark packages as "builds only with more than one gigabyte
of ram". And to mark buildds as "has 6 cores", "only ... ram" - so
that I don't need to copy entries from buildd to buildd, but just say
"that new machine is the same class as ...", and that's it.
Now my question is just: How to do that efficient? I.e. how would such
a configuration file look like, and how the code to distribute the
package on the most fitting buildd(s)? (I.e. it's better to waste 5
out of 6 cores than to not build a package at all, but a package
needing at least 1g ram can't build on a buildd with only 512mb - but
no package should starve in the end.)
Ideas? Suggestions? Code?