Merge lp:~julian-edwards/launchpad/config-ppa-for-slaves into lp:launchpad
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~julian-edwards/launchpad/config-ppa-for-slaves |
Merge into: | lp:launchpad |
Diff against target: |
181 lines (+91/-4) 4 files modified
configs/development/launchpad-lazr.conf (+1/-0) lib/canonical/config/schema-lazr.conf (+6/-0) lib/lp/code/model/recipebuilder.py (+27/-2) lib/lp/code/tests/test_recipebuilder.py (+57/-2) |
To merge this branch: | bzr merge lp:~julian-edwards/launchpad/config-ppa-for-slaves |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Michael Nelson (community) | code | Approve | |
Review via email:
|
Description of the change
= Summary =
Send a configured sources.list entry to the build slaves for recipe builds.
== Proposed fix ==
This branch adds a new config item builddmaster.
can optionally contain a sources.list entry that is set up on the build slaves
before starting recipe builds.
This will enable us to set up a PPA with a bzr-builder package in it that the
recipe builds can use.
We're doing this because the rate of change of development on bzr-builder is
too fast to make changes in Ubuntu with its SRU policy.
We'll set up two PPAs, one containing development package for testing which is
owned by the Launchpad team, and one for production owned by IS/buildd-admins.
The buildd admins will copy a package from the development PPA once it's
proven tested on dogfood.
This is why there's a config item: the PPA to use needs to be configured
differently on dogfood, development and production.
== Tests ==
bin/test -cvv test_recipebuilder
== Demo and Q/A ==
The Code team is testing this approach on dogfood right now with a hacked
change. We'll drop in this replacement branch and things should continue to
work :)
Great Julian!
As per IRC, you'll add a new test for the case where the config option is not set, and try s/AttributeErro r/KeyError for the substitution exception.
Thanks!
{{{ configs, should you be wrapping the actual config. buildmaster. bzr_builder_ sources_ list in a try/except? sources_ list. archivedependen cies.py that does a similar thing
16:31 < noodles775> bigjools: given that you're change will also require updating lp-production-
16:31 < noodles775> wgrant: yep, trying now.
16:32 < wgrant> noodles775: Thanks.
16:32 < noodles775> bigjools: also, why not catch KeyError rather than StandardError when substituting the series?
16:33 < bigjools> noodles775: it returns None if it doesn't exist
16:33 < bigjools> I think!
16:33 < noodles775> bigjools: I just tried locally - AttributeError: No section key named bzr_builder_
16:33 < bigjools> re. second point, I am shamefully copy & wasting the code in adapters/
16:34 < bigjools> noodles775: crap, I'll fix that, thanks for noticing
16:34 < noodles775> np. Great.
16:38 < noodles775> bigjools: you could rework the second test (or add a separate test) so it shows the failure when the config option is not set?
16:39 < bigjools> noodles775: yep, I can add another test
}}}