Merge lp:~abentley/launchpad/allow-0.3-2 into lp:launchpad/db-devel

Proposed by Aaron Bentley
Status: Merged
Approved by: Aaron Bentley
Approved revision: no longer in the source branch.
Merged at revision: 10011
Proposed branch: lp:~abentley/launchpad/allow-0.3-2
Merge into: lp:launchpad/db-devel
Prerequisite: lp:~abentley/launchpad/nest-part-model
Diff against target: 322 lines (+39/-37)
6 files modified
lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+6/-6)
lib/lp/code/interfaces/sourcepackagerecipe.py (+3/-3)
lib/lp/code/model/sourcepackagerecipedata.py (+1/-1)
lib/lp/code/model/tests/test_recipebuilder.py (+11/-7)
lib/lp/code/model/tests/test_sourcepackagerecipe.py (+18/-16)
utilities/sourcedeps.conf (+0/-4)
To merge this branch: bzr merge lp:~abentley/launchpad/allow-0.3-2
Reviewer Review Type Date Requested Status
Tim Penhey (community) Approve
Review via email: mp+39562@code.launchpad.net

Commit message

Support bzr-builder format 0.3

Description of the change

= Summary =
Support bzr-builder recipe format 0.3

== Proposed fix ==
Update the maximim format to 0.3

== Pre-implementation notes ==
None

== Implementation details ==
Various tests and data were updated to 0.3 format. Now-unnecessary
monkey-patching was removed. Lint was cleaned up.

== Tests ==
bin/test sourcepackagerecipe

== Demo and Q/A ==
Create a recipe. It should default to 0.3 format. Add a nest-part instruction
and save. The recipe should be accepted, and displayed correctly. Request a
build of the recipe. The build should succeed.

= Launchpad lint =

Checking for conflicts and issues in changed files.

Linting changed files:
  database/sampledata/current.sql
  database/sampledata/current-dev.sql
  lib/lp/code/model/sourcepackagerecipedata.py
  database/schema/comments.sql
  lib/lp/code/model/tests/test_sourcepackagerecipe.py
  lib/lp/testing/__init__.py
  utilities/sourcedeps.conf
  lib/lp/code/browser/tests/test_sourcepackagerecipe.py
  lib/lp/code/interfaces/sourcepackagerecipe.py
  lib/lp/code/model/tests/test_recipebuilder.py
  database/schema/patch-2208-99-0.sql

./lib/lp/code/model/sourcepackagerecipedata.py
     189: E202 whitespace before ')'
./lib/lp/testing/__init__.py
     129: 'anonymous_logged_in' imported but unused
     129: 'with_anonymous_login' imported but unused
     129: 'is_logged_in' imported but unused
     148: 'launchpadlib_for' imported but unused
     148: 'launchpadlib_credentials_for' imported but unused
     129: 'person_logged_in' imported but unused
     148: 'oauth_access_token_for' imported but unused
     129: 'login_celebrity' imported but unused
     129: 'with_celebrity_logged_in' imported but unused
     147: 'test_tales' imported but unused
     129: 'celebrity_logged_in' imported but unused
     129: 'run_with_login' imported but unused
     129: 'with_person_logged_in' imported but unused
     129: 'login_team' imported but unused
     129: 'login_person' imported but unused
     129: 'login_as' imported but unused
     888: E302 expected 2 blank lines, found 1
     964: E302 expected 2 blank lines, found 1
./database/schema/patch-2208-99-0.sql
       4: Line exceeds 78 characters.
       5: Line exceeds 78 characters.
       6: Line exceeds 78 characters.
       7: Line exceeds 78 characters.

To post a comment you must log in.
Revision history for this message
Tim Penhey (thumper) :
review: Approve
Revision history for this message
Robert Collins (lifeless) wrote :

Uhm guys, this has a database patch in it. That needs to go through
the DB review process. I'm happy to discuss whether we need such a
review process, but while we have the policy, we should follow it. I'm
landing a revert now.

Revision history for this message
Aaron Bentley (abentley) wrote :

No, it doesn't. The database patch was introduced in a prerequisite branch, and reviewed accordingly.

https://code.launchpad.net/~abentley/launchpad/nest-part-db

Revision history for this message
Robert Collins (lifeless) wrote :

Aaron points out that this *was* reviewed - sorry that I didn't see
that. However it was landed without applying the db number component
of the review. I've filed a bug asking for a safeguard here.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/code/browser/tests/test_sourcepackagerecipe.py'
2--- lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2010-11-24 18:40:48 +0000
3+++ lib/lp/code/browser/tests/test_sourcepackagerecipe.py 2010-11-27 07:28:01 +0000
4@@ -141,7 +141,7 @@
5 .*
6
7 Recipe contents
8- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
9+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
10 lp://dev/~chef/ratatouille/veggies"""
11 main_text = extract_text(find_main_content(browser.contents))
12 self.assertTextMatchesExpressionIgnoreWhitespace(
13@@ -291,7 +291,7 @@
14
15 browser = self.createRecipe(
16 dedent('''
17- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
18+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
19 %(branch)s
20 merge %(package_branch)s
21 ''' % {
22@@ -467,7 +467,7 @@
23 .*
24
25 Recipe contents
26- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
27+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
28 lp://dev/~chef/ratatouille/meat"""
29 main_text = extract_text(find_main_content(browser.contents))
30 self.assertTextMatchesExpressionIgnoreWhitespace(
31@@ -527,7 +527,7 @@
32 .*
33
34 Recipe contents
35- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
36+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
37 lp://dev/~chef/ratatouille/meat"""
38 main_text = extract_text(find_main_content(browser.contents))
39 self.assertTextMatchesExpressionIgnoreWhitespace(
40@@ -667,7 +667,7 @@
41 .*
42
43 Recipe contents
44- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
45+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
46 lp://dev/~chef/ratatouille/meat"""
47 main_text = extract_text(find_main_content(browser.contents))
48 self.assertTextMatchesExpressionIgnoreWhitespace(
49@@ -721,7 +721,7 @@
50 Request build\(s\)
51
52 Recipe contents
53- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
54+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
55 lp://dev/~chef/chocolate/cake""", self.getMainText(recipe))
56
57 def test_index_no_builds(self):
58
59=== modified file 'lib/lp/code/interfaces/sourcepackagerecipe.py'
60--- lib/lp/code/interfaces/sourcepackagerecipe.py 2010-11-25 10:18:51 +0000
61+++ lib/lp/code/interfaces/sourcepackagerecipe.py 2010-11-27 07:28:01 +0000
62@@ -63,7 +63,7 @@
63
64
65 MINIMAL_RECIPE_TEXT = dedent(u'''\
66- # bzr-builder format 0.2 deb-version {debupstream}-0~{revno}
67+ # bzr-builder format 0.3 deb-version {debupstream}-0~{revno}
68 %s
69 ''')
70
71@@ -120,8 +120,7 @@
72 @operation_parameters(
73 archive=Reference(schema=IArchive),
74 distroseries=Reference(schema=IDistroSeries),
75- pocket=Choice(vocabulary=PackagePublishingPocket,)
76- )
77+ pocket=Choice(vocabulary=PackagePublishingPocket,))
78 @export_write_operation()
79 def requestBuild(archive, distroseries, requester, pocket):
80 """Request that the recipe be built in to the specified archive.
81@@ -149,6 +148,7 @@
82 references to this object.
83 """
84
85+
86 class ISourcePackageRecipeEditableAttributes(IHasOwner):
87 """ISourcePackageRecipe attributes that can be edited.
88
89
90=== modified file 'lib/lp/code/model/sourcepackagerecipedata.py'
91--- lib/lp/code/model/sourcepackagerecipedata.py 2010-11-27 07:27:58 +0000
92+++ lib/lp/code/model/sourcepackagerecipedata.py 2010-11-27 07:28:01 +0000
93@@ -130,7 +130,7 @@
94 return branch
95
96
97-MAX_RECIPE_FORMAT = 0.2
98+MAX_RECIPE_FORMAT = 0.3
99
100
101 class SourcePackageRecipeData(Storm):
102
103=== modified file 'lib/lp/code/model/tests/test_recipebuilder.py'
104--- lib/lp/code/model/tests/test_recipebuilder.py 2010-11-24 14:13:27 +0000
105+++ lib/lp/code/model/tests/test_recipebuilder.py 2010-11-27 07:28:01 +0000
106@@ -73,8 +73,8 @@
107 recipe_registrant, recipe_owner, distroseries, u"recept",
108 u"Recipe description", branches=[somebranch])
109 spb = self.factory.makeSourcePackageRecipeBuild(
110- sourcepackage=sourcepackage, recipe=recipe, requester=recipe_owner,
111- distroseries=distroseries)
112+ sourcepackage=sourcepackage,
113+ recipe=recipe, requester=recipe_owner, distroseries=distroseries)
114 job = spb.makeJob()
115 job_id = removeSecurityProxy(job.job).id
116 BuildQueue(job_type=BuildFarmJobType.RECIPEBRANCHBUILD, job=job_id)
117@@ -161,7 +161,7 @@
118 'archive_purpose': 'PPA',
119 'ogrecomponent': 'universe',
120 'recipe_text':
121- '# bzr-builder format 0.2 deb-version {debupstream}-0~{revno}\n'
122+ '# bzr-builder format 0.3 deb-version {debupstream}-0~{revno}\n'
123 'lp://dev/~joe/someapp/pkg\n',
124 'archives': expected_archives,
125 'distroseries_name': job.build.distroseries.name,
126@@ -172,14 +172,16 @@
127 # registrant is used.
128 self._setBuilderConfig()
129 recipe_registrant = self.factory.makePerson(
130- name='eric', displayname='Eric the Viking', email='eric@vikings.r.us')
131+ name='eric', displayname='Eric the Viking',
132+ email='eric@vikings.r.us')
133 recipe_owner = self.factory.makeTeam(
134 name='vikings', members=[recipe_registrant])
135
136 job = self.makeJob(recipe_registrant, recipe_owner)
137 distroarchseries = job.build.distroseries.architectures[0]
138 extra_args = job._extraBuildArgs(distroarchseries)
139- self.assertEqual("Launchpad Package Builder", extra_args['author_name'])
140+ self.assertEqual(
141+ "Launchpad Package Builder", extra_args['author_name'])
142 self.assertEqual("noreply@launchpad.net", extra_args['author_email'])
143
144 def test_extraBuildArgs_team_owner_with_email(self):
145@@ -206,7 +208,8 @@
146 job = self.makeJob(owner)
147 distroarchseries = job.build.distroseries.architectures[0]
148 extra_args = job._extraBuildArgs(distroarchseries)
149- self.assertEqual("Launchpad Package Builder", extra_args['author_name'])
150+ self.assertEqual(
151+ "Launchpad Package Builder", extra_args['author_name'])
152 self.assertEqual("noreply@launchpad.net", extra_args['author_email'])
153
154 def test_extraBuildArgs_withBadConfigForBzrBuilderPPA(self):
155@@ -229,7 +232,7 @@
156 'archive_purpose': 'PPA',
157 'ogrecomponent': 'universe',
158 'recipe_text':
159- '# bzr-builder format 0.2 deb-version {debupstream}-0~{revno}\n'
160+ '# bzr-builder format 0.3 deb-version {debupstream}-0~{revno}\n'
161 'lp://dev/~joe/someapp/pkg\n',
162 'archives': expected_archives,
163 'distroseries_name': job.build.distroseries.name,
164@@ -267,6 +270,7 @@
165 job.setBuilder(builder)
166 logger = BufferLogger()
167 d = defer.maybeDeferred(job.dispatchBuildToSlave, "someid", logger)
168+
169 def check_dispatch(ignored):
170 logger.buffer.seek(0)
171
172
173=== modified file 'lib/lp/code/model/tests/test_sourcepackagerecipe.py'
174--- lib/lp/code/model/tests/test_sourcepackagerecipe.py 2010-11-27 07:27:58 +0000
175+++ lib/lp/code/model/tests/test_sourcepackagerecipe.py 2010-11-27 07:28:01 +0000
176@@ -41,7 +41,6 @@
177 MINIMAL_RECIPE_TEXT,
178 recipes_enabled,
179 )
180-from lp.code.model import sourcepackagerecipedata
181 from lp.code.interfaces.sourcepackagerecipebuild import (
182 ISourcePackageRecipeBuild,
183 ISourcePackageRecipeBuildJob,
184@@ -72,7 +71,6 @@
185 launchpadlib_for,
186 login,
187 login_person,
188- monkey_patch,
189 person_logged_in,
190 set_feature_flag,
191 TestCaseWithFactory,
192@@ -229,7 +227,7 @@
193
194 def test_rejects_run_command(self):
195 recipe_text = '''\
196- # bzr-builder format 0.2 deb-version 0.1-{revno}
197+ # bzr-builder format 0.3 deb-version 0.1-{revno}
198 %(base)s
199 run touch test
200 ''' % dict(base=self.factory.makeAnyBranch().bzr_identity)
201@@ -242,7 +240,7 @@
202 sp_recipe = self.factory.makeSourcePackageRecipe()
203 old_branches = list(sp_recipe.getReferencedBranches())
204 recipe_text = '''\
205- # bzr-builder format 0.2 deb-version 0.1-{revno}
206+ # bzr-builder format 0.3 deb-version 0.1-{revno}
207 %(base)s
208 run touch test
209 ''' % dict(base=self.factory.makeAnyBranch().bzr_identity)
210@@ -263,8 +261,7 @@
211 "%s revid:base_revid\n"
212 "nest-part nested1 %s foo bar tag:foo\n" %
213 (base.bzr_identity, nested.bzr_identity))
214- with monkey_patch(sourcepackagerecipedata, MAX_RECIPE_FORMAT=0.3):
215- recipe = self.factory.makeSourcePackageRecipe(recipe=recipe_text)
216+ recipe = self.factory.makeSourcePackageRecipe(recipe=recipe_text)
217 self.assertEqual(recipe_text, recipe.recipe_text)
218
219 def test_nest_part_no_target(self):
220@@ -276,10 +273,15 @@
221 "%s revid:base_revid\n"
222 "nest-part nested1 %s foo\n" %
223 (base.bzr_identity, nested.bzr_identity))
224- with monkey_patch(sourcepackagerecipedata, MAX_RECIPE_FORMAT=0.3):
225- recipe = self.factory.makeSourcePackageRecipe(recipe=recipe_text)
226+ recipe = self.factory.makeSourcePackageRecipe(recipe=recipe_text)
227 self.assertEqual(recipe_text, recipe.recipe_text)
228
229+ def test_accept_format_0_3(self):
230+ """Recipe format 0.3 is accepted."""
231+ builder_recipe = self.factory.makeRecipe()
232+ builder_recipe.format = 0.3
233+ self.factory.makeSourcePackageRecipe(recipe=str(builder_recipe))
234+
235 def test_reject_newer_formats(self):
236 with recipe_parser_newest_version(145.115):
237 builder_recipe = self.factory.makeRecipe()
238@@ -628,7 +630,7 @@
239
240 def test_builds_simplest_recipe(self):
241 recipe_text = '''\
242- # bzr-builder format 0.2 deb-version 0.1-{revno}
243+ # bzr-builder format 0.3 deb-version 0.1-{revno}
244 %(base)s
245 ''' % self.branch_identities
246 base_branch = self.get_recipe(recipe_text)
247@@ -638,7 +640,7 @@
248
249 def test_builds_recipe_with_merge(self):
250 recipe_text = '''\
251- # bzr-builder format 0.2 deb-version 0.1-{revno}
252+ # bzr-builder format 0.3 deb-version 0.1-{revno}
253 %(base)s
254 merge bar %(merged)s
255 ''' % self.branch_identities
256@@ -653,7 +655,7 @@
257
258 def test_builds_recipe_with_nest(self):
259 recipe_text = '''\
260- # bzr-builder format 0.2 deb-version 0.1-{revno}
261+ # bzr-builder format 0.3 deb-version 0.1-{revno}
262 %(base)s
263 nest bar %(nested)s baz
264 ''' % self.branch_identities
265@@ -668,7 +670,7 @@
266
267 def test_builds_recipe_with_nest_then_merge(self):
268 recipe_text = '''\
269- # bzr-builder format 0.2 deb-version 0.1-{revno}
270+ # bzr-builder format 0.3 deb-version 0.1-{revno}
271 %(base)s
272 nest bar %(nested)s baz
273 merge zam %(merged)s
274@@ -688,7 +690,7 @@
275
276 def test_builds_recipe_with_merge_then_nest(self):
277 recipe_text = '''\
278- # bzr-builder format 0.2 deb-version 0.1-{revno}
279+ # bzr-builder format 0.3 deb-version 0.1-{revno}
280 %(base)s
281 merge zam %(merged)s
282 nest bar %(nested)s baz
283@@ -708,7 +710,7 @@
284
285 def test_builds_a_merge_in_to_a_nest(self):
286 recipe_text = '''\
287- # bzr-builder format 0.2 deb-version 0.1-{revno}
288+ # bzr-builder format 0.3 deb-version 0.1-{revno}
289 %(base)s
290 nest bar %(nested)s baz
291 merge zam %(merged)s
292@@ -731,7 +733,7 @@
293 nested2 = self.factory.makeAnyBranch()
294 self.branch_identities['nested2'] = nested2.bzr_identity
295 recipe_text = '''\
296- # bzr-builder format 0.2 deb-version 0.1-{revno}
297+ # bzr-builder format 0.3 deb-version 0.1-{revno}
298 %(base)s
299 nest bar %(nested)s baz
300 nest zam %(nested2)s zoo
301@@ -751,7 +753,7 @@
302
303 def tests_builds_recipe_with_revspecs(self):
304 recipe_text = '''\
305- # bzr-builder format 0.2 deb-version 0.1-{revno}
306+ # bzr-builder format 0.3 deb-version 0.1-{revno}
307 %(base)s revid:a
308 nest bar %(nested)s baz tag:b
309 merge zam %(merged)s 2
310
311=== modified file 'utilities/sourcedeps.conf'
312--- utilities/sourcedeps.conf 2010-11-27 07:27:58 +0000
313+++ utilities/sourcedeps.conf 2010-11-24 18:40:48 +0000
314@@ -1,8 +1,4 @@
315-<<<<<<< TREE
316 bzr-builder lp:~launchpad-pqm/bzr-builder/trunk;revno=68
317-=======
318-bzr-builder lp:~launchpad-pqm/bzr-builder/trunk;revno=67
319->>>>>>> MERGE-SOURCE
320 bzr-git lp:~launchpad-pqm/bzr-git/devel;revno=258
321 bzr-hg lp:~launchpad-pqm/bzr-hg/devel;revno=283
322 bzr-loom lp:~launchpad-pqm/bzr-loom/trunk;revno=48

Subscribers

People subscribed via source and target branches

to status/vote changes: