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
1=== modified file 'citrain/build.py'
2--- citrain/build.py 2015-09-24 00:12:08 +0000
3+++ citrain/build.py 2015-10-09 17:56:49 +0000
4@@ -30,9 +30,6 @@
5 FORCE_REBUILD
6 Force rebuilding an MP even if there is no diff with dest.
7
8-IGNORE_MISSING_TWINS
9- Don't enforce building a -gles twin for packages that usually have it.
10-
11 TAKE_WHOLE_COMMIT_MESSAGE
12 Use whole commit message in changelog, not just the brief part.
13
14@@ -53,6 +50,7 @@
15 from glob import glob
16 from os.path import basename
17
18+from citrain.recipes.base import missing
19 from citrain.recipes.manager import Manager
20 from cupstream2distro.silomanager import SiloState
21 from cupstream2distro.errors import BuildError, CITrainError
22@@ -80,6 +78,7 @@
23 """Decide which packages need to be built."""
24 self.names = set(env.PACKAGES_TO_REBUILD.split()
25 or self.silo_state.all_projects)
26+ self.names.update(missing(self.names))
27 include_all = 'true' in (env.FORCE_REBUILD, env.WATCH_ONLY)
28 if not (include_all or env.PACKAGES_TO_REBUILD):
29 # Don't rebuild existing builds without forcing.
30
31=== modified file 'citrain/jenkins-templates/build.xml.tmpl'
32--- citrain/jenkins-templates/build.xml.tmpl 2015-09-21 21:43:37 +0000
33+++ citrain/jenkins-templates/build.xml.tmpl 2015-10-09 17:56:49 +0000
34@@ -39,11 +39,6 @@
35 <defaultValue>false</defaultValue>
36 </hudson.model.BooleanParameterDefinition>
37 <hudson.model.BooleanParameterDefinition>
38- <name>IGNORE_MISSING_TWINS</name>
39- <description>(Usually irrelevant) Ignore missing 'twin' packages for the selected list (like those having -gles duplicates).</description>
40- <defaultValue>false</defaultValue>
41- </hudson.model.BooleanParameterDefinition>
42- <hudson.model.BooleanParameterDefinition>
43 <name>TAKE_WHOLE_COMMIT_MESSAGE</name>
44 <description>Use whole commit message when generating changelog, not just the brief part.</description>
45 <defaultValue>false</defaultValue>
46
47=== modified file 'citrain/recipes/base.py'
48--- citrain/recipes/base.py 2015-10-02 06:00:12 +0000
49+++ citrain/recipes/base.py 2015-10-09 17:56:49 +0000
50@@ -89,6 +89,11 @@
51 TWINS.update({v: k for k, v in TWINS.items()})
52
53
54+def missing(names):
55+ """Identify which twins are missing."""
56+ return [TWINS[n] for n in names if n in TWINS and not TWINS[n] in names]
57+
58+
59 DO_NOT_PUBLISH = {'failed', 'error', 'dirty'}
60 BUILD_FAILURES = (
61 'Build for superseded Source',
62@@ -170,15 +175,11 @@
63 :param source_names: List of debian source package names in this silo.
64 :raises BuildError: If required twin packages are missing.
65 """
66- if env.IGNORE_MISSING_TWINS == 'true':
67- logging.warning('Honoring your request to ignore missing twins.')
68- else:
69- missing = [TWINS[s] for s in source_names
70- if s in TWINS and not TWINS[s] in source_names]
71- if missing:
72- raise BuildError(
73- 'Silo config is missing these packages: {}'.format(
74- ', '.join(missing)))
75+ names = missing(source_names)
76+ if names:
77+ raise BuildError(
78+ 'Silo config is missing these packages: {}'.format(
79+ ', '.join(names)))
80
81 @staticmethod
82 def post_validate_phase(silo_state):
83
84=== modified file 'tests/unit/test_recipe_base.py'
85--- tests/unit/test_recipe_base.py 2015-10-02 06:00:12 +0000
86+++ tests/unit/test_recipe_base.py 2015-10-09 17:56:49 +0000
87@@ -97,26 +97,18 @@
88
89 def test_validate_twin_packages(self):
90 """Prevent build from continuing if twins are missing."""
91- env.IGNORE_MISSING_TWINS = ''
92 with self.assertRaisesRegexp(CITrainError, 'packages: qtmir-gles'):
93 BuildBase.validate_twin_packages(
94 ['qtmir', 'qtubuntu', 'qtubuntu-gles'])
95
96 def test_validate_twin_packages_reverse(self):
97 """Prevent build from continuing if reverse twins are missing."""
98- env.IGNORE_MISSING_TWINS = ''
99 with self.assertRaisesRegexp(CITrainError, 'packages: qtmir'):
100 BuildBase.validate_twin_packages(
101 ['qtmir-gles', 'qtubuntu', 'qtubuntu-gles'])
102
103- def test_validate_twin_packages_ignored(self):
104- """Allow build to continue even if twins are missing."""
105- env.IGNORE_MISSING_TWINS = 'true'
106- BuildBase.validate_twin_packages(['qtmir', 'qtubuntu'])
107-
108 def test_validate_twin_packages_approved(self):
109 """Allow build to continue when no twins are missing."""
110- env.IGNORE_MISSING_TWINS = ''
111 BuildBase.validate_twin_packages(['qtmir', 'qtmir-gles'])
112 BuildBase.validate_twin_packages(['foo', 'bar'])
113 BuildBase.validate_twin_packages(
114
115=== modified file 'tests/unit/test_script_build.py'
116--- tests/unit/test_script_build.py 2015-09-24 05:23:10 +0000
117+++ tests/unit/test_script_build.py 2015-10-09 17:56:49 +0000
118@@ -103,6 +103,16 @@
119 bman.choose_packages()
120 self.assertEqual(bman.names, set(['a', 'b']))
121
122+ def test_buildmanager_choose_packages_twins(self):
123+ """Always add twins for all builds."""
124+ sources = ['qtmir', 'qtmir-gles', 'foo']
125+ silo_state = Mock(all_projects=sources, sources=sources)
126+ self.script.env.PACKAGES_TO_REBUILD = 'qtmir'
127+ self.script.env.FORCE_REBUILD = 'false'
128+ bman = self.script.BuildManager(silo_state)
129+ bman.choose_packages()
130+ self.assertEqual(bman.names, set(['qtmir', 'qtmir-gles']))
131+
132 def test_buildmanager_choose_packages_none_found(self):
133 """Fail when no packages to act upon."""
134 silo_state = Mock(

Subscribers

People subscribed via source and target branches