Code review comment for lp:~michael.nelson/launchpad/487009-db-generalise-ibuilder-1b

Revision history for this message
Michael Nelson (michael.nelson) wrote :

= Summary =

This branch creates the infrastructure to allow IBuilder to support different behaviors (BinaryPackageBuildBehavior currently, but later SourcePackageRecipeBuildBehavior etc.).

== Proposed fix ==

Create a general interface for build farm job behaviors that can be implemented by various classes, and allow the behavior to be an attribute of the builder to which all relevant calls will be delegated.

This branch begins the extraction of soyuz-specific build behavior for the [Binary]BuildPackageJob into a BinaryPackageBuildBehavior. Subsequent branches (in a pipeline) will continue this.

I plan to re-base these to devel after the release when db-stable is merged back into devel.

== Pre-implementation notes ==

See the pre-implementation notes on bug 487009.

== Implementation details ==

== Tests ==

bin/test -vv -t doc/builder.txt -t doc/buildqueue.txt -t TestCurrentBuildBehavior.txt

== Demo and Q/A ==

We will need to Q/A this on dogfood.

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting changed files:
  lib/lp/soyuz/model/builder.py
  lib/lp/soyuz/doc/builder.txt
  lib/lp/soyuz/doc/buildqueue.txt
  lib/lp/soyuz/configure.zcml
  lib/lp/soyuz/model/buildqueue.py
  lib/lp/buildmaster/model/buildfarmjobbehavior.py
  lib/lp/soyuz/interfaces/buildqueue.py
  lib/lp/soyuz/tests/test_builder.py
  lib/lp/soyuz/model/binarypackagebuildbehavior.py
  lib/lp/buildmaster/interfaces/buildfarmjobbehavior.py
  lib/lp/soyuz/interfaces/builder.py

== Pylint notices ==

lib/lp/soyuz/model/builder.py
    23: [F0401] Unable to import 'lazr.delegates' (No module named delegates)

lib/lp/soyuz/interfaces/buildqueue.py
    18: [F0401] Unable to import 'lazr.restful.fields' (No module named restful)

--
Michael

« Back to merge proposal