Go Wiki:處理問題
本文件說明我們如何在 Go 專案的議題追蹤器 中處理議題分類和排程。
議題狀態
任何議題都必須處於以下狀態之一。專案貢獻者會將議題從一個狀態移到另一個狀態。設定這些明確狀態的目的是說明解決議題所需的(最少)後續步驟。議題可以依照特定議題的需求,以任何順序在各個狀態移動。
新增
- 議題已提交。
- 可能格式不正確(標題等)。
- 若要從此狀態轉換,某人必須清理議題報告,並選擇 CC 最適合調查或修正議題的人。
需要調查
- 格式正確。
- 標題具有路徑前綴。
- 內文說明議題。
- 已設定里程碑。
- 如果問題並不重要,將里程碑設定為
Backlog
是可以的。否則,請將它設定為下一個即將發行的版本。
- 如果問題並不重要,將里程碑設定為
- 有標籤
NeedsInvestigation
。- 如果調查員正在等候其他人(例如問題回報者)提供更多資訊,則也可能有標籤
WaitingForInfo
。
- 如果調查員正在等候其他人(例如問題回報者)提供更多資訊,則也可能有標籤
- 由這個狀態進行轉移,必須有人檢查問題,並確認問題有效且並非現有問題的重複。
需要決策
- 問題是真實的,但我們不確定要採取什麼動作。
- 問題可以在 Go 1 中獲得解決。
- 在可以進行修正之前,需要專家、貢獻者和/或社群提供意見回饋。
- 請注意,大多數問題永遠不會轉移到這個狀態,因為大部分時間,決策都是顯而易見的「是的,應該將它修正」。
- 已設定里程碑。
- 有標籤
NeedsDecision
。- 可能有標籤
WaitingForInfo
。 - 如果後續進度取決於另一個問題的決議或未來版本 Go 的釋出,則可能有標籤
Blocked
。附註的評論應說明阻礙原因。 - 不能有標籤
Go2
。(那些問題另外處理。)
- 可能有標籤
- 由這個狀態進行轉移,必須由人來決定如何解決問題。
- 如果決策很複雜,則可能會給問題加上
Proposal
標籤。直到提案流程完成之前,問題都將維持在這個狀態,且如果獲得批准,會移到NeedsFix
。
- 如果決策很複雜,則可能會給問題加上
需要修正
- 已知解決路徑,但工作尚未完成。
- 已設定里程碑。
- 有標籤
NeedsFix
。- 可能有標籤
Blocked
或WaitingForInfo
。
- 可能有標籤
- 由這個狀態進行轉移,必須由人來完成工作以修正問題。
修正待處理
- 有一個 CL 來修正這個錯誤,尚未遞交給 TryBots。
- 不應有標籤
Blocked
或WaitingForInfo
。
修正完成
- 問題已解決。不需要進一步注意。
- 問題已關閉。
提案
- 請見下方提案流程。
問題應在適當時機從一個狀態移到另一個狀態。例如,一位貢獻者可能會提交一個問題,將它指派給自己,然後立刻加上NeedsFix
標籤。或者,一個問題可能會從NeedsDecision
移到 NeedsFix
,等到稍後問題複雜度升高又再移回 NeedsDecision
。
問題可以在任何時間關閉,並透過留言注明關閉的原因(「已由 … 修復」、「重複 …」、「已按預期運作」等)。
除了「新建」狀態以外,問題可以在任何狀態下指定給特定對象。未指定對象的問題視為任何人都可以處理的問題。
里程碑
里程碑描述問題解決的時間線。
-
Go1.x.y
計畫在 1.x.y 版本当中修復。
-
貼有「發布阻礙」標籤的 Go1.x.y
必須在 1.x.y 版本中修復,或明確延後至後續版本。
-
提案
提案,不屬於任何特定版本。
-
待辦事項
有人計畫要負責相關工作,但還未指派至任何版本里程碑。
-
未計畫
可能會在某個時間點修復,但目前無人計畫進行。
-
未發布
並未包括在或需要特定版本中。
-
Gccgo
針對 gccgo 問題。
可以額外使用里程碑來管理特定專案工作。
標籤「近期」獨立於里程碑使用,用於表示此問題具有時效性。
提案
變更至語言或標準程式庫 API 都會透過 提案程序 進行。在問題追蹤器中,提案通常會標記有 提案
標籤,並位於 提案
里程碑中。
建議對程式庫進行向下相容性變更的提案將標記有 v2
標籤,表示這個提案只能在有 v2 版本(或在遙遠的未來,有 v3 版本)的套件下才能採用。
建議對語言進行變更的提案應標記有 語言變更
標籤。次要語言變更會在一般提案程序中處理。主要語言變更會透過語言檢閱程序處理;這些問題應標記有 語言變更檢閱
標籤。
此內容屬於 Go Wiki 的一部分。