Merge lp:~robru/cupstream2distro/more-strict-gles into lp:cupstream2distro

Proposed by Robert Bruce Park
Status: Merged
Approved by: Robert Bruce Park
Approved revision: 1152
Merged at revision: 1150
Proposed branch: lp:~robru/cupstream2distro/more-strict-gles
Merge into: lp:cupstream2distro
Diff against target: 134 lines (+22/-25)
5 files modified
citrain/build.py (+2/-3)
citrain/jenkins-templates/build.xml.tmpl (+0/-5)
citrain/recipes/base.py (+10/-9)
tests/unit/test_recipe_base.py (+0/-8)
tests/unit/test_script_build.py (+10/-0)
To merge this branch: bzr merge lp:~robru/cupstream2distro/more-strict-gles
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Approve
Robert Bruce Park (community) Approve
Review via email: mp+274009@code.launchpad.net

Commit message

Force GLES twins to keep versions in lock-step.

To post a comment you must log in.
Revision history for this message
Robert Bruce Park (robru) wrote :

Looks great in staging.

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:1152
http://jenkins.qa.ubuntu.com/job/cu2d-choo-choo-ci/822/
Executed test runs:

Click here to trigger a rebuild:
http://s-jenkins.ubuntu-ci:8080/job/cu2d-choo-choo-ci/822/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'citrain/build.py'
--- citrain/build.py 2015-09-24 00:12:08 +0000
+++ citrain/build.py 2015-10-09 17:56:49 +0000
@@ -30,9 +30,6 @@
30FORCE_REBUILD30FORCE_REBUILD
31 Force rebuilding an MP even if there is no diff with dest.31 Force rebuilding an MP even if there is no diff with dest.
3232
33IGNORE_MISSING_TWINS
34 Don't enforce building a -gles twin for packages that usually have it.
35
36TAKE_WHOLE_COMMIT_MESSAGE33TAKE_WHOLE_COMMIT_MESSAGE
37 Use whole commit message in changelog, not just the brief part.34 Use whole commit message in changelog, not just the brief part.
3835
@@ -53,6 +50,7 @@
53from glob import glob50from glob import glob
54from os.path import basename51from os.path import basename
5552
53from citrain.recipes.base import missing
56from citrain.recipes.manager import Manager54from citrain.recipes.manager import Manager
57from cupstream2distro.silomanager import SiloState55from cupstream2distro.silomanager import SiloState
58from cupstream2distro.errors import BuildError, CITrainError56from cupstream2distro.errors import BuildError, CITrainError
@@ -80,6 +78,7 @@
80 """Decide which packages need to be built."""78 """Decide which packages need to be built."""
81 self.names = set(env.PACKAGES_TO_REBUILD.split()79 self.names = set(env.PACKAGES_TO_REBUILD.split()
82 or self.silo_state.all_projects)80 or self.silo_state.all_projects)
81 self.names.update(missing(self.names))
83 include_all = 'true' in (env.FORCE_REBUILD, env.WATCH_ONLY)82 include_all = 'true' in (env.FORCE_REBUILD, env.WATCH_ONLY)
84 if not (include_all or env.PACKAGES_TO_REBUILD):83 if not (include_all or env.PACKAGES_TO_REBUILD):
85 # Don't rebuild existing builds without forcing.84 # Don't rebuild existing builds without forcing.
8685
=== modified file 'citrain/jenkins-templates/build.xml.tmpl'
--- citrain/jenkins-templates/build.xml.tmpl 2015-09-21 21:43:37 +0000
+++ citrain/jenkins-templates/build.xml.tmpl 2015-10-09 17:56:49 +0000
@@ -39,11 +39,6 @@
39 <defaultValue>false</defaultValue>39 <defaultValue>false</defaultValue>
40 </hudson.model.BooleanParameterDefinition>40 </hudson.model.BooleanParameterDefinition>
41 <hudson.model.BooleanParameterDefinition>41 <hudson.model.BooleanParameterDefinition>
42 <name>IGNORE_MISSING_TWINS</name>
43 <description>(Usually irrelevant) Ignore missing 'twin' packages for the selected list (like those having -gles duplicates).</description>
44 <defaultValue>false</defaultValue>
45 </hudson.model.BooleanParameterDefinition>
46 <hudson.model.BooleanParameterDefinition>
47 <name>TAKE_WHOLE_COMMIT_MESSAGE</name>42 <name>TAKE_WHOLE_COMMIT_MESSAGE</name>
48 <description>Use whole commit message when generating changelog, not just the brief part.</description>43 <description>Use whole commit message when generating changelog, not just the brief part.</description>
49 <defaultValue>false</defaultValue>44 <defaultValue>false</defaultValue>
5045
=== modified file 'citrain/recipes/base.py'
--- citrain/recipes/base.py 2015-10-02 06:00:12 +0000
+++ citrain/recipes/base.py 2015-10-09 17:56:49 +0000
@@ -89,6 +89,11 @@
89TWINS.update({v: k for k, v in TWINS.items()})89TWINS.update({v: k for k, v in TWINS.items()})
9090
9191
92def missing(names):
93 """Identify which twins are missing."""
94 return [TWINS[n] for n in names if n in TWINS and not TWINS[n] in names]
95
96
92DO_NOT_PUBLISH = {'failed', 'error', 'dirty'}97DO_NOT_PUBLISH = {'failed', 'error', 'dirty'}
93BUILD_FAILURES = (98BUILD_FAILURES = (
94 'Build for superseded Source',99 'Build for superseded Source',
@@ -170,15 +175,11 @@
170 :param source_names: List of debian source package names in this silo.175 :param source_names: List of debian source package names in this silo.
171 :raises BuildError: If required twin packages are missing.176 :raises BuildError: If required twin packages are missing.
172 """177 """
173 if env.IGNORE_MISSING_TWINS == 'true':178 names = missing(source_names)
174 logging.warning('Honoring your request to ignore missing twins.')179 if names:
175 else:180 raise BuildError(
176 missing = [TWINS[s] for s in source_names181 'Silo config is missing these packages: {}'.format(
177 if s in TWINS and not TWINS[s] in source_names]182 ', '.join(names)))
178 if missing:
179 raise BuildError(
180 'Silo config is missing these packages: {}'.format(
181 ', '.join(missing)))
182183
183 @staticmethod184 @staticmethod
184 def post_validate_phase(silo_state):185 def post_validate_phase(silo_state):
185186
=== modified file 'tests/unit/test_recipe_base.py'
--- tests/unit/test_recipe_base.py 2015-10-02 06:00:12 +0000
+++ tests/unit/test_recipe_base.py 2015-10-09 17:56:49 +0000
@@ -97,26 +97,18 @@
9797
98 def test_validate_twin_packages(self):98 def test_validate_twin_packages(self):
99 """Prevent build from continuing if twins are missing."""99 """Prevent build from continuing if twins are missing."""
100 env.IGNORE_MISSING_TWINS = ''
101 with self.assertRaisesRegexp(CITrainError, 'packages: qtmir-gles'):100 with self.assertRaisesRegexp(CITrainError, 'packages: qtmir-gles'):
102 BuildBase.validate_twin_packages(101 BuildBase.validate_twin_packages(
103 ['qtmir', 'qtubuntu', 'qtubuntu-gles'])102 ['qtmir', 'qtubuntu', 'qtubuntu-gles'])
104103
105 def test_validate_twin_packages_reverse(self):104 def test_validate_twin_packages_reverse(self):
106 """Prevent build from continuing if reverse twins are missing."""105 """Prevent build from continuing if reverse twins are missing."""
107 env.IGNORE_MISSING_TWINS = ''
108 with self.assertRaisesRegexp(CITrainError, 'packages: qtmir'):106 with self.assertRaisesRegexp(CITrainError, 'packages: qtmir'):
109 BuildBase.validate_twin_packages(107 BuildBase.validate_twin_packages(
110 ['qtmir-gles', 'qtubuntu', 'qtubuntu-gles'])108 ['qtmir-gles', 'qtubuntu', 'qtubuntu-gles'])
111109
112 def test_validate_twin_packages_ignored(self):
113 """Allow build to continue even if twins are missing."""
114 env.IGNORE_MISSING_TWINS = 'true'
115 BuildBase.validate_twin_packages(['qtmir', 'qtubuntu'])
116
117 def test_validate_twin_packages_approved(self):110 def test_validate_twin_packages_approved(self):
118 """Allow build to continue when no twins are missing."""111 """Allow build to continue when no twins are missing."""
119 env.IGNORE_MISSING_TWINS = ''
120 BuildBase.validate_twin_packages(['qtmir', 'qtmir-gles'])112 BuildBase.validate_twin_packages(['qtmir', 'qtmir-gles'])
121 BuildBase.validate_twin_packages(['foo', 'bar'])113 BuildBase.validate_twin_packages(['foo', 'bar'])
122 BuildBase.validate_twin_packages(114 BuildBase.validate_twin_packages(
123115
=== modified file 'tests/unit/test_script_build.py'
--- tests/unit/test_script_build.py 2015-09-24 05:23:10 +0000
+++ tests/unit/test_script_build.py 2015-10-09 17:56:49 +0000
@@ -103,6 +103,16 @@
103 bman.choose_packages()103 bman.choose_packages()
104 self.assertEqual(bman.names, set(['a', 'b']))104 self.assertEqual(bman.names, set(['a', 'b']))
105105
106 def test_buildmanager_choose_packages_twins(self):
107 """Always add twins for all builds."""
108 sources = ['qtmir', 'qtmir-gles', 'foo']
109 silo_state = Mock(all_projects=sources, sources=sources)
110 self.script.env.PACKAGES_TO_REBUILD = 'qtmir'
111 self.script.env.FORCE_REBUILD = 'false'
112 bman = self.script.BuildManager(silo_state)
113 bman.choose_packages()
114 self.assertEqual(bman.names, set(['qtmir', 'qtmir-gles']))
115
106 def test_buildmanager_choose_packages_none_found(self):116 def test_buildmanager_choose_packages_none_found(self):
107 """Fail when no packages to act upon."""117 """Fail when no packages to act upon."""
108 silo_state = Mock(118 silo_state = Mock(

Subscribers

People subscribed via source and target branches