You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
KEP-1553: Update issue triage KEP to implementable (kubernetes#1930)
* KEP-1553: Update issue triage KEP to implementable
- Marks KEP as implementable
- Adds goals, proposal, risk/mitigations, and any other previously
<<[UNRESOLVED]>> portions.
* Update issue triage KEP to addtionally target PRs
To ease the burden of SIG/area reviewers/approvers, we would like to prescribe
47
44
a triage workflow and supporting automation.
48
45
49
-
### Note to Reviewers
50
-
51
-
For this `provisional` phase, the details of this KEP are left intentionally
52
-
light. There was significant discussion across issues, mailing list threads,
53
-
and PRs that didn't lead to forward progress because it seemed we were trying
54
-
to solve everything at once.
55
-
56
-
Here we attempt to scope a single deliverable before moving on to discussing
57
-
workflow, label states, and entry/exit criteria.
58
-
59
46
## Motivation
60
47
61
-
At present, there are [2,155 open issues and 902 pull requests](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen) open in
48
+
As of 09-08-2020, there are [3,004 open issues and 975 pull requests](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen) open in
62
49
`kubernetes/kubernetes`.
63
50
64
-
-[356 are categorized as `lifecycle/stale`](https://github.com/kubernetes/kubernetes/labels/lifecycle%2Fstale)
65
-
-[246 are categorized as `lifecycle/rotten`](https://github.com/kubernetes/kubernetes/labels/lifecycle%2Frotten)
66
-
-[690 are categorized as `lifecycle/frozen`](https://github.com/kubernetes/kubernetes/labels/lifecycle%2Ffrozen)
51
+
-[197 are categorized as `lifecycle/stale`](https://github.com/kubernetes/kubernetes/labels/lifecycle%2Fstale)
52
+
-[200 are categorized as `lifecycle/rotten`](https://github.com/kubernetes/kubernetes/labels/lifecycle%2Frotten)
53
+
-[756 are categorized as `lifecycle/frozen`](https://github.com/kubernetes/kubernetes/labels/lifecycle%2Ffrozen)
67
54
68
-
This makes for about 20% of open issues/PRs that are in some state of staleness.
55
+
This makes for about 13% of open issues/PRs that are in some state of staleness.
69
56
If we consider items marked as `lifecycle/frozen`, then we're looking at around
70
-
42% of issues/PRs that could potentially require attention.
57
+
38% of issues/PRs that could potentially require attention.
71
58
72
59
### Goals
73
60
74
-
See [User Stories](#user-stories).
61
+
Streamline the issue triage process used within the [kubernetes/kubernetes]
62
+
repository.
75
63
76
-
<<[UNRESOLVED]>>
64
+
- Create new workflow centered around `needs-triage` label auto-applied to new
65
+
issues and Pull Requests (PRs).
77
66
78
-
### Non-Goals
67
+
See [User Stories](#user-stories) for more information.
79
68
80
-
- Prescribing an issue triage workflow for all projects within Kubernetes orgs
81
69
82
-
<<[/UNRESOLVED]>>
70
+
### Non-Goals
71
+
72
+
- Prescribing an issue triage workflow for all projects within Kubernetes orgs.
73
+
- Requiring all community groups within Kubernetes to adhere to the issue triage
74
+
workflow introduced in this KEP.
83
75
84
76
## Proposal
85
77
78
+
### New Workflow
79
+
80
+
An additional [required label] called `needs-triage` will be applied automatically
81
+
to issues and PRs created within the [kubernetes/kubernetes] repository similar
82
+
to the current `needs-sig` or `needs-kind` labels. This serves as a boolean signal
83
+
to community group members that the issue has not yet been triaged.
84
+
85
+
After the issue or PR has been evaluated, an org member can apply one of the
86
+
`triage` labels. If there is enough information or supporting evidence in the
87
+
issue a member can signal that it is ready for work by using the `/triage accepted`
88
+
bot command to apply the `triage/accepted` label. If the issue is a duplicate or
89
+
lacks supporting evidence one of the other [triage labels] can be applied.
90
+
91
+
In either condition the `needs-triage` label will be removed.
92
+
93
+
**Note:** While any org member can apply the `triage/*` class of labels it
94
+
should only be applied by those that are affiliated with the owning-sig. A
95
+
mitigation strategy is outlined in the [Design details](#design-details) if
96
+
this guideline is not being consistently followed.
97
+
98
+
99
+
### Re-categorize the triage/support label
100
+
101
+
The label `triage/support` will become `kind/support`. `kind` better reflects
102
+
the class or or type of issue.
103
+
104
+
**Note:** This is a revert of the previous decision to move the `support` label
105
+
from `kind/*` to `triage/*` introduced in [kubernetes/test-infra#7598]. The
106
+
goal at that time, was to use the label as a signal that the issue was something
107
+
that should be closed. This is still true for [kubernetes/kubernetes], but the
108
+
`triage/support` label's usage has grown outside of the [kubernetes/kubernetes]
109
+
repo.
110
+
111
+
86
112
### User Stories
87
113
88
114
#### Group Leads
@@ -104,57 +130,27 @@ As a contributor, I want to be able to submit issues or PRs and:
104
130
- have some assurance that they will be routed to the correct group
105
131
- have them addressed in a timely manner
106
132
107
-
<<[UNRESOLVED]>>
108
-
109
-
### Notes/Constraints/Caveats (optional)
110
-
111
-
<!--
112
-
What are the caveats to the proposal?
113
-
What are some important details that didn't come across above.
114
-
Go in to as much detail as necessary here.
115
-
This might be a good place to talk about core concepts and how they releate.
116
-
-->
117
-
118
-
<<[/UNRESOLVED]>>
119
-
120
-
<<[UNRESOLVED]>>
121
133
122
134
### Risks and Mitigations
123
135
124
-
<!--
125
-
What are the risks of this proposal and how do we mitigate. Think broadly.
126
-
For example, consider both security and how this will impact the larger
127
-
kubernetes ecosystem.
128
136
129
-
How will security be reviewed and by whom?
137
+
**The new labels and process are either ignored or fall into dis-use.**
130
138
131
-
How will UX be reviewed and by whom?
139
+
There are close to 200 labels associated with the [kubernetes/kubernetes]
140
+
repository. This workflow introduces two additional labels, reclassifies one and
141
+
adds an additional process. Both the labels and process could potentially go
142
+
unused or ignored without effort made by the community groups to use them
143
+
appropriately.
132
144
133
-
Consider including folks that also work outside the SIG or subproject.
134
-
-->
145
+
When the new process is ready to be put into place, the [upstream marketing team]
146
+
will be engaged to ensure there is clear communication regarding the changes.
147
+
Their message will be backed by updated documentation regarding the new
148
+
[issue triage process].
135
149
136
-
<<[/UNRESOLVED]>>
137
150
138
151
## Design Details
139
152
140
-
<!--
141
-
This section should contain enough information that the specifics of your
142
-
change are understandable. This may include API specs (though not always
143
-
required) or even code snippets. If there's any ambiguity about HOW your
144
-
proposal will be implemented, this is the place to discuss them.
145
-
-->
146
-
147
-
### Graduation Criteria
148
-
149
-
<!--
150
-
**Note:** *Not required until targeted at a release.*
151
-
-->
152
-
153
-
_Not required in `provisional` state._
154
-
155
-
### Phase 0
156
-
157
-
#### needs-triage and triage/accepted labels
153
+
### needs-triage and triage/accepted labels
158
154
159
155
We currently have a Prow plugin called `require-matching-label`, which requires
160
156
specific labels to be set on a issue or pull request.
@@ -179,59 +175,41 @@ Upon determining that an issue is ready to be actively worked on, an org member
179
175
can apply the `triage/accepted` label using the following bot command:
180
176
181
177
```shell
182
-
/triage accept
178
+
/triage accepted
183
179
```
184
180
185
181
(Alternatively, contributors with write access to `kubernetes/kubernetes` would be
186
182
able to manually apply the `triage/accepted` label.)
187
183
188
184
**Considerations:**
189
185
190
-
-`triage/accepted` should be considered a placeholder name for the
191
-
label in this provisional state, depending on what we decide is the most
192
-
appropriate name.
193
-
- There will be an expectation that only SIG members designated to triage
194
-
issues are applying triage labels. We're considering limiting application of
195
-
this label to the [`milestone-maintainers` GitHub team](https://github.com/orgs/kubernetes/teams/milestone-maintainers).
186
+
Any Org member may use the `/triage` command in good faith that the issue is
187
+
valid and belongs to the owning community group associated with the issue. Should
188
+
it be widely misused, the command may be restricted to the [`milestone-maintainers`]
189
+
or another to-be-determined GitHub team in the future.
196
190
197
191
From here, a group can search the open items labeled with
198
192
`triage/accepted` and proceed to work on them.
199
193
200
194
A nice example of a written SIG workflow is the [grooming document from
201
195
SIG Cluster Lifecycle](https://git.k8s.io/community/sig-cluster-lifecycle/grooming.md).
202
196
203
-
#### Remove or rename unused triage/** labels
204
197
205
-
As we're considering reviving the `triage/**` labels in this workflow, it's
206
-
important that all labels with this affix are up-to-date, removing any
207
-
`triage/**` label deemed to be unused.
198
+
### Rename the triage/support label
208
199
209
-
The current list of `triage/**` labels is as follows:
200
+
The label `triage/support` will become `kind/support`. `kind` better reflects
201
+
the class or or type of issue.
210
202
211
-
-`triage/duplicate`
212
-
-`triage/needs-information`
213
-
-`triage/not-reproducible`
214
-
-`triage/support`
215
-
-`triage/unresolved`
203
+
For more information on this decision see the [Proposal](#proposal).
216
204
217
-
We propose here removing the following labels:
218
205
219
-
-`triage/duplicate`
220
-
-`triage/not-reproducible`
221
-
-`triage/unresolved`
222
-
223
-
We rename the following labels:
206
+
### Graduation Criteria
224
207
225
-
-`triage/support` --> `kind/support`: Issue has been identified as a support
226
-
question, which should be routed to the appropriate forum and closed
0 commit comments