blob: 2b5e6935af35e8ab9b63db40d54995294901f0df [file] [log] [blame] [view]
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001This document explains how we handle issue triage and scheduling in [the Go project's issue tracker](http://golang.org/issue).
2
Quentin Smith44069332016-10-03 14:50:35 -04003# Issue States
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11004
Quentin Smith44069332016-10-03 14:50:35 -04005Any issue must be in one of the following five states. Project contributors move issues from one state to another by doing things. The intent behind these explicit states is to describe the (minimum) next steps required to bring the issue to resolution. Issues may move between states in any order, as dictated by the needs of the particular issue.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11006
Quentin Smith44069332016-10-03 14:50:35 -04007New
8- The issue has been filed.
9- May not be correctly formatted (title, etc).
10- To transition from this state, someone must clean up the issue report and optionally cc people who might best investigate or fix it.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110011
Quentin Smith44069332016-10-03 14:50:35 -040012Needs Investigation
13- Is correctly formatted (the title has a path prefix, and the body describes the issue).
14- Has the label `NeedsInvestigation`.
15- May have the label `WaitingForInfo` if the investigator is waiting for more information from someone (e.g., the issue reporter).
16- To transition from this state, someone must examine it and confirm that it is a valid issue and not a duplicate of an existing issue.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110017
Quentin Smith44069332016-10-03 14:50:35 -040018Needs Decision
19- The issue is real, but we're not sure what action to take. Feedback is required from experts, contributors, and/or the community before a fix can be made.
20- Note that the majority of issues will never transition to this state, as most of the time the decision is an obvious "Yes, this should be fixed."
21- Has the label `NeedsDecision`.
22- Has a milestone.
23- May have the label `Blocked` if forward progress cannot be made pending the resolution of another issue or the release of a future version of Go (an accompanying comment should explain the blockage).
24- May have the label `WaitingForInfo`.
25- To transition from this state, someone must decide how the issue is to be resolved.
26- If the decision is complicated, the issue may be given a `Proposal` label and the issue remains in this state until the proposal process is complete.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110027
Quentin Smith44069332016-10-03 14:50:35 -040028Needs Fix
29- The path to resolution is known, but the work has not been done.
30- Has the label `NeedsFix`.
31- Has a milestone.
32- May have the labels `Blocked` or `WaitingForInfo`.
33- To transition from this state, someone must do the work to fix the issue.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110034
Quentin Smith44069332016-10-03 14:50:35 -040035Fixed
36- The issue is resolved. No further attention is required.
37- Is closed.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110038
Quentin Smith44069332016-10-03 14:50:35 -040039Issues move from one state to another where appropriate. For example, a contributor may file an issue, assign it to themselves, and immediately apply the `NeedsFix` label. Or, an issue may go from `NeedsDecision` to `NeedsFix`, only to later move back to `NeedsDecision` as complexities arise.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110040
Quentin Smith44069332016-10-03 14:50:35 -040041An issue may be closed at any time, with a comment to indicate the reason for closure ("fixed by …", "duplicate of …", "working as intended", etc).
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110042
Quentin Smith44069332016-10-03 14:50:35 -040043At any state (except New) the issue may be assigned to someone.
44Unassigned issues are considered available for anyone to address.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110045
Quentin Smith44069332016-10-03 14:50:35 -040046# Milestones
47Milestones describe the timeline for issue resolution.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110048
Quentin Smith44069332016-10-03 14:50:35 -040049- Go1.x.yEarly
50
51 Must be fixed first for release 1.x.y, either because the issue is complicated and the fix needs time to bake, or because the issue is high priority.
52
53- Go1.x.y
54
55 Must be fixed for release 1.x.y.
Alberto Donizettie7a4a822017-02-01 22:37:32 +010056
Quentin Smith44069332016-10-03 14:50:35 -040057- Go1.x.yMaybe
58
59 Might be fixed for release 1.x.y.
Alberto Donizettie7a4a822017-02-01 22:37:32 +010060
Quentin Smith44069332016-10-03 14:50:35 -040061- Proposal
62
63 Is a proposal and does not pertain to a specific release.
Alberto Donizettie7a4a822017-02-01 22:37:32 +010064
Quentin Smith44069332016-10-03 14:50:35 -040065- Soon
66
67 Should be fixed soon, but is not included in or needed by a release.
Alberto Donizettie7a4a822017-02-01 22:37:32 +010068
Quentin Smith44069332016-10-03 14:50:35 -040069- Unplanned
70
71 Might be fixed at some point, but nobody is planning to do it.
Alberto Donizettie7a4a822017-02-01 22:37:32 +010072
Quentin Smith44069332016-10-03 14:50:35 -040073- Unreleased
74
75 Is not included in or needed by a release.
Alberto Donizettie7a4a822017-02-01 22:37:32 +010076
77- Gccgo
78
79 For gccgo issues.
80
Quentin Smith44069332016-10-03 14:50:35 -040081- Go2
82
83 Deferred until Go 2.
84
85Additional milestones may be used to manage specific project work.