-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Create Issue Triage Guideline #787
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
/cc @castrojo |
contributors/triage/README.md
Outdated
This directory contains Kubernetes Issue Triage Guideline and related documents. | ||
|
||
Triaging issues is a great way to get started contributing, and it will help you understand how the project is organized. Here’s a few predetermined searches for convenience: | ||
* [Longest Untriaged issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc)) (sorted by age) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: extra bracket
contributors/triage/README.md
Outdated
* [Longest Untriaged issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc)) (sorted by age) | ||
* [Needs to be assigned to a SIG](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc) | ||
* [Newest incoming issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue) | ||
* Busy Untriaged issues (sorted by number of comments, then by age) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this supposed to be a link?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think there's a way to do two sorting conditions, I guess we can just drop this for now until we figure out something more clever?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@castrojo Thanks Jorge!! Other thought, in that case, let's just keep it to 'sorted by number of comments'.
contributors/triage/guideline.md
Outdated
* If you do not get response in 15 days, then close the issue with appropriate comment. | ||
|
||
## Find the right SIG(s) | ||
Components are divided among[ Special Interest Groups (SIGs)](https://github.com/kubernetes/community/blob/master/sig-list.md). Find a proper SIG for the ownership of the issue using the bot: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: space and left square bracket should be reversed
contributors/triage/guideline.md
Outdated
|
||
## Set ownership | ||
|
||
All issues should have an owner, if you are not sure of an owner, then the SIG should assign one later down the line. You can ping a team with an @ mention, like `@sig-cluster-lifecycle, can you have a look at this?` if you feel the issue should warrant a notification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: mentions need @kubernetes/
before the sig part
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @cblecker I had no idea :). Did you mean @kubernetes/sig-cluster-lifecycle ? or @k8s-@kubernetes/sig-cluster-lifecycle ? I am also seeing @k8s-sig-x.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kubernetes/sig-cluster-lifecycle-pr-reviews
for example (putting it in back ticks so it doesn't actually mention)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need to be an org member to directly mention people. To get around that, the bot will echo any mentions from non-org members
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Like, for example, try mentioning @kubernetes/sig-contributor-experience-misc
(who can be mentioned on this PR anyways)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cblecker cool 👍 Thanks!!
contributors/triage/guideline.md
Outdated
|
||
## Define priority | ||
After you validate the issue, optionally, per your understanding add a comment of what you think of priority of fixing issue - critical, high, medium, low, wishlist. This doesn’t required to be accurate. The owner from appropriate SIG will assign a correct priority. | ||
* `priority/failing-test or priority/critical-urgent` (P0 - Critical - fix it now, it’s a blocker) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: perhaps take the or
outside of the backticks
e.g.: priority/failing-test
or priority/critical-urgent
@kubernetes/sig-contributor-experience-misc @cblecker like above? it didn't auto fill... I guess I am missing something :( |
Boo.. looks like there's an issue for it: kubernetes/test-infra#2956 |
Ahhh.. :-) OK, so that's fine, for the guildeline I will add it as you suggested. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM other than the formatting issues cblecker has mentioned.
@castrojo Thanks! |
contributors/triage/README.md
Outdated
@@ -0,0 +1,13 @@ | |||
# Kubernetes Issue Triage | |||
|
|||
This directory contains Kubernetes Issue Triage Guideline and related documents. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Guideline/Guidelines
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cmluciano sure, I will update accordinlyg everywhere in the doc.
contributors/triage/README.md
Outdated
|
||
This directory contains Kubernetes Issue Triage Guideline and related documents. | ||
|
||
Triaging issues is a great way to get started contributing, and it will help you understand how the project is organized. Here’s a few predetermined searches for convenience: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/Here's/Here are
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cmluciano How about "Following are few .. " ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could just say "Useful queries:"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:-) OK that's good too but let's just leave as such with use of 'are'..I believe you are OK either way. Thanks!
contributors/triage/README.md
Outdated
* [Newest incoming issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue) | ||
* [Busy Untriaged issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc) (sorted by number of comments) | ||
|
||
<!-- BEGIN MUNGE: GENERATED_ANALYTICS --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this something generated by the build scripts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cmluciano Nope..and so I guess I should remove the commented lines for GENERATED_ANALYITICS in both the files? I am seeing these lines at the bottom of all doc files (unless I missed), thought they are to generate some sort of usage analytics. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
contributors/triage/guideline.md
Outdated
|
||
Speed up issue management. | ||
|
||
The Kubernetes issues are listed at https://github.com/kubernetes/kubernetes/issues. The issues are identified with labels. For example, an issue that belongs to SIG Network will eventually be set to label `sig/network`. New issues will start out without any labels. The detailed list of labels can be found at https://github.com/kubernetes/kubernetes/labels. While working on triaging issues you may not have privilege to assign specific label (e.g. `triaged`) and in that case simply add a comment in the issue with your findings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit:
Combine first two sentences:
The Kubernetes issues are listed at https://github.com/kubernetes/kubernetes/issues and are identified with labels.
contributors/triage/guideline.md
Outdated
|
||
## Using the bot | ||
|
||
Most people do not have the ability to interact with the github issues and labels, for that we use a bot to manage labelling and triaging. The bot has a set of [commands and permissions](https://github.com/kubernetes/test-infra/blob/master/commands.md), this document will cover the basic ones. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and this document...
contributors/triage/guideline.md
Outdated
* Do a quick duplicate search to see if the issue has been reported already. If duplicate, let the issue reporter know it by marking it duplicate. | ||
* If you can not reproduce the issue, contact issue reporter with your findings and close the issue if both the parties agree that it could not be reproduced. | ||
* If the issue is non-trivial to reproduce work with issue reporter or move to next step of finding a right SIG, and let SIG know of your findings. | ||
* If you do not get response in 15 days, then close the issue with appropriate comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a response
contributors/triage/guideline.md
Outdated
* Multiword SIGs use dashes, for example `/sig cluster-lifecycle`. | ||
|
||
## Define priority | ||
After you validate the issue, optionally, per your understanding add a comment of what you think of priority of fixing issue - critical, high, medium, low, wishlist. This doesn’t required to be accurate. The owner from appropriate SIG will assign a correct priority. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can probably remove "optionally, per your understanding"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"This doesn't sentence"
I'm not sure what this sentence is saying
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see "This doesn't sentence" :( I am modifying it as "After you validate the issue, add a comment of what you think of priority of fixing issue - critical, high, medium, low, wishlist. This step is not mandatory and assigning priority doesn’t required to be accurate. The owner from appropriate SIG will assign a correct priority." - does that look good?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I meant to say "This doesn't required to be accurate" does not make sense.
I think we can delete this sentence
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, fine with me.
contributors/triage/guideline.md
Outdated
* `priority/important-soon` or `priority/important-longterm` (P1 - High - functional error requiring quick fix) | ||
* `priority/backlog` (P2 - Medium - error but not critical, small issue, for example, typo) | ||
* `priority/awaiting-more-evidence` (P3 - Low) | ||
* (P4 - Wishlist - not a real bug but suggestion or new feature request) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is wishlist different from backlog?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To me, backlog is 'should be fixed as soon as possible' and wishlist is 'fix if you can' .. though wishlist can be potentially a part of overall backlog.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I always viewed backlog as "we want to do this, but we have not targeted it for a milestone yet"
Perhaps others from @kubernetes-pm can weigh in
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If there is no corresponding label I would get rid of this P4 bullet point entirely. The priority/awaiting-more-evidence
label sounds pretty wishlist-esque to me, a-la "it sounds like a great idea but we're awaiting more evidence that it's actually worth doing or that someone has expressed an interest in tackling it"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@spiffxp makes sense, I am removing the P4 bullet. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wishlist == awaiting-more-evidence
If we'd never, ever do it, just close.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, "fixes" of low-priority issues have non-trivial costs (reviews, babysitting, submit queue bandwidth, etc.), so if they really are very low priority, we shouldn't encourage anyone to work on them.
contributors/triage/guideline.md
Outdated
|
||
## Set ownership | ||
|
||
All issues should have an owner, if you are not sure of an owner, then the SIG should assign one later down the line. You can ping a team with an @ mention, like `@kubernetes/sig-cluster-lifecycle, can you have a look at this?` if you feel the issue should warrant a notification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All issues should have an owner. If you are unsure of the ownership, defer to the SIG label only.
contributors/triage/guideline.md
Outdated
|
||
If you think you can fix the issue, assign it to yourself with just `/assign`. | ||
|
||
## Poke issue owner if PR is not created for it in 30 days |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do priority labels play a role in this timeline?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question. I am open for discussion but I think regardless of priority we can keep a fix number here for simplicity. The owner should add a comment to indicate that what's the expected time frame in any case.
contributors/triage/README.md
Outdated
* [Needs to be assigned to a SIG](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acreated-asc) | ||
* [Newest incoming issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue) | ||
* [Busy Untriaged issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc) (sorted by number of comments) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd like to have a Least commented issues
. Few comments sometimes means less concern. They need more love.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao these queries are just few examples but sure I will add one as you suggested.
contributors/triage/guideline.md
Outdated
|
||
## Determine if it’s a support request | ||
|
||
Sometimes users ask for support requests in issues; these are usually support requests for people who need help configuring some aspect of Kubernetes. These should be directed to our [support structures](https://github.com/kubernetes/community/blob/master/contributors/devel/on-call-user-support.md) and then closed. Only authors and assignees can `/close` an issue. Also, if the issue is clearly abandoned or in the wrong place you can `/assign` to have it assigned to yourself, and then `/close`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, if the issue is clearly abandoned or in the wrong place you can
/assign
to have it assigned to yourself, and then/close
.
Only org members can self-assign issues which they're not authors of.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao true, and in the beginning of this guide we have mentioned it that not everyone have privilege to assign or close :) but if it's unclear I will briefly mention it here too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I missed that:)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao :) np and your suggestion is still valid. It's good to be clear by briefly re-mention.
contributors/triage/guideline.md
Outdated
* Do a quick duplicate search to see if the issue has been reported already. If a duplicate is found, let the issue reporter know it by marking it duplicate. | ||
* If you can not reproduce the issue, contact the issue reporter with your findings and close the issue if both the parties agree that it could not be reproduced. | ||
* If the issue is non-trivial to reproduce, work with issue reporter or move to next step of finding a right SIG, and let SIG know of your findings. | ||
* If you do not get a response in 15 days, then close the issue with appropriate comment. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
15 days seem like short when guys are in busy days.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao true but it can always be reopened so I prefer it :). We had some discussion and we came up with little aggressive dead line. I would bring it up in Contrib SIG meeting or we can discuss it here if you want. /cc @castrojo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah it can be reopened but I don't think guys (except the issue reporters, maybe) will pay enough attention to closed issues. Most people may think closed issues are resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, but yeah, my hope is issue reporter will pay attention to the comment, that issue was closed w/o resolving because of such an such reason, and will reopen with more information. But I am open for any suggestion. I am increasing to 20 days for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
15 days is way too short. Also, this kind of policy only makes sense for bug reports.
And without a process to go over bug reports and assess severity/priority, many bugs would just be closed, so we need to recommend such a process.
contributors/triage/guideline.md
Outdated
|
||
All issues should have an owner. If you are not sure of an owner, defer to the SIG label only. You can ping a team with an @ mention, like `@kubernetes/sig-cluster-lifecycle, can you have a look at this?` if you feel the issue should warrant a notification. | ||
|
||
If you think you can fix the issue, assign it to yourself with just `/assign`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See my first comment please. Only org members can self-assign issues which they're not authors of.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I will make it more clear.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be great:)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao can a org member assign issue to non-org member/developer? I believe so, and if so, I will make updates accordingly. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, no. This is a good example: kubernetes/kubernetes#47010
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hah, that's unfortunate :(
contributors/triage/guideline.md
Outdated
|
||
## Set ownership | ||
|
||
All issues should have an owner. If you are not sure of an owner, defer to the SIG label only. You can ping a team with an @ mention, like `@kubernetes/sig-cluster-lifecycle, can you have a look at this?` if you feel the issue should warrant a notification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This way to mention will not work. See the right example: kubernetes/kubernetes#48990 (comment)
/cc @crimsonfaith91
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao OK, that's good point. So the example here, for a bug, should be "@kubernetes/sig-cluster-lifecycle-bugs" - does that sounds correct? @castrojo - we should then add a line or two in the guideline about what a group suffix should be (i.e. one of the "bugs, feature-requests, pr-reviews, test-failures, proposals")? Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cool, thanks @xiangpengzhao
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The teams are documented here:
https://github.com/kubernetes/community/blob/master/sig-governance.md#create-the-github-teams
The purpose could be documented better.
Please avoid using the *-misc teams as much as possible.
contributors/triage/guideline.md
Outdated
|
||
## Define priority | ||
After you validate the issue, add a comment of what you think of priority of fixing issue - critical, high, medium, low, wishlist. The owner from appropriate SIG will assign a correct priority. | ||
* `priority/failing-test` or `priority/critical-urgent` (P0 - Critical - fix it now, it’s a blocker) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer to see the "PN" descriptions removed entirely, they're a bit misleading and don't necessarily line up with the wording of the labels. I would split each of these priority labels into their own bullet points. I don't know precisely what these labels should mean, so here's a guess:
- priority/critical-urgent: this is likely a blocker... both critical (high impact) and urgent (must be done as soon as possible)
- priority/failing-test: a test is failing, this is very important as too many of these impact our velocity; the immediacy of these depends on whether they block PR's, releases, or general CI signal
- priority/important-soon: this is important, and we want to get it done soon (preferably this release cycle)
- priority/important-longterm: this is important, but doesn't need to be or cannot be done right now, so instead we'd like to get to it later (preferably next release cycle, or once unblocked)
- priority/backlog: we'd like to get to this but are unsure when (maybe two release cycles from now)
- priority/awaiting-more-evidence: this is a good idea but we're awaiting more evidence that this is worth doing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I will be adding something like this - not giving detail of priorities but just brief and provide link for more detail.
priority/failing-test
orpriority/critical-urgent
- Critical. Fix it now.priority/important-soon
orpriority/important-longterm
- High priority. Fix as soon as possible.priority/backlog
- Medium priority.priority/awaiting-more-evidence
- Low priority.
To read priorities in detail, please refer to the Priorities
Hope makes sense. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure whether the priority/important-longterm
issues should be fixed ASAP. I guess no.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xiangpengzhao yeah, thought so, but the same time thought let me keep them together but going to list them separately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing to,
priority/important-soon
- High priority. Fix it as soon as possible.priority/important-longterm
- High priority over the long duration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the intent is to eliminate all numerical priorities.
contributors/triage/guideline.md
Outdated
|
||
Most people do not have the ability to interact with the github issues and labels, for that we use a bot to manage labelling and triaging. The bot has a set of [commands and permissions](https://github.com/kubernetes/test-infra/blob/master/commands.md) and this document will cover the basic ones. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dead line
contributors/triage/guideline.md
Outdated
* If the issue is non-trivial to reproduce, work with issue reporter or move to next step of finding a right SIG, and let SIG know of your findings. | ||
* If you do not get a response in 15 days, then close the issue with appropriate comment. | ||
|
||
## Find the right SIG(s) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would put this above "validate if the issue is real"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@spiffxp sure, the 'validate..' step has instruction "to move to finding SIG..if the issue is real" but you are right, I believe regardless issue is real or not, one should first find the SIG as SIG should know of the findings in either case. So sounds good to me - moving it and modifying the "validate if the issue is real" step accordingly. Thanks!
cc @kubernetes/sig-contributor-experience-proposals |
cc @jagosan |
contributors/triage/README.md
Outdated
@@ -0,0 +1,13 @@ | |||
# Kubernetes Issue Triage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This appears to only be about the kubernetes/kubernetes repo?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgrant0607 ideally this should be for all repos i.e. kubernetes/kubernetes and related kubernetes repos. So how about I add a line in the content to make it clear? I guess we can leave title as such. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The kubernetes repo is special, because it spans most/all SIGs and has very high issue volume. Smaller, more-focused repos don't have the same challenges. And, issue labels and bot automation don't yet apply to all repos, since they have to be set up for each repo individually.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgrant0607 hi Brian, agree but lot of content besides labels can be used as a guidelines for other repos. I can try adding a note with some of the text from your comment and we can keep the scope of guidelines more than just kubernetes repo? As you mentioned other repos don't have a real problem of issue management because of low volume of issues, but I heard about some more code splitting, for example, new repos like kubernetes/kubectl are under progress and I guess such repos will be similar to kubernetes/kubernetes repo. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Multiple repos: kubernetes/kubernetes#24343
It will take quite a while to be completed.
I'm fine with a statement at the beginning stating that this only applies to the kubernetes repo and other repos are TBD.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgrant0607 sounds good, thanks!
contributors/triage/README.md
Outdated
* [Newest incoming issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue) | ||
* [Busy Untriaged issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc) (sorted by number of comments) | ||
|
||
<!-- BEGIN MUNGE: GENERATED_ANALYTICS --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
contributors/triage/README.md
Outdated
@@ -0,0 +1,13 @@ | |||
# Kubernetes Issue Triage |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These kinds of docs belong in contributors/devel.
Also, the subdirectory would be more discoverable if called issues
rather than triage
.
And we'd ideally unify these docs with https://github.com/kubernetes/community/blob/master/contributors/devel/issues.md
and link from
https://github.com/kubernetes/community/blob/master/contributors/devel/README.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW, the preliminary proposal was:
Design and implement sustainable issue routing (to appropriate SIG and kind [bug, feature request, etc.]). Require org members to provide this information (close if not). Round-robin assign to triage team if not provided by non-member.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgrant0607 that's a good point to put the content under contributors/devel. Jorge and I thought about it, but we also thought let's keep Triage on it's own directory in case we are adding more specific content in future and keep it separate from pure devel docs. The issue.md is mentioned in the guidelines as a reference to learn about priorities in detail but if you think it's better to modify issues.md as guidelines that's fine with me. If contributors/devel seems better and right place, I will move the guideline there. And btw, I couldn't open the #card-2296048 link you have provided above. Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the round-robin for triage. Do we imagine an addition to the OWNERS files to specify a few people to triage per SIG?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should go under contributors/devel. That's the place we direct contributors from CONTRIBUTING.md files, where the index is, etc. Also, triage
is a bad name.
Sadly, org-level projects can't be made world-readable. We have an open issue to stop using them. The contents of the link was included in my previous comment.
The most important problem to solve is scaling the effort. We used to have someone assigned to triaging incoming issues and it was not possible to keep up. We need to round-robin 1st-level triage and push 2nd-level triage to SIGs. That doesn't entirely solve the problem, since the overwhelming majority of issues go to ~6 SIGs (Node, API machinery, CLI, Networking, Storage, Apps). We may need to round-robin again within those SIGs. Just saying "somebody should triage open issues" isn't going to work.
The people who triage also need some guidance. We have previously had the problem that a significant number of issues were miscategorized. No matter what we do, I'm sure some number will get re-categorized, but keeping that number small will help issues be properly triaged in a timely manner.
Additionally, it doesn't have to be in scope for this document, but some incentive will need to be put in place to induce contributors to work on bugs as opposed to features.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding 1st level triage. We're doing well. Consider that there were 300+ issues opened in July 2017 and only 28 of them lack a sig label. The automation and prompting is working at driving the issues to sigs.
This does not address the miscategorization problem, nor does it address the 2nd level triage. But it's worth noting that we are getting people to apply sig labels.
contributors/triage/guideline.md
Outdated
## Purpose | ||
|
||
Speed up issue management. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the lines become arbitrarily long, one can only comment on whole paragraphs, as opposed to individual lines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree but sorry I didn't get your comment/suggestion here, can you please elaborate? Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For an example, look at line 19 of this file via the github UI.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@spzala this has to do with the formatting of this doc. Can you use textwrap at 80 chars or something like that so long lines are broken up. That way we can comment, give feedback with more granularity.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@grodrigues3 yup, absolutely. Thanks!!
contributors/triage/guideline.md
Outdated
|
||
Speed up issue management. | ||
|
||
The Kubernetes issues are listed at https://github.com/kubernetes/kubernetes/issues and are identified with labels. For example, an issue that belongs to SIG Network will eventually be set to label `sig/network`. New issues will start out without any labels. The detailed list of labels can be found at https://github.com/kubernetes/kubernetes/labels. While working on triaging issues you may not have privilege to assign specific label (e.g. `triaged`) and in that case simply add a comment in the issue with your findings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is labels.yaml documented anywhere?
Do we translate area labels to sig labels yet?
We should probably delete the triaged
label. It was part of experiment to estimate how long it took to triage issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned elsewhere, bot commands should enable most people, if not everyone, to assign sig and area labels.
contributors/triage/guideline.md
Outdated
|
||
## Determine if it’s a support request | ||
|
||
Sometimes users ask for support requests in issues; these are usually support requests for people who need help configuring some aspect of Kubernetes. These should be directed to our [support structures](https://github.com/kubernetes/community/blob/master/contributors/devel/on-call-user-support.md) and then closed. Only authors and assignees can `/close` an issue. Also, if the issue is clearly abandoned or in the wrong place you can `/assign` to have it assigned to yourself, and then `/close`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could also direct support requests to https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/
contributors/triage/guideline.md
Outdated
* `priority/important-soon` or `priority/important-longterm` (P1 - High - functional error requiring quick fix) | ||
* `priority/backlog` (P2 - Medium - error but not critical, small issue, for example, typo) | ||
* `priority/awaiting-more-evidence` (P3 - Low) | ||
* (P4 - Wishlist - not a real bug but suggestion or new feature request) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wishlist == awaiting-more-evidence
If we'd never, ever do it, just close.
contributors/triage/guideline.md
Outdated
* `priority/important-soon` or `priority/important-longterm` (P1 - High - functional error requiring quick fix) | ||
* `priority/backlog` (P2 - Medium - error but not critical, small issue, for example, typo) | ||
* `priority/awaiting-more-evidence` (P3 - Low) | ||
* (P4 - Wishlist - not a real bug but suggestion or new feature request) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, "fixes" of low-priority issues have non-trivial costs (reviews, babysitting, submit queue bandwidth, etc.), so if they really are very low priority, we shouldn't encourage anyone to work on them.
contributors/triage/guideline.md
Outdated
|
||
## Set ownership | ||
|
||
All issues should have an owner. If you are not sure of an owner, defer to the SIG label only. You can ping a team with an @ mention, like `@kubernetes/sig-cluster-lifecycle, can you have a look at this?` if you feel the issue should warrant a notification. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The teams are documented here:
https://github.com/kubernetes/community/blob/master/sig-governance.md#create-the-github-teams
The purpose could be documented better.
Please avoid using the *-misc teams as much as possible.
contributors/triage/guideline.md
Outdated
|
||
If you think you can fix the issue, assign it to yourself with just `/assign`. | ||
|
||
## Poke issue owner if PR is not created for it in 30 days |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be automated.
contributors/triage/guideline.md
Outdated
|
||
If you see any issue which is owned by a developer but a PR is not created in 30 days, a Triage engineer should contact the issue owner and ask for PR or release ownership. | ||
|
||
## Poke SIG if a SIG label is assigned to the issue but no one took ownership of it in 15 days |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everyone's responsibility == nobody's responsibility
We really need clear owners for this. Who is this section directed at?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This section is directed to the SIG - i.e. the issue has sig label but no response from SIG in certain numbers of days so poke/gently remind the SIG itself. As you said, it would be nice and helpful if we can have specific owner - a SIG lead, may be? Thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I posted to the dev mailing list about extensions to OWNERS files about this
https://groups.google.com/d/msg/kubernetes-dev/su8MfL4PCYo/UPlCZGa4AQAJ.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thoughts on requiring all sigs to have issue-escalation owners? One person per sig (maybe for a set period of time?!) whose responsible for routing issues within the sig?
This is also where metrics may come in handy. Might be nice to have an update in the community meeting once in awhile with sig-issue triage metrics and visualizations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would think that as SIGs start to own parts of the code base that they would have oversight of the responsibilities of owning that, including issue management and escalation.
Should we perhaps make that explicit in the SIG charters that people mentioned in OWNERS are also responsible for issue triage, escalation and management?
contributors/triage/guideline.md
Outdated
|
||
To read priorities in detail, please refer to the [Priorities](https://github.com/kubernetes/community/blob/master/contributors/devel/issues.md#priorities). | ||
|
||
## Set ownership |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything to this point has been a logical progression. Ideally you could reference a single logic flow chart that a bot could link and reference such that new contributors know what state the issue is in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@timothysc thanks and are you referencing specifically to 'Define priority' section or all the sections so far? I am up for it, if you can help little more with re-write the way you are suggesting. /cc @castrojo
When you squash and force push commits, reviewers can't tell what changes you made, and their comments also become detached from the text/code. Please don't squash again until this has been approved. |
@bgrant0607 sure! Thought I will keep editing as get feedback, but good point. Sounds good, thanks! |
contributors/triage/guideline.md
Outdated
|
||
## Poke SIG if a SIG label is assigned to the issue but no one took ownership of it in 15 days | ||
|
||
If an issue has a SIG label assigned and no action is taken by SIG in 15 days (e.g. no comment was added by SIG or no discussion was initiated) then gently poke SIG about this pending issue. Also consider attending one of the SIG meetings if you feel this is appropriate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggest this is a bot responsibility. Also suggest starting with an experiment to see if the poking has any effect.
Ok we've gone over all the mentioned reviews (thanks everyone), and @spzala is working on a new commit that should address most of the straightforward ones. Two outstanding issues: a) Should we remove all the "manual notifications" sections in lieu of bots (existing or future?). If the automation doesn't exist then perhaps leaving it in there as a reminder might work? Or should we do a removal with the understanding that no one is manually keeping track of how ignored issues are being handled anyway and it's just adding length to this document. Then at some point someone will work on a bot that finds things that are over X days old and need triage/escalation? b) Can we get a lazy consensus on the location of the file? (I personally don't feel strongly about either having it in a triage directory or if it's triage.md or combined with issues.md or not). |
Can move to contributoris/devel and incorporate with the issues.md doc? Esp so we don't define the priority labels twice. |
@castrojo Have any other changes been made to address feedback? It's still just one commit. |
contributors/triage/guideline.md
Outdated
* Typing `/sig network` in a comment should add the sig/network label, for example. | ||
* Multiword SIGs use dashes, for example `/sig cluster-lifecycle`. | ||
|
||
## Validate if the issue is real |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This only applies to bug reports, not to other types of issues.
contributors/triage/guideline.md
Outdated
|
||
If you think you can fix the issue and you are an issue reporter or a component organization member, assign it to yourself with just `/assign`. If you can not self-assign, leave a comment that you are willing to work on it and work on creating a PR. | ||
|
||
## Poke issue owner if PR is not created for it in 30 days |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not realistic. The rate of issue submission is greater than the rate of resolution. Additionally, feature requests and other non-bugs probably will take multiple releases to resolve, in general. Issues that nobody is actively working on should definitely not have assignees.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgrant0607 For now, in new commit, didn't make much changes here. Totally agree with your comment but if there is a reasonable comment in the issue that it will take longer, then trigger won't bug SIG after initial touch base. If we need to make changes to text, I am good with it but for now created new commit with most feedback. Thanks!
contributors/triage/guideline.md
Outdated
|
||
## Poke SIG if a SIG label is assigned to the issue but no one took ownership of it in 15 days | ||
|
||
If an issue has a SIG label assigned and no action is taken by SIG in 15 days (e.g. no comment was added by SIG or no discussion was initiated) then gently poke SIG about this pending issue. Also consider attending one of the SIG meetings if you feel this is appropriate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not realistic, either.
This is not ready to be merged. And it needs to go in the devel subdirectory. |
@bgrant0607 hi, no new commits/changes were made. @castrojo and I met yesterday to discuss all feedback and I am working on new commit. Also, as you suggested, yes, I will edit issues.md in devel subdir with these guidelines and update README of devel accordingly. Thanks! |
@bgrant0607 hi, created a new commit. Hope did it as you suggested. Please take a look. I am sure it will take another round of feedback but have tried to take care of most feedback so far. Thanks!! |
For example, `@kubernetes/sig-cluster-lifecycle-bugs, can you have a look at this?` | ||
|
||
If you think you can fix the issue and you are an issue reporter or a component | ||
organization member, assign it to yourself with just `/assign`. If you can not |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FYI, I created k8s-external-contributor as a placeholder for issues being worked on by non-members.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bgrant0607 When an issue is assigned to k8s-external-contributor
, how to known who is the k8s-external-contributor
working on the issue? See example: kubernetes/kubernetes#8800 It's hard to find the real k8s-external-contributor
. Seems like this label is not so useful as expected. The ideal way might be allowing non-members to be assigned directly.
If you are not sure of who should own issue, defer to the | ||
SIG label only. If you feel the issue should warrant a notification,you can ping | ||
a team with an @ mention, in this format, `@kubernetes/sig-<group-name>-<group-suffix>`. | ||
Here the `<group-suffix>` can be one of `bugs, feature-requests,pr-reviews, test-failures, proposals`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should have a space before pr-reviews.
release if it gets done, but we wouldn't block the release on it. A few days | ||
before release, we will probably move all P2 and P3 bugs out of that milestone | ||
in bulk. | ||
The above [priority](#define-priority) scheme still applies. P0 and P1 issues |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The numerical priorities (P0, P1, etc.) should be changed to the verbose ones, but that could be done in a subsequent PR.
Thanks. LGTM. Please squash. You can fix the additional small details in a subsequent PR. |
This guideline was initially created and proposed by Sahdev Zala and Jorge Castro. It has been discussed multiple times in the ContribX SIG meetings and via emails, and it incorporates all the suggestions. This PR is created per the latest SIG meeting discussion. The original open document with little bit more content is available here, https://docs.google.com/document/d/1dfZGGIsx4QrY8aaC1o2SNmMU6eQKS4xYg55xNLtHDmc/edit Co-Authored-By: Jorge Castro jorge@heptio.com Create Issue Triage Guidelines This guideline was initially created and proposed by Sahdev Zala (IBM) and Jorge Castro (Heptio). It has been discussed multiple times in the ContribX SIG meetings and via emails, and it incorporates all the suggesitons. The original open document with longer content is available here, https://docs.google.com/document/d/1dfZGGIsx4QrY8aaC1o2SNmMU6eQKS4xYg55xNLtHDmc/edit Create Issue Triage Guidelines This guideline was initially created and proposed by Sahdev Zala and Jorge Castro. It has been discussed multiple times in the ContribX SIG meetings and via emails, and it incorporates all the suggestions. This PR is created per the latest SIG meeting discussion. The original open document with little bit more content is available here, https://docs.google.com/document/d/1dfZGGIsx4QrY8aaC1o2SNmMU6eQKS4xYg55xNLtHDmc/edit Co-Authored-By: Jorge Castro jorge@heptio.com
@bgrant0607 yrw and Thank you!! Sounds great. Squashing and I will fix small details in a subsequent PR. |
Change numerical priorities to verbose ones and fix a missing space as discussed under, kubernetes#787
Change numerical priorities to verbose ones and fix a missing space as discussed under, kubernetes#787
Change numerical priorities to verbose ones and fix a missing space as discussed under, kubernetes/community#787
Change numerical priorities to verbose ones and fix a missing space as discussed under, kubernetes#787
Change numerical priorities to verbose ones and fix a missing space as discussed under, kubernetes#787
This guideline was initially created and proposed by Sahdev Zala and
Jorge Castro. It has been discussed multiple times in the ContribX
SIG meetings and via emails, and it incorporates all the suggestions. This
PR is created per the latest SIG meeting discussion.
The original open document with little bit more content is available here,
https://docs.google.com/document/d/1dfZGGIsx4QrY8aaC1o2SNmMU6eQKS4xYg55xNLtHDmc/edit
Co-Authored-By: Jorge Castro jorge@heptio.com