Merge lp://qastaging/~michael.nelson/launchpad/393546-avoid-builder-monopolization into lp://qastaging/launchpad
Proposed by
Michael Nelson
Status: | Merged |
---|---|
Approved by: | Eleanor Berger |
Approved revision: | no longer in the source branch. |
Merged at revision: | not available |
Proposed branch: | lp://qastaging/~michael.nelson/launchpad/393546-avoid-builder-monopolization |
Merge into: | lp://qastaging/launchpad |
Diff against target: |
143 lines 2 files modified
lib/lp/soyuz/doc/buildd-dispatching.txt (+38/-9) lib/lp/soyuz/model/builder.py (+18/-2) |
To merge this branch: | bzr merge lp://qastaging/~michael.nelson/launchpad/393546-avoid-builder-monopolization |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Eleanor Berger (community) | code | Approve | |
Review via email: mp+13230@code.qastaging.launchpad.net |
To post a comment you must log in.
= Summary =
Fix bug 393546 by ensuring that when considering the next candidate for
a builder - we ignore builds for PPAs that already have builds of the
same architecture currently building.
== Proposed fix ==
Add a correllated sub-query that ensures - when considering a build -
that there are no other currently-building builds for the same PPA
archive and architecture.
== Pre-implementation notes ==
See notes on bug 393546.
== Implementation details ==
The _findBuildCandi date() method is an ugly sqlobject query - I didn't
consider updating it - but if I have to I will :)
I'm wondering whether we should restrict the exclusion to
currently-building builds with a lower score than the build being
considered? (ie. so if a new build on the queue for the same
archive/arch has a higher score it will still be considered).
If we do add this then I'll most definitely have to add a separate
test_builder.py to unit test this (as the documentation is already
getting ugly with setup etc.).
== Tests ==
bin/test -vvt buildd- dispatching. txt
== Demo and Q/A ==
None.
= Launchpad lint =
Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.
Linting changed files: soyuz/model/ builder. py soyuz/doc/ buildd- dispatching. txt
lib/lp/
lib/lp/
--
Michael