Go Wiki: HandlingIssues

このドキュメントでは、Go プロジェクトの issue tracker で issue のトリアージとスケジューリングをどのように処理するかを説明します。

Issue の状態

すべての issue は、次のいずれかの状態にある必要があります。プロジェクトの貢献者は、issue をある状態から別の状態に移動させます。これらの明示的な状態の意図は、issue を解決に導くために必要な(最低限の)次のステップを記述することです。issue は、特定の issue のニーズに応じて、任意の順序で状態間を移動できます。

New

  • issue が起票されました。
  • 正しくフォーマットされていない場合があります(タイトルなど)。
  • この状態から移行するには、誰かが issue レポートをクリーンアップし、必要に応じて調査または修正に最適な可能性のある人物を CC する必要があります。

Needs Investigation

  • 正しくフォーマットされています。
    • タイトルにパスプレフィックスがあります。
    • 本文が issue を説明しています。
  • マイルストーンがあります。
    • issue が重要でない場合は、マイルストーンを Backlog に設定しても問題ありません。それ以外の場合は、次のリリースに設定します。
  • NeedsInvestigation ラベルがあります。
    • 調査担当者が誰か(例:issue の報告者)からの追加情報を待っている場合は、WaitingForInfo ラベルが付いている場合もあります。
  • この状態から移行するには、誰かが issue を調べて、それが有効であり、既存の issue の重複ではないことを確認する必要があります。

Needs Decision

  • issue は実際に存在しますが、どのような行動を取るべきか不明です。
    • issue は Go 1 で対応可能です。
    • 修正を行う前に、専門家、貢献者、および/またはコミュニティからのフィードバックが必要です。
    • ほとんどの issue の決定は「はい、これは修正されるべきです」と明白であるため、ほとんどの issue はこの状態に移行しないことに注意してください。
  • マイルストーンがあります。
  • NeedsDecision ラベルがあります。
    • WaitingForInfo ラベルが付いている場合があります。
    • 前進が別の issue の解決または将来の Go バージョンのリリースに依存する場合は、Blocked ラベルが付いている場合があります。付随するコメントは、ブロックの原因を説明する必要があります。
    • Go2 ラベルが付いていてはいけません。(これらの issue は別途処理されます。)
  • この状態から移行するには、誰かが issue をどのように解決するかを決定する必要があります。
    • 決定が複雑な場合は、issue に Proposal ラベルを付けることができます。issue はプロポーザルプロセスが完了するまでこの状態にとどまり、承認されれば NeedsFix に移動します。

Needs Fix

  • 解決への道筋はわかっていますが、作業はまだ行われていません。
  • マイルストーンがあります。
  • NeedsFix ラベルがあります。
    • Blocked または WaitingForInfo ラベルが付いている場合があります。
  • この状態から移行するには、誰かが issue を修正する作業を行う必要があります。

Fix Pending

  • バグを修正する CL があり、まだ提出されておらず、TryBots を通過しています。
  • Blocked または WaitingForInfo ラベルが付いていてはいけません。

Fixed

  • issue は解決されました。これ以上の注意は必要ありません。
  • issue はクローズされました。

提案

  • プロポーザルプロセスについては下記を参照してください。

issue は、適切な場合に状態間を移動します。例えば、貢献者は issue を起票し、自分自身にアサインし、すぐに NeedsFix ラベルを適用することができます。または、issue は NeedsDecision から NeedsFix に移行し、複雑さが発生した後に再び NeedsDecision に戻ることもあります。

issue はいつでもクローズすることができ、クローズの理由(「...によって修正された」、「...の重複」、「意図どおりに動作している」など)を示すコメントを付けます。

どの状態でも(New を除く)、issue は誰かにアサインすることができます。アサインされていない issue は、誰でも対応できるものとみなされます。

マイルストーン

マイルストーンは、issue 解決のタイムラインを記述します。

  • Go1.x.y

    リリース 1.x.y で修正される予定です。

  • リリースブロッカーラベル付き Go1.x.y

    リリース 1.x.y のために修正されるか、明示的に次のリリースに延期される必要があります。

  • 提案

    プロポーザルであり、特定のリリースには関係ありません。

  • Backlog

    誰かが取り組む予定がありますが、まだリリース MaileStone には割り当てられていません。

  • Unplanned

    いつか修正されるかもしれませんが、誰もそれを行う予定はありません。

  • Unreleased

    リリースに含まれていないか、リリースに必要とされていません。

  • Gccgo

    gccgo の issue 用。

特定のプロジェクト作業を管理するために、追加のマイルストーンが使用される場合があります。

「Soon」ラベルは、マイルストーンとは独立して、issue が時間的制約があることを示すために使用されます。

提案

言語または標準ライブラリ API の変更は、プロポーザルプロセスを経ます。issue tracker では、プロポーザルには通常 Proposal ラベルと Proposal マイルストーンが付与されます。

ライブラリに対する後方互換性のない変更を提案するプロポーザルには v2 ラベルが付与され、その変更はパッケージの v2 バージョン(または遠い将来の v3 バージョン)がある場合にのみ採用できることを意味します。

言語への変更を提案するプロポーザルには LanguageChange ラベルが付与されるべきです。マイナーな言語変更は通常のプロポーザルプロセスの一部として処理されます。より大規模な言語変更は言語レビュープロセスによって処理され、それらの issue には LanguageChangeReview ラベルが付与されるべきです。


このコンテンツはGo Wikiの一部です。