バグのトリアージと問題のキュレーション#

イシュー トラッカーは、 機能要求の作成、バグの報告、主要なプロジェクトの特定、優先順位の議論を行うための中心的な場所として機能するため、プロジェクト内のコミュニケーションにとって重要です。このため、問題リストを整理し、問題にラベルを追加し、解決済みまたは解決不可能な問題をクローズすることが重要です。

問題のトリアージは、Matplotlib の内部に関する特別な専門知識を必要とせず、プロジェクトにとって非常に価値があり、誰でも問題のトリアージに参加することを歓迎します! ただし、Matplotlib 組織に属していないユーザーには、マイルストーンを変更したり、ラベルを追加したり、課題をクローズしたりする権限がありません。何かを行うための十分な GitHub 権限がない場合 (例: ラベルの追加、Issue のクローズ)、 @matplotlib/triageteamおすすめのタグを付けてコメントを残してください!

それらを改善するために問題に取り組んでいます#

問題を改善すると、正常に解決される可能性が高くなります。良い問題を提出するためのガイドラインは、ここにあります。サード パーティは、有益なフィードバックを提供したり、問題に関するコメントを追加したりできます。通常、次のアクションが役立ちます。

  • コードサンプルなど、問題を再現するための要素が欠落している問題の文書化

  • コードの書式設定をより適切に使用することを提案します (たとえば、マークダウンでのトリプル バックティック)。

  • タイトルと説明を再構成して、解決すべき問題をより明確にすることを提案する

  • 関連する問題や議論にリンクし、それらがどのように関連しているかを簡単に説明します。たとえば、「これに関する同様の試みについては #xyz も参照してください」または「同じことが報告された #xyz も参照してください」というように、コンテキストを提供し、議論を助けます。

  • 問題が再現可能であることを確認する

  • 問題を機能リクエスト、長期にわたるバグ、またはリグレッションとして分類します

トリアージチーム#

トリアージチームに参加したい場合:

  1. 2 ~ 3 の問題を正しくトリアージします。

  2. トリアージ チームの誰かに(公的または非公開で) 依頼して、トリアージ チームにあなたを推薦してもらいます。トリアージされた問題について誰かと一緒に仕事をした場合は、その人に尋ねるのが良いでしょう。

  3. 責任を持ってあなたの新しい力を行使してください!

コミット権限またはトリアージ権限を持つユーザーは、トリアージ チームに招待されるユーザーを指名することもできます。

コアチームとトリアージチームのメンバーのトリアージ操作#

上記に加えて、コア チームとトリアージ チームのメンバーは、次の重要なタスクを実行できます。

  • 問題と PR のラベルを更新する:利用可能な github ラベルのリストを参照してください。

  • トリアージの問題:

    • 投稿されたコードが「ステータス: 確認済みのバグ」のバグ ラベルの場合、問題を再現します。

    • 回帰を特定し、報告されたバグが最近のバージョンの Matplotlib で期待どおりに機能していたかどうかを判断し、そうである場合は最後に機能していたバージョンを判断します。リグレッションは、次のバグ修正リリースのマイルストーンとなる必要があり、「リリース クリティカル」とラベル付けされる場合があります。

    • 使用上の質問を締めくくり、代わりに談話またはスタック オーバーフローを使用するようレポーターに丁寧に指示し 、「コミュニティ サポート」というラベルを付けます。

    • それらが実際に重複していることを確認した後、重複する問題を閉じます。理想的には、元の提出者がディスカッションを古い重複する問題に移動します

    • 時間 (少なくとも 1 週間) を残して追加情報を追加した後、複製できない問題をクローズします。

問題をトリアージするための典型的なワークフロー#

次のワークフロー[ 1 ]は、問題のトリアージにアプローチする良い方法です。

  1. 問題を開いてくださったレポーターに感謝します

    イシュー トラッカーは、多くの人にとって、単にライブラリを使用するだけでなく、Matplotlib プロジェクト自体との最初のやり取りです。そのため、私たちはそれを歓迎し、楽しい経験にしたいと考えています。

  2. これは使い方の問題ですか?その場合は、丁寧なメッセージで締めくくります。

  3. 必要な情報は提供されていますか?

    ポスターが発行テンプレートに記入されていることを確認してください。重要な情報 (Python のバージョン、使用されている Matplotlib のバージョン、OS、およびバックエンド) が不足している場合は、元の投稿者に情報を提供するよう丁寧に依頼してください。

  4. 問題は最小限で再現可能ですか?

    バグ レポートの場合、報告者は最小限の再現可能な例を提供するように求められます。 適切な説明については、Matthew Rocklin によるこの便利な投稿を参照してください。例が再現できない場合、または明らかに最小限ではない場合は、例を提供するか、提供されたものを単純化できるかどうか、遠慮なくレポーターに尋ねてください。最小限の再現可能な例を書くのは大変な作業であることを認めてください。レポーターが苦労している場合は、自分で書いてみてください。

    再現可能な例が提供されているが、単純化されている場合は、より単純な再現可能な例を追加してください。

    問題を再現できない場合は、OS、Python、Matplotlib のバージョンとともに報告してください。

    このステップまたは前のステップからさらに情報が必要な場合は、問題に「ステータス: 説明が必要」というラベルを付けてください。

  5. これは回帰ですか?

    私たちはバグのないライブラリを目指して努力していますが、リグレッションは最優先事項です。以前は機能していたユーザー コードが破損している場合は、次のパッチ リリースで修正する必要があります。

    古いバージョンの Matplotlib に対して再現コードを実行して、回帰がいつ発生したかを判断してください。これは、Matplotlib のリリースされたバージョン (最後に動作したバージョンを取得するため) またはgit bisectを使用して、壊れた最初のコミットを見つけることで実行できます。

  6. これは重複した問題ですか?

    多くの未解決の問題があります。新しい問題が重複していると思われる場合は、元の問題を指摘してください。明らかに重複している場合、またはコンセンサスが重複している場合は、閉じます。報告者には引き続き感謝の意を表し、元の問題について話し合うように促し、場合によってはそれを修正するように努めてください。

    新しい問題が関連情報を提供する場合 (より良い例やわずかに異なる例など)、コメントとして元の問題に追加するか、元の投稿を編集してください。

    クローズされた問題に「ステータス: 重複」というラベルを付けます

  7. タイトルが問題を正確に反映していることを確認してください。必要な権限がある場合は、明確でない場合は自分で編集してください。

  8. ドキュメントに関する問題の場合は「ドキュメント」、明らかにバグの場合は「バグ」、新機能のリクエストの場合は「新機能」など、関連するラベルを追加します。

    問題が明確に定義されていて、修正が比較的簡単に思える場合は、その問題に「最初の問題」としてラベルを付けます (場合によっては、修正の説明またはコード ベースのどこから開始するかについてのヒントも示します)。

    追加の有用なステップは、関連する場合に「GUI/Qt」ラベルなど、対応するモジュールにタグを付けることです。

レビューに役立つ PR に取り組んでいます#

コードのレビューも推奨されます。コントリビューターとユーザーは、レビュー ガイドラインに従ってレビュー プロセスに参加できます。

謝辞#

このページは、scikit-learn プロジェクトを軽く改変したものです。