# プル リクエスト

Dynamo は、コミュニティの創造性と取り組みに依存しています。Dynamo チームは、貢献者が可能性を探り、アイデアをテストし、コミュニティに参加してフィードバックを求めることを奨励しています。技術革新を強く推奨する一方で、変更は Dynamo をより使いやすくし、このドキュメントで定義されたガイドラインを満たす場合にのみマージされます。有用性が狭い範囲に限られる変更や定義はマージされません。

#### プル リクエストに期待されること <a href="#pull-request-expectations" id="pull-request-expectations"></a>

Dynamo チームは、プル リクエストが次のガイドラインに従うことを期待してます。

* [コーディング標準](https://github.com/DynamoDS/Dynamo/wiki/Coding-Standards) と [ノードの命名規則](https://github.com/DynamoDS/Dynamo/wiki/Naming-Standards) に従っていること。
* 新しいフィーチャを追加するときに単位テストを含めるていること。
* バグを修正する場合は、現在の動作にどのような不具合があるかを示す単位テストを追加すること。
* 議論を 1 つの問題に集中させること。新しい指摘事項や関連トピックが出現した場合は、新しいリクエストを作成します。

また、以下にやってはいけない事項も示します。

* 大きななプル リクエストを作成する。リクエストの内容が大きくなる場合は、まず問題を提起して議論を開始します。これにより膨大な時間を費やす前に、方向性について合意することができます。
* 自分が書いたものではないコードをコミットする。Dynamo に追加するのに適していると思われるコードが見つかった場合は、処理を進める前に、問題を提起して議論を開始してください。
* ライセンス関連のファイルまたはヘッダを変更するプル リクエストを送信する。ライセンス関連に問題があると思われる場合は、問題を報告してください。まずは問題について話し合います。
* 問題の報告も議論もないまま API の追加を行うこと。

#### プル リクエスト テンプレートに入力する <a href="#filling-out-the-pull-request-template" id="filling-out-the-pull-request-template"></a>

プル リクエストを送信する場合は、[既定の プル リクエスト テンプレート](https://github.com/DynamoDS/Dynamo/blob/master/.github/PULL_REQUEST_TEMPLATE.md)を使用してください。プル リクエストを提出する前に、目的が明確に記述されていること、すべての宣言が真実であることを確認します。

* このプル リクエストの後、コードベースはより良い状態であること。
* [標準](https://github.com/DynamoDS/Dynamo/wiki/Coding-Standards)に従って文書化されている。
* このプル リクエストに含まれるテストのレベルが適切である。
* ユーザ向けの文字列がある場合、`*.resx` ファイルに抽出されている。
* すべてのテストは、セルフサービス CI を使用して合格している。
* UI 変更のスナップショット(ある場合)。
* API に対する変更は[セマンティック バージョン管理](https://github.com/DynamoDS/Dynamo/wiki/Dynamo-Versions)に従っており、[API の変更点](https://github.com/DynamoDS/Dynamo/wiki/API-Changes)に文書化されている。

Dynamo チームによって、適切なレビュー担当者がプル リクエストに割り当てられます。

#### プル リクエストのレビュー プロセス <a href="#pull-request-review-process" id="pull-request-review-process"></a>

プル リクエストを送信したら、投稿者はレビュー プロセス中も引き続き関与する必要があります。次のレビュー基準にご留意ください。

* Dynamo チームでは月 1 回のミーティングを行い、古いものから新しいものの順にプル リクエストをレビューします。
* レビュー済みのプル リクエストで所有者による変更が必要な場合、所有者は 30 日以内に回答する必要があります。次回のミーティングまでに動きがなかった場合は、チームはプル リクエストを終了するか、その有用性に応じてチームの誰かが引き継ぎます。
* プル リクエストには、Dynamo の既定のプル リクエスト テンプレートを使用する必要があります。
* Dynamo プル リクエスト テンプレートが完全に記入される必要があり、すべての宣言が満たされていないプル リクエストはレビューされません。

#### Dynamo Revit コミットを厳選する <a href="#cherry-picking-dynamo-revit-commits" id="cherry-picking-dynamo-revit-commits"></a>

Revit には複数のバージョンが存在するため、Revit の異なるバージョンで新しい機能を利用できるように、特定の DynamoRevit リリース ブランチに特定の変更を選択する必要がある場合があります。レビュー プロセス中、貢献者は Dynamo チームの指定に従ってレビュー済みのコミットを他の DynamoRevit ブランチに厳選する責任があります。
