Drupalコアにパッチをどのように提供しますか?


10

Drupalコアにパッチを提供する適切なプロセスは何ですか?

Drupalコアにバグを見つけて修正し、パッチ作成するとします。どうすれば提出できますか?

バグがDrupal 7にある場合、Drupal 8でも修正して、2つのパッチを提出する必要がありますか?これはドキュメントのバグ/改善にも適用されますか?

すべてのパッチにも単体テストが必要ですか?


3
当分の間、私はdrupal.orgにすでにアカウントを持っていると仮定し、gitの使用方法、コアのチェックアウト方法、およびgitパッチの作成方法を知っていると仮定して、回答を探しています。適切な回答が得られたら、注釈を付けたり、回答を追加して、このプロセスの概要を説明できます。
mpdonadio

これは、コアのメンテナがmeta.drupal.stackexchange.com/questions/2325で提起した問題への対応であるため、通知は強制されます。特に上記の質問について、プロセスの良い要約が必要です。他のページにリンクしているだけの回答は、反対票が投じられたり、削除されたりします。この質問が、DAユーザーがコアに問題を見つけたときに参照できるリソースとして役立つことを願っています。
mpdonadio

回答:


6

バグがDrupal 7にある場合、Drupal 8でも修正して、2つのパッチを提出する必要がありますか?

開発中のバージョン(この場合はDrupal 8)と以前のバージョン(Drupal 7)にバグがある場合は、まず現在開発されているバージョンを修正してから、以前のバージョンでバグを修正する必要があります。

バグが削除された機能や既に変更された機能に関するものなど、バグが最新の開発バージョンに存在しない場合は、現在開発されているバージョンより前のバージョンのパッチを提供する必要があります。

実行されるワークフローは次のとおりです。

  • (Drupal 8の場合など)まだ開発中である場合でも、最初に最新バージョンのパッチが作成され、レビューのために送信されます。
  • そのパッチがDrupalに適用されると、以前のバージョンに適用されるパッチが作成され、レビューのために提出されます

2つのDrupalバージョンのパッチを同時に作成できますが、最新のDrupalバージョンのパッチは変更が必要になる可能性があるため、両方に必要な2つの異なるパッチで作業するよりも、現在開発されているバージョンのパッチで作業する方が適切です。変更されます。

参照してください:バックポートポリシー

これはドキュメントのバグ/改善にも適用されますか?

はい、そうです。この場合も、現在開発されているバージョンでドキュメントが参照している関数/メソッドが削除されている場合は、以前のバージョンのパッチを提供する必要があります。

すべてのパッチにも単体テストが必要ですか?

パッチがドキュメント用の場合、テストは必要ありません。http://qa.drupal.orgで実行されているテストボットは、パッチの適用後にDrupalコードをチェックします。パッチが構文エラーを引き起こす場合(たとえば、コメントが必要になる前に閉じられているため)、テストボットはテストが実行される前にパッチに関するエラーを報告します。

パッチが新機能用である場合、テストが必要です。

パッチがバグを修正することである場合、特定の機能をチェックするテストがまだない場合は、メンテナからのテストが必要になる可能性があります。テストは通常​​、将来同じコードを変更するときに同じバグが再び発生するのを避けるために必要です。バグが単に初期化された変数であり、関数/メソッドから使​​用されていない場合は、テストが不要である可能性があります。


同じ問題に複数のコアバージョンのパッチを含めることはできますか?
mpdonadio

1
問題が複数のバージョンに当てはまる場合、関係するすべてのバージョンのパッチが含まれている可能性があります。
キアムラルノ

D8パッチが最初に送信され、次にD7バージョンが送信されるケースは常にありますか?または、両方を同時に送信することが適切な場合はありますか?
mpdonadio

2つの異なるバージョンのパッチを送信できますが、最初に適用されるパッチは最新バージョン用です。パッチは変更が必要になる可能性があるため、最初に最新バージョンのパッチを作成することをお勧めします。
kiamlaluno

3

drupal.orgのすべてのプロジェクトページの上部に[バージョン管理]タブがあります。特定のプロジェクトのすべてのコードリポジトリオプションの概要だけでなく、すべてのgitコマンドの例もプロジェクトに合わせて調整されています。インタラクティブに特定のバージョンに変更することもできます。

Drupalコアの場合、http://drupal.org/project/drupal/git-instructionsにそのページがあります。

次に、パッチを作成したら、パッチの内容を説明する問題にパッチファイルを添付するだけです。

指摘すべき2つの重要な点は、パッチが「.patch」で終わっていることを確認し、ステータスを「要レビュー」に設定することです。これにより、テストボットはそれに気づき、自動的にテストを実行します。

新しいコードは常にテストを伴う必要があります

これはプロジェクトによってオフにすることが可能であり、一部ではオフになっていることに注意してください。Drupalコアの場合はオンですが、すべてのパッチがテストされます。

詳細については、http://drupal.org/contribute/developmentをご覧ください。


これは良いスタートです。
mpdonadio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.