Merge lp:~abentley/launchpad/append-distroseries into lp:launchpad

Proposed by Aaron Bentley on 2010-04-20
Status: Merged
Approved by: Tim Penhey on 2010-04-20
Approved revision: no longer in the source branch.
Merged at revision: not available
Proposed branch: lp:~abentley/launchpad/append-distroseries
Merge into: lp:launchpad
Diff against target: 127 lines (+15/-9)
6 files modified
lib/canonical/buildd/buildrecipe (+4/-2)
lib/canonical/buildd/sourcepackagerecipe.py (+4/-1)
lib/lp/code/model/recipebuilder.py (+3/-3)
lib/lp/code/tests/test_recipebuilder.py (+2/-1)
utilities/lp.pylintrc (+1/-1)
utilities/sourcedeps.conf (+1/-1)
To merge this branch: bzr merge lp:~abentley/launchpad/append-distroseries
Reviewer Review Type Date Requested Status
Tim Penhey (community) 2010-04-20 Approve on 2010-04-20
Review via email: mp+23728@code.launchpad.net

Commit Message

Append distroseries to debversion

Description of the Change

= Summary =
Provide distroseries in debversion, to prevent builds that differ only by
distroseries from having the same debversion.

== Proposed fix ==
Require a newer version of bzr-builder which supports --append-version.
Pass the distroseries name into the buildd.
Call bzr-builder with --append-version $distroseries.

== Pre-implementation notes ==
Preimplementation was with james_w

== Implementation details ==
Various lint fixes were done as drivebys. Globally suppressed F0401, "Unable
to import", because it produces excessive false positives, and legitimate
instances of this issue would be caught by the test suite anyhow.

== Tests ==
bin/test test_recipebuilder

== Demo and Q/A ==
Should be tested 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:
  utilities/lp.pylintrc
  lib/canonical/buildd/sourcepackagerecipe.py
  lib/canonical/buildd/buildrecipe
  utilities/sourcedeps.conf
  lib/lp/code/tests/test_recipebuilder.py
  lib/lp/code/model/recipebuilder.py

To post a comment you must log in.
Tim Penhey (thumper) wrote :

Seems fine.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/canonical/buildd/buildrecipe'
2--- lib/canonical/buildd/buildrecipe 2010-01-14 02:36:36 +0000
3+++ lib/canonical/buildd/buildrecipe 2010-04-20 01:40:48 +0000
4@@ -24,7 +24,7 @@
5 """Builds a package from a recipe."""
6
7 def __init__(self, build_id, author_name, author_email,
8- package_name, suite):
9+ package_name, suite, distroseries_name):
10 """Constructor.
11
12 :param build_id: The id of the build (a str).
13@@ -36,6 +36,7 @@
14 self.build_id = build_id
15 self.author_name = author_name
16 self.author_email = author_email
17+ self.distroseries_name = distroseries_name
18 self.package_name = package_name
19 self.suite = suite
20 self.base_branch = None
21@@ -69,7 +70,8 @@
22 'sudo', '-u', self.username, 'DEBEMAIL=%s' % self.author_email,
23 'DEBFULLNAME=%s' % self.author_name, 'bzr', 'dailydeb',
24 '--no-build', recipe_path_relative, self.tree_path_relative,
25- '--manifest', manifest_path_relative])
26+ '--manifest', manifest_path_relative,
27+ '--append-version', '~%s1' % self.distroseries_name])
28 if retcode != 0:
29 return retcode
30 (source,) = [name for name in os.listdir(self.tree_path)
31
32=== modified file 'lib/canonical/buildd/sourcepackagerecipe.py'
33--- lib/canonical/buildd/sourcepackagerecipe.py 2010-01-14 20:55:22 +0000
34+++ lib/canonical/buildd/sourcepackagerecipe.py 2010-04-20 01:40:48 +0000
35@@ -1,5 +1,6 @@
36 # Copyright 2010 Canonical Ltd. This software is licensed under the
37 # GNU Affero General Public License version 3 (see the file LICENSE).
38+# pylint: disable-msg=E1002
39
40 """The manager class for building packages from recipes."""
41
42@@ -75,6 +76,7 @@
43 self.author_name = extra_args['author_name']
44 self.author_email = extra_args['author_email']
45 self.archive_purpose = extra_args['archive_purpose']
46+ self.distroseries_name = extra_args['distroseries_name']
47
48 super(SourcePackageRecipeBuildManager, self).initiate(
49 files, chroot, extra_args)
50@@ -96,7 +98,8 @@
51 splat_file(recipe_path, self.recipe_text)
52 args = [
53 "buildrecipe.py", self._buildid, self.author_name,
54- self.author_email, self.package_name, self.suite]
55+ self.author_email, self.package_name, self.suite,
56+ self.distroseries_name]
57 self.runSubProcess(self.build_recipe_path, args)
58
59 def iterate_BUILD_RECIPE(self, retcode):
60
61=== modified file 'lib/lp/code/model/recipebuilder.py'
62--- lib/lp/code/model/recipebuilder.py 2010-04-12 05:52:01 +0000
63+++ lib/lp/code/model/recipebuilder.py 2010-04-20 01:40:48 +0000
64@@ -8,7 +8,7 @@
65 'RecipeBuildBehavior',
66 ]
67
68-from zope.component import adapts, getUtility
69+from zope.component import adapts
70 from zope.interface import implements
71
72 from lp.archiveuploader.permission import check_upload_to_pocket
73@@ -18,8 +18,7 @@
74 from lp.buildmaster.model.buildfarmjobbehavior import (
75 BuildFarmJobBehaviorBase)
76 from lp.code.interfaces.sourcepackagerecipebuild import (
77- ISourcePackageRecipeBuildJob, ISourcePackageRecipeBuildSource)
78-from lp.code.model.sourcepackagerecipebuild import SourcePackageRecipeBuild
79+ ISourcePackageRecipeBuildJob)
80 from lp.registry.interfaces.pocket import PackagePublishingPocket
81 from lp.soyuz.adapters.archivedependencies import (
82 get_primary_current_component, get_sources_list_for_building)
83@@ -71,6 +70,7 @@
84 self.build.sourcepackagename.name)
85 args['archives'] = get_sources_list_for_building(self.build,
86 distroarchseries, self.build.sourcepackagename.name)
87+ args['distroseries_name'] = self.build.distroseries.name
88 return args
89
90 def dispatchBuildToSlave(self, build_queue_id, logger):
91
92=== modified file 'lib/lp/code/tests/test_recipebuilder.py'
93--- lib/lp/code/tests/test_recipebuilder.py 2010-04-13 14:50:01 +0000
94+++ lib/lp/code/tests/test_recipebuilder.py 2010-04-20 01:40:48 +0000
95@@ -112,7 +112,8 @@
96 'recipe_text': '# bzr-builder format 0.2 deb-version 1.0\n'
97 'lp://dev/~joe/someapp/pkg\n',
98 'archives': get_sources_list_for_building(job.build,
99- distroarchseries, job.build.sourcepackagename.name)
100+ distroarchseries, job.build.sourcepackagename.name),
101+ 'distroseries_name': job.build.distroseries.name,
102 }, job._extraBuildArgs(distroarchseries))
103
104 def test_dispatchBuildToSlave(self):
105
106=== modified file 'utilities/lp.pylintrc'
107--- utilities/lp.pylintrc 2009-06-24 20:15:50 +0000
108+++ utilities/lp.pylintrc 2010-04-20 01:40:48 +0000
109@@ -73,7 +73,7 @@
110 # :W0621: *Redefining name %r from outer scope (line %s)* (pylint does a poor evaluation)
111 # :W0704: *Except does not do anything* (Does not check for comment explaining fall-through)
112 # :E0611: *No name %r in module 'sqlobject'* (Pylint shipped with gutsy does not understand SQLObject. Pyflakes checks the imports too anyway.)
113-disable-msg=I0011,E0101,E0202,E0203,C0103,C0202,C0302,C0111,W0142,W0201,W0212,W0221,W0223,W0232,W0612,W0613,W0621,W0622,W0704,W0710,E0611
114+disable-msg=I0011,E0101,E0202,E0203,C0103,C0202,C0302,C0111,W0142,W0201,W0212,W0221,W0223,W0232,W0612,W0613,W0621,W0622,W0704,W0710,E0611,F0401
115
116
117 [REPORTS]
118
119=== modified file 'utilities/sourcedeps.conf'
120--- utilities/sourcedeps.conf 2010-04-14 14:12:29 +0000
121+++ utilities/sourcedeps.conf 2010-04-20 01:40:48 +0000
122@@ -1,4 +1,4 @@
123-bzr-builder lp:~launchpad-pqm/bzr-builder/trunk;revno=63
124+bzr-builder lp:~launchpad-pqm/bzr-builder/trunk;revno=64
125 bzr-git lp:~launchpad-pqm/bzr-git/devel;revno=253
126 bzr-hg lp:~launchpad-pqm/bzr-hg/devel;revno=281
127 bzr-loom lp:~launchpad-pqm/bzr-loom/trunk;revno=47