Go Wiki:处理问题
本文档介绍了我们如何在 Go 项目的 issue tracker 中处理 issue 的分类和安排。
Issue 状态
任何 issue 都必须处于以下状态之一。项目贡献者将 issue 从一个状态移动到另一个状态。这些明确状态的目的是描述将 issue 提交到解决状态所需的最少步骤。Issue 可以根据特定 issue 的需要以任何顺序在状态之间移动。
新建
- 已提交 issue。
- 格式可能不正确(标题等)。
- 要从这种状态过渡,有人必须清理 issue 报告,并可以选择 CC 最有可能调查或修复它的人。
需要调查
- 格式正确。
- 标题包含路径前缀。
- 主体描述了问题。
- 有里程碑。
- 如果 issue 不重要,可以将里程碑设置为
Backlog
。否则,将其设置为下一个即将发布的版本。
- 如果 issue 不重要,可以将里程碑设置为
- 具有
NeedsInvestigation
标签。- 如果调查人员正在等待某人提供更多信息(例如,issue 报告者),它也可能具有
WaitingForInfo
标签。
- 如果调查人员正在等待某人提供更多信息(例如,issue 报告者),它也可能具有
- 要从这种状态过渡,有人必须检查 issue 并确认它是有效的,并且不是现有 issue 的重复。
需要决策
- issue 是真实的,但我们不确定要采取什么措施。
- issue 可以在 Go 1 中解决。
- 在进行修复之前,需要来自专家、贡献者和/或社区的反馈。
- 请注意,大多数 issue 永远不会过渡到此状态,因为大多数情况下,决策都是明显的“是的,这应该修复”。
- 有里程碑。
- 具有
NeedsDecision
标签。- 可能具有
WaitingForInfo
标签。 - 如果向前推进取决于另一个 issue 的解决或未来版本的 Go 的发布,则可能具有
Blocked
标签。一个随附的注释应说明阻塞原因。 - 不能具有
Go2
标签。(这些 issue 是单独处理的。)
- 可能具有
- 要从这种状态过渡,有人必须决定如何解决 issue。
- 如果决策很复杂,issue 可能被赋予
Proposal
标签。issue 保持在此状态,直到提案过程完成,如果获得批准,则移至NeedsFix
。
- 如果决策很复杂,issue 可能被赋予
需要修复
- 解决问题的路径已知,但工作尚未完成。
- 有里程碑。
- 具有
NeedsFix
标签。- 可能具有
Blocked
或WaitingForInfo
标签。
- 可能具有
- 要从这种状态过渡,有人必须完成修复 issue 的工作。
修复待定
- 有一个修复 bug 的 CL,尚未提交,已通过 TryBots 测试。
- 不应具有
Blocked
或WaitingForInfo
标签。
已修复
- issue 已解决。无需进一步关注。
- issue 已关闭。
提案
- 有关提案流程,请参见下文。
issue 在适当的情况下从一个状态移动到另一个状态。例如,贡献者可以提交 issue,将其分配给自己,并立即应用 NeedsFix
标签。或者,issue 可以从 NeedsDecision
移动到 NeedsFix
,只有在出现复杂情况时才移回 NeedsDecision
。
issue 可以随时关闭,并在注释中说明关闭原因(“已由 … 修复”, “是 … 的重复”, “按预期工作” 等)。
在任何状态(除了新建)下,issue 都可以分配给某人。未分配的 issue 被认为可供任何人处理。
里程碑
里程碑描述了 issue 解决的时间线。
-
Go1.x.y
计划在 1.x.y 版本中修复。
-
带有 release-blocker 标签的 Go1.x.y
必须在 1.x.y 版本中修复,或者明确推迟到以后的版本。
-
提案
是一个提案,与特定版本无关。
-
待办事项
有人计划处理它,但尚未分配到发布里程碑。
-
未计划
可能在某个时候修复,但没有人计划这样做。
-
未发布
未包含在发布版本中或不需要发布版本。
-
Gccgo
适用于 gccgo issue。
其他里程碑可用于管理特定项目工作。
标签“Soon”独立于里程碑使用,表示 issue 比较紧急。
提案
对语言或标准库 API 的更改将经历 提案流程。在 issue tracker 中,提案通常具有 Proposal
标签,并位于 Proposal
里程碑中。
建议对库进行向后不兼容更改的提案将具有 v2
标签,这意味着它只能在包存在 v2 版本时(或者在遥远的将来,存在 v3 版本时)被采用。
建议更改语言的提案应具有 LanguageChange
标签。较小的语言更改将作为常规提案流程的一部分进行处理。较大的语言更改将通过语言审查流程进行处理;这些 issue 应具有 LanguageChangeReview
标签。
此内容是 Go Wiki 的一部分。