This document explains how we handle issue triage and scheduling in the Go project's issue tracker.
Any issue must be in one of the following states. Project contributors move issues from one state to another. 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.
Backlog
. Otherwise, set it to the next upcoming release.NeedsInvestigation
.WaitingForInfo
if the investigator is waiting for more information from someone (e.g., the issue reporter).NeedsDecision
.WaitingForInfo
.Blocked
if forward progress depends upon the resolution of another issue or the release of a future version of Go. An accompanying comment should explain the blockage.Go2
. (Those issues are handled separately.)Proposal
label. The issue remains in this state until the proposal process is complete, and moves to NeedsFix
if approved.NeedsFix
.Blocked
or WaitingForInfo
.Blocked
or WaitingForInfo
.Issues 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.
An issue may be closed at any time, with a comment to indicate the reason for closure (“fixed by …”, “duplicate of …”, “working as intended”, etc).
At any state (except New) the issue may be assigned to someone. Unassigned issues are considered available for anyone to address.
Milestones describe the timeline for issue resolution.
Go1.x.y
Planned to be fixed in release 1.x.y.
Go1.x.y with release-blocker label
Must be fixed for release 1.x.y, or explicitly postponed to a later release.
Proposal
Is a proposal and does not pertain to a specific release.
Backlog
Someone has plans to work on it, but it is not assigned to a release milestone yet.
Unplanned
Might be fixed at some point, but nobody is planning to do it.
Unreleased
Is not included in or needed by a release.
Gccgo
For gccgo issues.
Go2
Deferred until Go 2.
Additional milestones may be used to manage specific project work.
The label “Soon” is used independently of milestones to indicate that the issue is time-sensitive.