Merge ~alexmurray/review-tools:dbus-app-activates-on-property-checking into review-tools:master
- Git
- lp:~alexmurray/review-tools
- dbus-app-activates-on-property-checking
- Merge into master
Status: | Rejected |
---|---|
Rejected by: | Alex Murray |
Proposed branch: | ~alexmurray/review-tools:dbus-app-activates-on-property-checking |
Merge into: | review-tools:master |
Diff against target: |
622 lines (+262/-49) 5 files modified
check-names.list (+1/-0) reviewtools/sr_common.py (+1/-2) reviewtools/sr_lint.py (+68/-27) reviewtools/tests/test_sr_lint.py (+112/-4) tests/test.sh.expected (+80/-16) |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alex Murray | Disapprove | ||
Samuele Pedroni | Pending | ||
James Henstridge | Pending | ||
Emilia Torino | Pending | ||
Review via email:
|
Commit message
Description of the change
This is required to allow things like https:/
- 78e4a06... by Alex Murray
-
Update check-names.list and tests/test.
sh.expected for new tests Signed-off-by: Alex Murray <email address hidden>

Alex Murray (alexmurray) wrote : | # |

Alex Murray (alexmurray) wrote : | # |
Yep, decided to go with jamesh original proposal as that is a bit cleaner than this.
Unmerged commits
- 78e4a06... by Alex Murray
-
Update check-names.list and tests/test.
sh.expected for new tests Signed-off-by: Alex Murray <email address hidden>
- 2a4797c... by Alex Murray
-
sr_lint: Add support for dbus apps/activates-on property checking
The app bus-name property is essentially deprecated by upstream and instead the
activates-on property is used instead to specify a list of dbus slot names which
the app should activate on. Add support for checking this property is valid and
remove the old activatable dbus slot property which is not actually used by
snapd.Signed-off-by: Alex Murray <email address hidden>
Preview Diff
1 | diff --git a/check-names.list b/check-names.list |
2 | index 1a977d9..623dca1 100644 |
3 | --- a/check-names.list |
4 | +++ b/check-names.list |
5 | @@ -59,6 +59,7 @@ lint-snap-v2:daemon| |
6 | lint-snap-v2:daemon_required| |
7 | lint-snap-v2:daemon-scope| |
8 | lint-snap-v2:dbus_activatable| |
9 | +lint-snap-v2:dbus_activates-on| |
10 | lint-snap-v2:dbus_bus-name_required| |
11 | lint-snap-v2:dbus_mixed_slots| |
12 | lint-snap-v2:dbus_slot_required| |
13 | diff --git a/reviewtools/sr_common.py b/reviewtools/sr_common.py |
14 | index aa71ee8..925fb0e 100644 |
15 | --- a/reviewtools/sr_common.py |
16 | +++ b/reviewtools/sr_common.py |
17 | @@ -102,6 +102,7 @@ class SnapReview(Review): |
18 | apps_required = ["command"] |
19 | apps_optional_cli = ["autostart"] |
20 | apps_optional_daemon = [ |
21 | + "activates-on", |
22 | "after", |
23 | "before", |
24 | "bus-name", # May deprecate: https://forum.snapcraft.io/t/support-for-daemon-dbus/8855/11 |
25 | @@ -123,7 +124,6 @@ class SnapReview(Review): |
26 | "watchdog-timeout", |
27 | ] |
28 | apps_optional_shared = [ |
29 | - "activates-on", # eventually apps_optional_daemon (see https://forum.snapcraft.io/t/support-for-daemon-dbus/8855/11) |
30 | "aliases", |
31 | "command", |
32 | "command-chain", |
33 | @@ -247,7 +247,6 @@ class SnapReview(Review): |
34 | "dbus": { |
35 | "name/slots": "", |
36 | "bus/slots": "", |
37 | - "activatable/slots": False, |
38 | "name/plugs": "", |
39 | "bus/plugs": "", |
40 | }, |
41 | diff --git a/reviewtools/sr_lint.py b/reviewtools/sr_lint.py |
42 | index 1f935db..5d77376 100644 |
43 | --- a/reviewtools/sr_lint.py |
44 | +++ b/reviewtools/sr_lint.py |
45 | @@ -874,8 +874,58 @@ class SnapReviewLint(SnapReview): |
46 | s = "'%s' must not be used with 'daemon'" % ",".join(needs_cli) |
47 | self._add_result(t, n, s) |
48 | |
49 | + # 'activates-on' should specify an appropriate dbus slot |
50 | + for app in self.snap_yaml["apps"]: |
51 | + if "activates-on" not in self.snap_yaml["apps"][app]: |
52 | + continue |
53 | + |
54 | + t = "info" |
55 | + n = self._get_check_name("dbus_activates-on", app=app) |
56 | + s = "OK" |
57 | + |
58 | + if not isinstance(self.snap_yaml["apps"][app]["activates-on"], list): |
59 | + t = "error" |
60 | + s = "'activates-on' (not a list)" |
61 | + self._add_result(t, n, s) |
62 | + continue |
63 | + |
64 | + for name in self.snap_yaml["apps"][app]["activates-on"]: |
65 | + slots = [] |
66 | + if "slots" in self.snap_yaml: |
67 | + slots = self.snap_yaml["slots"] |
68 | + found = False |
69 | + t = "info" |
70 | + n = self._get_check_name("dbus_activates-on", app=app, extra=name) |
71 | + s = "OK" |
72 | + for ref in slots: |
73 | + if ref == name: |
74 | + spec = self.snap_yaml["slots"][ref] |
75 | + if ( |
76 | + isinstance(spec, dict) |
77 | + and ("interface" in spec and spec["interface"] == "dbus") |
78 | + # daemon-scope must match dbus bus |
79 | + and ("daemon-scope" in self.snap_yaml["apps"][app] and ( |
80 | + ( |
81 | + self.snap_yaml["apps"][app]["daemon-scope"] == "user" and |
82 | + spec["bus"] == "session" |
83 | + ) or |
84 | + ( |
85 | + self.snap_yaml["apps"][app]["daemon-scope"] == "system" and |
86 | + spec["bus"] == "system" |
87 | + ) |
88 | + )) |
89 | + ): |
90 | + found = True |
91 | + break |
92 | + if not found: |
93 | + t = "error" |
94 | + s = "'activates-on: %s' slot is not defined or is not a matching dbus slot" % name |
95 | + self._add_result(t, n, s) |
96 | + |
97 | # 'daemon: dbus' requires: |
98 | - # a) that 'bus-name' is specified and |
99 | + # a) that 'bus-name' is specified OR that the 'activates-on' property is |
100 | + # specified in which case the last name used there is taken as |
101 | + # 'bus-name' |
102 | # b) that 'bus-name' matches one of the dbus slots |
103 | for app in self.snap_yaml["apps"]: |
104 | if ( |
105 | @@ -887,17 +937,20 @@ class SnapReviewLint(SnapReview): |
106 | t = "info" |
107 | n = self._get_check_name("dbus_bus-name_required", app=app) |
108 | s = "OK" |
109 | - if "bus-name" not in self.snap_yaml["apps"][app]: |
110 | + if "bus-name" not in self.snap_yaml["apps"][app] and "activates-on" not in self.snap_yaml["apps"][app]: |
111 | t = "error" |
112 | - s = "use of 'daemon: dbus' requires 'bus-name'" |
113 | + s = "use of 'daemon: dbus' requires 'bus-name' or 'activates-on'" |
114 | self._add_result(t, n, s) |
115 | continue |
116 | - elif not isinstance(self.snap_yaml["apps"][app]["bus-name"], str): |
117 | + elif "bus-name" in self.snap_yaml["apps"][app] and not isinstance(self.snap_yaml["apps"][app]["bus-name"], str): |
118 | t = "error" |
119 | s = "'bus-name' (not a str)" |
120 | self._add_result(t, n, s) |
121 | continue |
122 | |
123 | + if "bus-name" not in self.snap_yaml["apps"][app]: |
124 | + # we checked activates-on above so no need to check it here |
125 | + continue |
126 | needle = self.snap_yaml["apps"][app]["bus-name"] |
127 | |
128 | needs_slot = False |
129 | @@ -981,37 +1034,25 @@ class SnapReviewLint(SnapReview): |
130 | if show_report: |
131 | self._add_result(t, n, s) |
132 | |
133 | - # 'activatable: True' should be used with 'daemon: dbus' |
134 | - has_activatable = False |
135 | - for app in self.snap_yaml["apps"]: |
136 | - if "daemon" not in self.snap_yaml["apps"][app]: |
137 | - continue |
138 | - if "slots" not in self.snap_yaml or len(self.snap_yaml["slots"]) == 0: |
139 | - continue |
140 | + # 'activatable' is now an invalid property |
141 | + if "slots" not in self.snap_yaml or len(self.snap_yaml["slots"]) == 0: |
142 | + return |
143 | |
144 | - for ref in self.snap_yaml["slots"]: |
145 | - spec = self.snap_yaml["slots"][ref] |
146 | - if ( |
147 | + for ref in self.snap_yaml["slots"]: |
148 | + t = "info" |
149 | + n = self._get_check_name("dbus_activatable") |
150 | + s = "OK" |
151 | + spec = self.snap_yaml["slots"][ref] |
152 | + if ( |
153 | isinstance(spec, dict) |
154 | and ( |
155 | ("interface" not in spec and ref == "dbus") |
156 | or ("interface" in spec and spec["interface"] == "dbus") |
157 | ) |
158 | and "activatable" in spec |
159 | - and spec["activatable"] |
160 | - ): |
161 | - if ( |
162 | - "slots" in self.snap_yaml["apps"][app] |
163 | - and ref in self.snap_yaml["apps"][app]["slots"] |
164 | - ): |
165 | - has_activatable = True |
166 | - |
167 | - t = "info" |
168 | - n = self._get_check_name("dbus_activatable", app=app) |
169 | - s = "OK" |
170 | - if has_activatable and self.snap_yaml["apps"][app]["daemon"] != "dbus": |
171 | + ): |
172 | t = "warn" |
173 | - s = "'activatable: true' should be used with 'daemon: dbus'" |
174 | + s = "'activatable' is now an invalid dbus slot property" |
175 | self._add_result(t, n, s) |
176 | |
177 | def check_apps_restart_condition(self): |
178 | diff --git a/reviewtools/tests/test_sr_lint.py b/reviewtools/tests/test_sr_lint.py |
179 | index 2f08d21..59e88d5 100644 |
180 | --- a/reviewtools/tests/test_sr_lint.py |
181 | +++ b/reviewtools/tests/test_sr_lint.py |
182 | @@ -2307,7 +2307,6 @@ class TestSnapReviewLint(sr_tests.TestSnapReview): |
183 | "interface": "dbus", |
184 | "bus": "system", |
185 | "name": "foo", |
186 | - "activatable": True, |
187 | } |
188 | }, |
189 | ) |
190 | @@ -2317,15 +2316,17 @@ class TestSnapReviewLint(sr_tests.TestSnapReview): |
191 | "foo": { |
192 | "command": "bin/bar", |
193 | "daemon": "dbus", |
194 | + "daemon-scope": "system", |
195 | "bus-name": "foo", |
196 | "slots": ["system"], |
197 | + "activates-on": ["system"] |
198 | } |
199 | }, |
200 | ) |
201 | c = SnapReviewLint(self.test_name) |
202 | c.check_apps_invalid_combinations() |
203 | r = c.review_report |
204 | - expected_counts = {"info": 5, "warn": 0, "error": 0} |
205 | + expected_counts = {"info": 6, "warn": 0, "error": 0} |
206 | self.check_results(r, expected_counts) |
207 | |
208 | def test_check_apps_invalid_combinations_dbus_bus_name_mismatch(self): |
209 | @@ -2337,7 +2338,6 @@ class TestSnapReviewLint(sr_tests.TestSnapReview): |
210 | "interface": "dbus", |
211 | "bus": "system", |
212 | "name": "mismatch", |
213 | - "activatable": True, |
214 | } |
215 | }, |
216 | ) |
217 | @@ -2422,7 +2422,7 @@ class TestSnapReviewLint(sr_tests.TestSnapReview): |
218 | c = SnapReviewLint(self.test_name) |
219 | c.check_apps_invalid_combinations() |
220 | r = c.review_report |
221 | - expected_counts = {"info": None, "warn": 0, "error": 1} |
222 | + expected_counts = {"info": None, "warn": 1, "error": 1} |
223 | self.check_results(r, expected_counts) |
224 | |
225 | def test_check_apps_invalid_combinations_dbus_activatable_simple(self): |
226 | @@ -2477,6 +2477,114 @@ class TestSnapReviewLint(sr_tests.TestSnapReview): |
227 | expected_counts = {"info": None, "warn": 0, "error": 0} |
228 | self.check_results(r, expected_counts) |
229 | |
230 | + def test_check_apps_dbus_activates_on(self): |
231 | + """Test check_apps_invalid_combinations() - dbus activatable/simple""" |
232 | + self.set_test_snap_yaml( |
233 | + "slots", {"system": {"interface": "dbus", "bus": "system", "name": "foo"}} |
234 | + ) |
235 | + self.set_test_snap_yaml( |
236 | + "apps", |
237 | + { |
238 | + "foo": { |
239 | + "command": "bin/bar", |
240 | + "daemon": "simple", |
241 | + "bus-name": "foo", |
242 | + "slots": ["system"], |
243 | + } |
244 | + }, |
245 | + ) |
246 | + c = SnapReviewLint(self.test_name) |
247 | + c.check_apps_invalid_combinations() |
248 | + r = c.review_report |
249 | + expected_counts = {"info": None, "warn": 0, "error": 0} |
250 | + self.check_results(r, expected_counts) |
251 | + |
252 | + def test_check_apps_dbus_activates_on_without_daemon_scope(self): |
253 | + """Test check_apps_invalid_combinations() - dbus activatable without bus-name""" |
254 | + self.set_test_snap_yaml( |
255 | + "slots", {"system": {"interface": "dbus", "bus": "system", "name": "foo"}} |
256 | + ) |
257 | + self.set_test_snap_yaml( |
258 | + "apps", |
259 | + { |
260 | + "foo": { |
261 | + "command": "bin/bar", |
262 | + "daemon": "dbus", |
263 | + "activates-on": ["foo"], |
264 | + } |
265 | + }, |
266 | + ) |
267 | + c = SnapReviewLint(self.test_name) |
268 | + c.check_apps_invalid_combinations() |
269 | + r = c.review_report |
270 | + expected_counts = {"info": None, "warn": 0, "error": 1} |
271 | + self.check_results(r, expected_counts) |
272 | + |
273 | + def test_check_apps_dbus_activates_on_without_bus_name(self): |
274 | + """Test check_apps_invalid_combinations() - dbus activatable without bus-name""" |
275 | + self.set_test_snap_yaml( |
276 | + "slots", {"system": {"interface": "dbus", "bus": "system", "name": "foo"}} |
277 | + ) |
278 | + self.set_test_snap_yaml( |
279 | + "apps", |
280 | + { |
281 | + "foo": { |
282 | + "command": "bin/bar", |
283 | + "daemon": "dbus", |
284 | + "daemon-scope": "system", |
285 | + "activates-on": ["system"], |
286 | + } |
287 | + }, |
288 | + ) |
289 | + c = SnapReviewLint(self.test_name) |
290 | + c.check_apps_invalid_combinations() |
291 | + r = c.review_report |
292 | + expected_counts = {"info": None, "warn": 0, "error": 0} |
293 | + self.check_results(r, expected_counts) |
294 | + |
295 | + def test_check_apps_dbus_activates_on_user_session_scope(self): |
296 | + """Test check_apps_invalid_combinations() - dbus activatable on user session scope""" |
297 | + self.set_test_snap_yaml( |
298 | + "slots", {"foo": {"interface": "dbus", "bus": "session", "name": "foo"}} |
299 | + ) |
300 | + self.set_test_snap_yaml( |
301 | + "apps", |
302 | + { |
303 | + "foo": { |
304 | + "command": "bin/bar", |
305 | + "daemon": "dbus", |
306 | + "daemon-scope": "user", |
307 | + "activates-on": ["foo"], |
308 | + } |
309 | + }, |
310 | + ) |
311 | + c = SnapReviewLint(self.test_name) |
312 | + c.check_apps_invalid_combinations() |
313 | + r = c.review_report |
314 | + expected_counts = {"info": None, "warn": 0, "error": 0} |
315 | + self.check_results(r, expected_counts) |
316 | + |
317 | + def test_check_apps_dbus_activates_on_without_bus_name_invalid(self): |
318 | + """Test check_apps_invalid_combinations() - dbus activatable/simple without bus-name but invalid activates-on name""" |
319 | + self.set_test_snap_yaml( |
320 | + "slots", {"system": {"interface": "dbus", "bus": "system", "name": "foo"}} |
321 | + ) |
322 | + self.set_test_snap_yaml( |
323 | + "apps", |
324 | + { |
325 | + "foo": { |
326 | + "command": "bin/bar", |
327 | + "daemon": "dbus", |
328 | + "activates-on": ["bar"], |
329 | + } |
330 | + }, |
331 | + ) |
332 | + c = SnapReviewLint(self.test_name) |
333 | + c.check_apps_invalid_combinations() |
334 | + r = c.review_report |
335 | + expected_counts = {"info": None, "warn": 0, "error": 1} |
336 | + self.check_results(r, expected_counts) |
337 | + |
338 | def test_check_apps_invalid_combinations_daemon_scope(self): |
339 | """Test check_apps_invalid_combinations() - daemon-scope""" |
340 | self.set_test_snap_yaml( |
341 | diff --git a/tests/test.sh.expected b/tests/test.sh.expected |
342 | index 631c6f3..ceb88b5 100644 |
343 | --- a/tests/test.sh.expected |
344 | +++ b/tests/test.sh.expected |
345 | @@ -5471,7 +5471,7 @@ network-manager_1.2.2-1+test1_amd64.snap: FAIL |
346 | "manual_review": false, |
347 | "text": "OK" |
348 | }, |
349 | - "lint-snap-v2:dbus_activatable:networkmanager": { |
350 | + "lint-snap-v2:dbus_activatable": { |
351 | "manual_review": false, |
352 | "text": "OK" |
353 | }, |
354 | @@ -5713,7 +5713,7 @@ network-manager_1.2.2-1+test1_amd64.snap: FAIL |
355 | "manual_review": false, |
356 | "text": "OK" |
357 | }, |
358 | - "lint-snap-v2:dbus_activatable:networkmanager": { |
359 | + "lint-snap-v2:dbus_activatable": { |
360 | "manual_review": false, |
361 | "text": "OK" |
362 | }, |
363 | @@ -11269,6 +11269,10 @@ snappy-test-iface-attribs_0.1_all.snap: pass |
364 | "manual_review": false, |
365 | "text": "OK" |
366 | }, |
367 | + "lint-snap-v2:dbus_activatable": { |
368 | + "manual_review": false, |
369 | + "text": "OK" |
370 | + }, |
371 | "lint-snap-v2:description": { |
372 | "manual_review": false, |
373 | "text": "description is too short: 'This is a test snap'" |
374 | @@ -11485,6 +11489,10 @@ snappy-test-iface-attribs_0.1_all.snap: pass |
375 | "manual_review": false, |
376 | "text": "OK" |
377 | }, |
378 | + "lint-snap-v2:dbus_activatable": { |
379 | + "manual_review": false, |
380 | + "text": "OK" |
381 | + }, |
382 | "lint-snap-v2:description": { |
383 | "manual_review": false, |
384 | "text": "description is too short: 'This is a test snap'" |
385 | @@ -14095,7 +14103,7 @@ test-all-app_1_all.snap: FAIL |
386 | "manual_review": false, |
387 | "text": "OK" |
388 | }, |
389 | - "lint-snap-v2:dbus_activatable:dockerd": { |
390 | + "lint-snap-v2:dbus_activatable": { |
391 | "manual_review": false, |
392 | "text": "OK" |
393 | }, |
394 | @@ -17072,7 +17080,7 @@ test-all-app_1_all.snap: FAIL |
395 | "manual_review": false, |
396 | "text": "OK" |
397 | }, |
398 | - "lint-snap-v2:dbus_activatable:dockerd": { |
399 | + "lint-snap-v2:dbus_activatable": { |
400 | "manual_review": false, |
401 | "text": "OK" |
402 | }, |
403 | @@ -21557,6 +21565,10 @@ test-base-slots-plugs_1.0_all.snap: FAIL |
404 | "manual_review": false, |
405 | "text": "OK" |
406 | }, |
407 | + "lint-snap-v2:dbus_activatable": { |
408 | + "manual_review": false, |
409 | + "text": "OK" |
410 | + }, |
411 | "lint-snap-v2:dbus_mixed_slots:cmd": { |
412 | "manual_review": false, |
413 | "text": "OK" |
414 | @@ -21767,6 +21779,10 @@ test-base-slots-plugs_1.0_all.snap: FAIL |
415 | "manual_review": false, |
416 | "text": "OK" |
417 | }, |
418 | + "lint-snap-v2:dbus_activatable": { |
419 | + "manual_review": false, |
420 | + "text": "OK" |
421 | + }, |
422 | "lint-snap-v2:dbus_mixed_slots:cmd": { |
423 | "manual_review": false, |
424 | "text": "OK" |
425 | @@ -25438,6 +25454,10 @@ test-content_0.1_all.snap: pass |
426 | "manual_review": false, |
427 | "text": "OK" |
428 | }, |
429 | + "lint-snap-v2:dbus_activatable": { |
430 | + "manual_review": false, |
431 | + "text": "OK" |
432 | + }, |
433 | "lint-snap-v2:description": { |
434 | "manual_review": false, |
435 | "text": "OK" |
436 | @@ -25778,6 +25798,10 @@ test-content_0.1_all.snap: pass |
437 | "manual_review": false, |
438 | "text": "OK" |
439 | }, |
440 | + "lint-snap-v2:dbus_activatable": { |
441 | + "manual_review": false, |
442 | + "text": "OK" |
443 | + }, |
444 | "lint-snap-v2:description": { |
445 | "manual_review": false, |
446 | "text": "OK" |
447 | @@ -29445,7 +29469,7 @@ test-hello-dbus_2_amd64.snap: FAIL |
448 | "manual_review": false, |
449 | "text": "OK" |
450 | }, |
451 | - "lint-snap-v2:dbus_activatable:dbusd-system": { |
452 | + "lint-snap-v2:dbus_activatable": { |
453 | "manual_review": false, |
454 | "text": "OK" |
455 | }, |
456 | @@ -29886,7 +29910,7 @@ test-hello-dbus_2_amd64.snap: FAIL |
457 | "manual_review": false, |
458 | "text": "OK" |
459 | }, |
460 | - "lint-snap-v2:dbus_activatable:dbusd-system": { |
461 | + "lint-snap-v2:dbus_activatable": { |
462 | "manual_review": false, |
463 | "text": "OK" |
464 | }, |
465 | @@ -33113,6 +33137,10 @@ test-missing-required-attributes_0_all.snap: FAIL |
466 | "manual_review": false, |
467 | "text": "OK" |
468 | }, |
469 | + "lint-snap-v2:dbus_activatable": { |
470 | + "manual_review": false, |
471 | + "text": "OK" |
472 | + }, |
473 | "lint-snap-v2:dbus_mixed_slots:env": { |
474 | "manual_review": false, |
475 | "text": "OK" |
476 | @@ -33343,6 +33371,10 @@ test-missing-required-attributes_0_all.snap: FAIL |
477 | "manual_review": false, |
478 | "text": "OK" |
479 | }, |
480 | + "lint-snap-v2:dbus_activatable": { |
481 | + "manual_review": false, |
482 | + "text": "OK" |
483 | + }, |
484 | "lint-snap-v2:dbus_mixed_slots:env": { |
485 | "manual_review": false, |
486 | "text": "OK" |
487 | @@ -33576,6 +33608,10 @@ test-mpris-name-matches_0_amd64.snap: FAIL |
488 | "manual_review": false, |
489 | "text": "OK" |
490 | }, |
491 | + "lint-snap-v2:dbus_activatable": { |
492 | + "manual_review": false, |
493 | + "text": "OK" |
494 | + }, |
495 | "lint-snap-v2:description": { |
496 | "manual_review": false, |
497 | "text": "description is too short: 'My description\n'" |
498 | @@ -33768,6 +33804,10 @@ test-mpris-name-matches_0_amd64.snap: FAIL |
499 | "manual_review": false, |
500 | "text": "OK" |
501 | }, |
502 | + "lint-snap-v2:dbus_activatable": { |
503 | + "manual_review": false, |
504 | + "text": "OK" |
505 | + }, |
506 | "lint-snap-v2:description": { |
507 | "manual_review": false, |
508 | "text": "description is too short: 'My description\n'" |
509 | @@ -33969,6 +34009,10 @@ test-mpris-name-mismatch_0_amd64.snap: FAIL |
510 | "manual_review": false, |
511 | "text": "OK" |
512 | }, |
513 | + "lint-snap-v2:dbus_activatable": { |
514 | + "manual_review": false, |
515 | + "text": "OK" |
516 | + }, |
517 | "lint-snap-v2:description": { |
518 | "manual_review": false, |
519 | "text": "description is too short: 'My description\n'" |
520 | @@ -34161,6 +34205,10 @@ test-mpris-name-mismatch_0_amd64.snap: FAIL |
521 | "manual_review": false, |
522 | "text": "OK" |
523 | }, |
524 | + "lint-snap-v2:dbus_activatable": { |
525 | + "manual_review": false, |
526 | + "text": "OK" |
527 | + }, |
528 | "lint-snap-v2:description": { |
529 | "manual_review": false, |
530 | "text": "description is too short: 'My description\n'" |
531 | @@ -39151,6 +39199,10 @@ test-slot-reference-hook_1_all.snap: FAIL |
532 | "manual_review": false, |
533 | "text": "OK" |
534 | }, |
535 | + "lint-snap-v2:dbus_activatable": { |
536 | + "manual_review": false, |
537 | + "text": "OK" |
538 | + }, |
539 | "lint-snap-v2:description": { |
540 | "manual_review": false, |
541 | "text": "description is too short: '...'" |
542 | @@ -39351,6 +39403,10 @@ test-slot-reference-hook_1_all.snap: FAIL |
543 | "manual_review": false, |
544 | "text": "OK" |
545 | }, |
546 | + "lint-snap-v2:dbus_activatable": { |
547 | + "manual_review": false, |
548 | + "text": "OK" |
549 | + }, |
550 | "lint-snap-v2:description": { |
551 | "manual_review": false, |
552 | "text": "description is too short: '...'" |
553 | @@ -39568,6 +39624,10 @@ test-slot-reference_1_all.snap: FAIL |
554 | "manual_review": false, |
555 | "text": "OK" |
556 | }, |
557 | + "lint-snap-v2:dbus_activatable": { |
558 | + "manual_review": false, |
559 | + "text": "OK" |
560 | + }, |
561 | "lint-snap-v2:description": { |
562 | "manual_review": false, |
563 | "text": "description is too short: '...'" |
564 | @@ -39756,6 +39816,10 @@ test-slot-reference_1_all.snap: FAIL |
565 | "manual_review": false, |
566 | "text": "OK" |
567 | }, |
568 | + "lint-snap-v2:dbus_activatable": { |
569 | + "manual_review": false, |
570 | + "text": "OK" |
571 | + }, |
572 | "lint-snap-v2:description": { |
573 | "manual_review": false, |
574 | "text": "description is too short: '...'" |
575 | @@ -39953,6 +40017,10 @@ test-slot-toplevel_1_all.snap: FAIL |
576 | "manual_review": false, |
577 | "text": "OK" |
578 | }, |
579 | + "lint-snap-v2:dbus_activatable": { |
580 | + "manual_review": false, |
581 | + "text": "OK" |
582 | + }, |
583 | "lint-snap-v2:description": { |
584 | "manual_review": false, |
585 | "text": "description is too short: '...'" |
586 | @@ -40137,6 +40205,10 @@ test-slot-toplevel_1_all.snap: FAIL |
587 | "manual_review": false, |
588 | "text": "OK" |
589 | }, |
590 | + "lint-snap-v2:dbus_activatable": { |
591 | + "manual_review": false, |
592 | + "text": "OK" |
593 | + }, |
594 | "lint-snap-v2:description": { |
595 | "manual_review": false, |
596 | "text": "description is too short: '...'" |
597 | @@ -45055,11 +45127,7 @@ test-top-level-dbus-slot_1_amd64.snap: FAIL |
598 | "manual_review": false, |
599 | "text": "OK" |
600 | }, |
601 | - "lint-snap-v2:dbus_activatable:dbusd-session": { |
602 | - "manual_review": false, |
603 | - "text": "OK" |
604 | - }, |
605 | - "lint-snap-v2:dbus_activatable:dbusd-system": { |
606 | + "lint-snap-v2:dbus_activatable": { |
607 | "manual_review": false, |
608 | "text": "OK" |
609 | }, |
610 | @@ -45319,11 +45387,7 @@ test-top-level-dbus-slot_1_amd64.snap: FAIL |
611 | "manual_review": false, |
612 | "text": "OK" |
613 | }, |
614 | - "lint-snap-v2:dbus_activatable:dbusd-session": { |
615 | - "manual_review": false, |
616 | - "text": "OK" |
617 | - }, |
618 | - "lint-snap-v2:dbus_activatable:dbusd-system": { |
619 | + "lint-snap-v2:dbus_activatable": { |
620 | "manual_review": false, |
621 | "text": "OK" |
622 | }, |
Will likely abandon this in favour of https:/ /code.launchpad .net/~jamesh/ review- tools/+ git/review- tools/+ merge/403932 which I had completely forgotten about.