Browse code

Update issue triaging process

Signed-off-by: Arnaud Porterie <arnaud.porterie@docker.com>

Arnaud Porterie authored on 2015/07/18 08:03:59
Showing 1 changed files
... ...
@@ -4,16 +4,13 @@ Triaging of issues
4 4
 Triage provides an important way to contribute to an open source project.  Triage helps ensure issues resolve quickly by:  
5 5
 
6 6
 - Describing the issue's intent and purpose is conveyed precisely. This is necessary because it can be difficult for an issue to explain how an end user experiences an problem and what actions they took. 
7
-
8 7
 - Giving a contributor the information they need before they commit to resolving an issue. 
9
-
10 8
 - Lowering the issue count by preventing duplicate issues.
11
-
12 9
 - Streamlining the development process by preventing duplicate discussions.
13 10
 
14 11
 If you don't have time to code, consider helping with triage. The community will thank you for saving them time by spending some of yours.
15 12
 
16
-### Step 1: Ensure the issue contains basic information
13
+### 1. Ensure the issue contains basic information
17 14
 
18 15
 Before triaging an issue very far, make sure that the issue's author provided the standard issue information. This will help you make an educated recommendation on how this to categorize the issue. Standard information that *must* be included in most issues are things such as:
19 16
 
... ...
@@ -31,74 +28,65 @@ If the author provides the standard information but you are still unable to tria
31 31
 If the author does not respond requested information within the timespan of a week, close the issue with a kind note stating that the author can request for the issue to be
32 32
 reopened when the necessary information is provided.
33 33
 
34
-### Step 2: Apply the template
35
-
36
-When triaging, use the standard template below. You should cut and place the template in the issue's description. 
37
-The template helps other reviewers find key information in an issue. For example, using a template saves a 
38
-potential contributor from wading though 100s of comments to find a proposed solution at the very end.  When adding 
39
-the template to the issue's description also add any required labels to the issue for the classification and difficulty.
40
-
41
-Here is a sample summary for an [issue](https://github.com/docker/docker/issues/10545).
42
-
43
-```
44
-**Summary**: docker rm can return a non-zero exit code if the container does not
45
-exist and it is not easy to parse the error message.
46
-
47
-**Proposed solution**:
34
+### 2. Classify the Issue
48 35
 
49
-docker rm should have consistent exit codes for different types of errors so
50
-that the user can easily script and know the reason why the command failed. 
36
+An issue can have multiple of the following labels.
51 37
 
52
-```
53
-
54
-### Step 3: Classify the Issue
55
-
56
-Classifications help both to inform readers about an issue's priority and how to resolve it.
57
-This is also helpful for identifying new, critical issues.  "Kinds of" are
58
-applied to the issue or pull request using labels.  You can apply one or more labels.
59
-
60
-
61
-Kinds of classifications:
38
+#### Issue kind
62 39
 
63 40
 | Kind             | Description                                                                                                                     |
64 41
 |------------------|---------------------------------------------------------------------------------------------------------------------------------|
65
-| kind/enhancement | Enhancement are not bugs or new features but can drastically improve usability or performance of a project component.           |
66
-| kind/cleanup     | Refactoring code or otherwise clarifying documentation.                                                                         |
67
-| kind/content     | Content that is not documentation such as help or error messages.                                                               |
68
-| kind/graphics    | Work involving graphics skill                                                                                                   |
69
-| kind/regression  | Regressions are usually easy fixes as hopefully the action worked previously and git history can be used to propose a solution. |
70 42
 | kind/bug         | Bugs are bugs. The cause may or may not be known at triage time so debugging should be taken account into the time estimate.    |
43
+| kind/docs        | Writing documentation, man pages, articles, blogs, or other significant word-driven task.                                       |
44
+| kind/enhancement | Enhancement are not bugs or new features but can drastically improve usability or performance of a project component.           |
71 45
 | kind/feature     | Functionality or other elements that the project does not currently support.  Features are new and shinny.                      |
72 46
 | kind/question    | Contains a user or contributor question requiring a response.                                                                   |
73
-| kind/usecase     | A description of a user or contributor situation requiring a response perhaps in code or documentation.                         |
74
-| kind/writing     | Writing documentation, man pages, articles, blogs, or other significant word-driven task.                                       |
75
-| kind/test        | Tests or test infrastructure needs adding or updating.                                                                                                 |
76 47
 
48
+#### Functional area
77 49
 
78
-Contributors can add labels by using a `+kind/bug` in an issue or pull request comment.  
50
+| Area                      |
51
+|---------------------------|
52
+| area/api                  |
53
+| area/builder              |
54
+| area/cli                  |
55
+| area/kernel               |
56
+| area/runtime              |
57
+| area/storage              |
58
+| area/storage/aufs         |
59
+| area/storage/btrfs        |
60
+| area/storage/devicemapper |
61
+| area/storage/overlay      |
62
+| area/storage/zfs          |
79 63
 
80
-### Step 4: Estimate the experience level required
64
+#### Experience level
81 65
 
82 66
 Experience level is a way for a contributor to find an issue based on their
83 67
 skill set.  Experience types are applied to the issue or pull request using
84 68
 labels.
85 69
 
86
-| Level            | Experience level guideline                                                                                               |
87
-|------------------|--------------------------------------------------------------------------------------------------------------------------|
88
-| exp/beginner     | You have made less than 10 contributions in your life time to any open source project.                                   |
89
-| exp/novice       | You have made more than 10 contributions to an open source project or at least 5 contributions to Docker.                | 
90
-| exp/proficient   | You have made more than 5 contributions to Docker which amount to at least 200 code lines or 1000 documentation lines.   | 
91
-| exp/expert       | You have made less than 20 commits to Docker which amount to 500-1000 code lines or 1000-3000 documentation lines.       | 
92
-| exp/master       | You have made more than 20 commits to Docker and greater than 1000 code lines or 3000 documentation lines.               | 
70
+| Level            | Experience level guideline                                                                                                                                                  |
71
+|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
72
+| exp/beginner     | New to Docker, and possibly Golang, and is looking to help while learning the basics.                                                                                       |
73
+| exp/intermediate | Comfortable with golang and understands the core concepts of Docker and looking to dive deeper into the project.                                                            |
74
+| exp/expert       | Proficient with Docker and Golang and has been following, and active in, the community to understand the rationale behind design decisions and where the project is headed. |
93 75
 
94 76
 As the table states, these labels are meant as guidelines. You might have
95 77
 written a whole plugin for Docker in a personal project and never contributed to
96 78
 Docker. With that kind of experience, you could take on an <strong
97
-class="gh-label expert">exp/expert</strong> or <strong class="gh-label
98
-master">exp/master</strong> level task.
79
+class="gh-label expert">exp/expert</strong> level task.
80
+
81
+### 3. Prioritizing issue
99 82
 
100
-Contributors can add labels by using a `+exp/expert` format in issue comment.
83
+When attached to a specific milestone, an issue can be attributed one of the
84
+following labels to indicate their degree of priority (from more urgent to less
85
+urgent).
101 86
 
87
+| Priority    | Description                                                                                                                       |
88
+|-------------|-----------------------------------------------------------------------------------------------------------------------------------|
89
+| priority/P0 | Urgent: Security, critical bugs, blocking issues. P0 basically means drop everything you are doing until this issue is addressed. |
90
+| priority/P1 | Important: P1 issues are a top priority and a must-have for the next release.                                                     |
91
+| priority/P2 | Normal priority: default priority applied.                                                                                        |
92
+| priority/P3 | Best effort: those are nice to have / minor issues.                                                                               |
102 93
 
103 94
 And that's it. That should be all the information required for a new or existing contributor to come in an resolve an issue.
104 95