Merge ~roxanan/+git/kteam-tools:cowboy/master into ~canonical-kernel/+git/kteam-tools:cowboy/master

Proposed by Roxana Nicolescu
Status: Needs review
Proposed branch: ~roxanan/+git/kteam-tools:cowboy/master
Merge into: ~canonical-kernel/+git/kteam-tools:cowboy/master
Diff against target: 107 lines (+63/-0)
4 files modified
ktl/kernel_series.py (+4/-0)
ktl/tests/test_kernel_series.py (+37/-0)
stable/wfl/bug.py (+8/-0)
stable/wfl/wft/syn_prepare_packages.py (+14/-0)
Reviewer Review Type Date Requested Status
Canonical Kernel Pending
Review via email: mp+460529@code.launchpad.net
To post a comment you must log in.

Unmerged commits

253defe... by Roxana Nicolescu

wfl/wft/syn_prepare_packages.py: Include MM notification for peer-review

If the kernel is ready for peer-review, notify the peer-reviewer on MM.

Signed-off-by: Roxana Nicolescu <email address hidden>

c1d913a... by Roxana Nicolescu

stable/wfl/bug: Add peer-reviewer property

WorkflowBug objects contain the cycle reference, the series and name of
the kernel. Based on this, peer-reviewer can be easily retrieved by
looking at KernelSeries for the specific cycle.

Signed-off-by: Roxana Nicolescu <email address hidden>

998cc23... by Roxana Nicolescu

ktl/kernel-series: Add peer_reviewer property

kernel-series.yaml now source entries may have a peer-reviewer entry.
This is needed so that swm knows who's peer-reviewing a kernel and
properly annouce the notification in MM.

Signed-off-by: Roxana Nicolescu <email address hidden>

99da89f... by Andy Whitcroft

auto-prepare: apply local delta early

Signed-off-by: Andy Whitcroft <email address hidden>

a36aa89... by Andy Whitcroft

swm: wfl/work -- send admin data to the right place

Signed-off-by: Andy Whitcroft <email address hidden>

2864374... by Andy Whitcroft

swm: wfl/work -- apply black

Signed-off-by: Andy Whitcroft <email address hidden>

8d9e28c... by Andy Whitcroft

swm: wfl/work -- de-duplicate message submission code

Signed-off-by: Andy Whitcroft <email address hidden>

3238656... by Andy Whitcroft

swm: package -- drop legacy debs cache

Signed-off-by: Andy Whitcroft <email address hidden>

87e03b3... by Andy Whitcroft

swm: package -- switch to PackageBuildRoute support exclusively (remainder)

Signed-off-by: Andy Whitcroft <email address hidden>

41392e2... by Andy Whitcroft

swm: wft/promote-to-updates -- report superseded binaries in Updates

Signed-off-by: Andy Whitcroft <email address hidden>

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/ktl/kernel_series.py b/ktl/kernel_series.py
2index 0c1895c..c675e1b 100644
3--- a/ktl/kernel_series.py
4+++ b/ktl/kernel_series.py
5@@ -459,6 +459,10 @@ class KernelSourceEntry:
6 return self._data.get('owner', None)
7
8 @property
9+ def peer_reviewer(self):
10+ return self._data.get('peer-reviewer', None)
11+
12+ @property
13 def stakeholder(self):
14 return self._data.get('stakeholder', None)
15
16diff --git a/ktl/tests/test_kernel_series.py b/ktl/tests/test_kernel_series.py
17index 9444283..5de80cb 100644
18--- a/ktl/tests/test_kernel_series.py
19+++ b/ktl/tests/test_kernel_series.py
20@@ -1451,6 +1451,43 @@ class TestKernelSourceEntry(TestKernelSeriesCore):
21
22 self.assertEqual(source.owner, 'botty-mc-bot-face')
23
24+ def test_swm_peer_reviewer_absent(self):
25+ data = """
26+ '18.04':
27+ sources:
28+ linux:
29+ """
30+ ks = KernelSeries(data=data)
31+ series = ks.lookup_series('18.04')
32+ source = series.lookup_source('linux')
33+
34+ self.assertIsNone(source.peer_reviewer)
35+
36+ def test_swm_peer_reviewer_empty(self):
37+ data = """
38+ '18.04':
39+ sources:
40+ linux:
41+ peer-reviewer:
42+ """
43+ ks = KernelSeries(data=data)
44+ series = ks.lookup_series('18.04')
45+ source = series.lookup_source('linux')
46+
47+ self.assertIsNone(source.peer_reviewer)
48+
49+ def test_peer_reviewer_present_something(self):
50+ data = """
51+ '18.04':
52+ sources:
53+ linux:
54+ peer-reviewer: botty-mc-bot-face
55+ """
56+ ks = KernelSeries(data=data)
57+ series = ks.lookup_series('18.04')
58+ source = series.lookup_source('linux')
59+
60+ self.assertEqual(source.peer_reviewer, 'botty-mc-bot-face')
61
62 class TestKernelSourceTestingFlavourEntry(TestKernelSeriesCore):
63
64diff --git a/stable/wfl/bug.py b/stable/wfl/bug.py
65index 23b5f5a..557ec4b 100644
66--- a/stable/wfl/bug.py
67+++ b/stable/wfl/bug.py
68@@ -234,6 +234,14 @@ class WorkflowBug():
69 return ks
70
71 @property
72+ def peer_reviewer(self):
73+ ks = self.kernel_series
74+ ktl_series = ks.lookup_series(codename=self.series)
75+ ktl_source = ktl_series.lookup_source(self.name)
76+
77+ return ktl_source.peer_reviewer
78+
79+ @property
80 def sc(self):
81 return ctx.sc
82
83diff --git a/stable/wfl/wft/syn_prepare_packages.py b/stable/wfl/wft/syn_prepare_packages.py
84index 56fad2d..d626400 100644
85--- a/stable/wfl/wft/syn_prepare_packages.py
86+++ b/stable/wfl/wft/syn_prepare_packages.py
87@@ -83,6 +83,20 @@ class SynPreparePackages(TaskHandler):
88 if failures is None:
89 if s.bug.flag('jira-in-review'):
90 s.task.reason = 'Stalled -b Debs waiting for peer-review on SRU board (jira)'
91+ peer_reviewer = s.bug.peer_reviewer
92+ if peer_reviewer is not None:
93+ s.task.bug.announce_drip(
94+ "swm-transition-peer-reviewable",
95+ subject="@{reviewer} [{id}](https://warthogs.atlassian.net/jira/software/c/projects/KSRU/boards/205?selectedIssue={id}) {cycle} {series}:{source} is ready for your review".format(
96+ reviewer=peer_reviewer,
97+ id=s.bug.bprops['issue'],
98+ cycle=s.task.bug.sru_spin_name,
99+ series=s.task.bug.series,
100+ source=s.task.bug.name
101+ ),
102+ every=timedelta(hours=24),
103+ since=s.task.date_confirmed,
104+ )
105 else:
106 s.task.reason = 'Ongoing -b Being cranked by: {}'.format(s.task.assignee.name)
107 else:

Subscribers

People subscribed via source and target branches