デザインレビューガイドライン
該当する場合、以下のガイドラインに従ってください。
V8 のデザインレビューを公式化するにあたっては、複数の動機があります。
- 個々の貢献者 (IC) に対して、誰が意思決定者であるかを明確にし、技術的な意見の不一致によってプロジェクトが進まない場合の今後の道筋を明確にする
- 率直な設計に関する議論を行うためのフォーラムを作る
- V8 テクニカルリード (TL) がすべての重要な変更を認識し、テクニカルリード (TL) レイヤーで意見を述べる機会を確保する
- 世界中のすべての V8 貢献者の関与を高める
概要 #
重要
- 善意を前提とする
- 親切で礼儀正しくする
- 現実的である
提案された解決策は、以下の前提/柱に基づいています。
- 提案されたワークフローでは、個々の貢献者 (IC) が担当します。彼らはプロセスを促進する役割を担います。
- 彼らの指導を行う TL は、彼らが領域をナビゲートし、適切な LGTM 提供者を見つけるのを支援する役割を担います。
- 機能に議論の余地がない場合、オーバーヘッドはほとんど発生しません。
- 多くの議論がある場合、機能は V8 エンジニアリングレビューオーナー会議に「エスカレーション」され、そこでさらなる手順が決定されます。
役割 #
個々の貢献者 (IC) #
LGTM: 不要
この人は機能の作成者であり、設計ドキュメントの作成者です。
IC のテクニカルリード (TL) #
LGTM: 必須
この人は、特定のプロジェクトまたはコンポーネントの TL です。おそらく、この人はあなたの機能が影響を与える主要コンポーネントのオーナーです。TL が誰であるかが明確でない場合は、v8-eng-review-owners@googlegroups.com 経由で V8 エンジニアリングレビューオーナーに問い合わせてください。TL は、必要に応じて LGTM の必須リストにさらに人を追加する責任があります。
LGTM 提供者 #
LGTM: 必須
これは、LGTM を付与する必要がある人です。IC または TL(M) の場合があります。
ドキュメントの「ランダム」レビューア (RRotD) #
LGTM: 不要
これは、単に提案をレビューしてコメントする人です。彼らの LGTM は必須ではありませんが、彼らの意見は考慮されるべきです。
V8 エンジニアリングレビューオーナー #
LGTM: 不要
行き詰まった提案は、v8-eng-review-owners@googlegroups.com 経由で V8 エンジニアリングレビューオーナーにエスカレーションできます。このようなエスカレーションの潜在的なユースケース
- LGTM 提供者が応答しない
- 設計について合意に達することができない
V8 エンジニアリングレビューオーナーは、LGTM の付与/非付与を覆すことができます。
詳細なワークフロー #
- 開始: IC が機能に取り組むことを決定/機能が割り当てられる
- IC は、初期の設計ドキュメント/説明/ワンページャーを数人の RRotD に送付します
- プロトタイプは「設計ドキュメント」の一部と見なされます
- IC は、LGTM を付与すべきだと考える LGTM 提供者のリストに人を追加します。TL は LGTM 提供者のリストに必須です。
- IC はフィードバックを組み込みます。
- TL は LGTM 提供者のリストにさらに人を追加します。
- IC は、初期の設計ドキュメント/説明/ワンページャーを v8-dev+design@googlegroups.com に送付します。
- IC は LGTM を収集します。TL は彼らを支援します。
- LGTM 提供者はドキュメントをレビューし、コメントを追加し、ドキュメントの先頭に LGTM または LGTM 非付与を付与します。LGTM を付与しない場合は、その理由を記載する必要があります。
- オプション: LGTM 提供者は、LGTM 提供者のリストから自分自身を削除したり、他の LGTM 提供者を提案したりできます
- IC と TL は、未解決の問題の解決に取り組みます。
- すべての LGTM が収集されたら、v8-dev@googlegroups.com にメールを送信します (例: 元のスレッドに ping を送信する)。そして実装を発表します。
- オプション: IC と TL がブロックされている場合や、より広範な議論をしたい場合は、問題を V8 エンジニアリングレビューオーナーにエスカレーションできます。
- IC は v8-eng-review-owners@googlegroups.com にメールを送信します
- TL は CC に含まれます
- メールに設計ドキュメントへのリンクを含めます
- すべての V8 エンジニアリングレビューオーナーメンバーは、ドキュメントをレビューし、オプションで LGTM 提供者のリストに自分自身を追加する義務があります。
- 機能のブロックを解除するための次の手順が決定されます。
- その後もブロッカーが解決されない場合、または新しい解決できないブロッカーが発見された場合は、8 に進みます。
- IC は v8-eng-review-owners@googlegroups.com にメールを送信します
- オプション: 機能が承認された後に「LGTM 非付与」が追加された場合は、通常の未解決の問題として扱う必要があります。
- IC と TL は、未解決の問題の解決に取り組みます。
- 終了: IC は機能の実装に進みます。
そして常に覚えておいてください
- 善意を前提とする
- 親切で礼儀正しくする
- 現実的である
FAQ #
機能が設計ドキュメントを持つ価値があるかどうかをどのように判断するのですか? #
設計ドキュメントが適切な場合のいくつかのポイント
- 少なくとも 2 つのコンポーネントに影響を与える
- V8 以外のプロジェクト (例: デバッガー、Blink) との調整が必要
- 実装に 1 週間以上の労力を要する
- 言語機能である
- プラットフォーム固有のコードに影響を与える
- ユーザーに影響を与える変更
疑問がある場合は、TL に問い合わせてください。
LGTM 提供者のリストに誰を追加するかをどのように決定するのですか? #
LGTM 提供者のリストに人を追加する必要がある場合のいくつかのポイント
- 影響を与えると予想されるソースファイル/ディレクトリのオーナー
- 影響を与えると予想されるコンポーネントの主要コンポーネントエキスパート
- 変更のダウンストリームコンシューマー (例: API を変更する場合)
「私の」TL は誰ですか? #
おそらく、これはあなたの機能が影響を与える主要コンポーネントのオーナーです。TL が誰であるかが明確でない場合は、v8-eng-review-owners@googlegroups.com 経由で V8 エンジニアリングレビューオーナーに問い合わせてください。
設計ドキュメントのテンプレートはどこにありますか? #
こちら.
何か大きな変更があった場合はどうなりますか? #
明確で合理的な拒否期限を設けて LGTM 提供者に ping を送信するなどして、LGTM を引き続き保持していることを確認してください。
LGTM 提供者がドキュメントにコメントしません。どうすればよいですか? #
この場合、以下のエスカレーションパスに従うことができます
- メール、ハングアウト、またはドキュメント内のコメント/割り当てを通じて直接 ping を送信し、LGTM または LGTM 非付与を明示的に追加するように依頼します。
- TL に相談して助けを求めます。
- v8-eng-review-owners@googlegroups.com にエスカレーションします。
誰かが私をドキュメントの LGTM 提供者として追加しました。どうすればよいですか? #
V8 は、意思決定をより透明にし、エスカレーションをより簡単にすることを目指しています。設計が十分であり、実行されるべきだと考える場合は、自分の名前の横にあるテーブルセルに「LGTM」を追加してください。
ブロッキングとなる懸念や意見がある場合は、自分の名前の横にあるテーブルセルに「LGTM 非付与、理由: <理由>」を追加してください。別のレビューラウンドを依頼される準備をしてください。
これは Blink Intents プロセスとどのように連携するのですか? #
V8 デザインレビューガイドラインは、V8 の Blink Intent+Errata プロセス を補完するものです。新しい WebAssembly または JavaScript 言語機能を立ち上げる場合は、V8 の Blink Intent+Errata プロセスと V8 デザインレビューガイドラインに従ってください。実装意図を送信する時点で、すべての LGTM を収集しておくことが理にかなっています。