Drupal コントリビューション ジャーニーをジャンプスタートするための究極のガイド
公開: 2022-08-23序章
オープンソースのコンテンツ管理システムである Drupal は、世界中の開発者とユーザーのコミュニティからさまざまな形での貢献を奨励しています。 マーケティング、文書化、イベント組織、またはプロジェクトの金銭的支援など、コード以外の方法で、コアおよび貢献プロジェクトへのパッチを含むコードの形式である可能性があります。 この記事では、Drupal コード コントリビューションの旅をゼロから始めるために知っておくべきことをすべて説明します。
Drupal に貢献する理由
もちろん、あなたの働き方や日常生活をサポートするプロジェクトに恩返しをすることは、オープンソース プロジェクトに自発的に貢献し、改善する十分な理由になるかもしれません。 しかし、貢献するためのもう少しのインセンティブを探しているなら、私たちが見たいくつかの利点があります:
- あなたの貢献は、時間の経過とともにすべての依存関係で起こっている進歩に Drupal が関連性を持ち、最新の状態を維持するのに役立ちます
- Drupal についてより多くの知識を得ることができ、クライアント向けにより優れたアプリケーションを構築できるようになります。
- 開発者がより多くのスキルと知識を獲得し、専門家としての地位を示すことにより、貢献のための時間を後援する組織に競争上の優位性を与えます。
- あなたと同じ興味を共有する人々と協力して会う
貢献する方法
まず、drupal.org で自分用のアカウントを作成し、必要な詳細でプロファイルを更新します。
Drupal.org でのアカウント作成
問題を探す
アカウントが作成されたら、次のステップは適切な問題を見つけることです。 興味によって異なる場合があります。
1. 課題キュー (https://www.drupal.org/project/issues) から課題を見つけることができます。 より具体的な検索を行うには、[高度な検索] をクリックしてフィルターを使用できます。
- 課題タグ - 課題にはさまざまなタグが付けられています。 「初心者」タグは、問題に簡単な修正が必要であり、初心者なら誰でも選択できることを示し、「ドキュメントが必要」タグは、この問題にドキュメントの変更が必要であることを示します。
- 問題のステータス - 問題が作成されると、さまざまな状態を経ます。 現在の問題のステータスに基づいて、前進するために必要な次のステップを決定できます。
- 問題の優先度 - 問題が重大なバグであるかマイナーな修正であるかにかかわらず、問題の優先度を定義します。
- 問題のカテゴリ - 問題のカテゴリを示します。これは、バグであるか、タスクであるか、またはプロジェクトへの新しい機能の要求である可能性があります。
- 特定のプロジェクト - ここでは、関心のあるプロジェクトを直接指定できます。
課題フィルター
2. または、module/theme/profile ページ ( https://www.drupal.org/project/<project_name> ) にアクセスして、常に関心を持っていたプロジェクトから開始します。 右側のサイドバーで、「すべての問題」リンクを探します - https://www.drupal.org/project/issues/<project_name>?categories=All
3. または、プロジェクトの作業中に、コアで遭遇したバグ、または貢献したモジュール/テーマ/プロファイルに取り組みます。 それは貢献する正しい方法でもあります。 プロジェクトに取り組んでいる間でも、常に「貢献者モード」をオンにしておくことを練習する必要があります。これにより、隠れた問題を調査し、修正に貢献する機会が得られます。
Drupal の問題のライフ サイクル
問題が作成されると、さまざまな状態を経ます。 以下は、遭遇するさまざまな問題のステータスです。
- アクティブ- 新しい問題が作成されると、それはアクティブな状態になります。
- レビューが必要 - 問題に取り組む必要がある場合、その問題は「作業が必要」状態になります。
- 作業が必要- 問題が選択され、パッチが正常に送信され、すべてのテスト ケースに合格したら、問題の状態をレビューが必要に変更する必要があります。
- コミュニティによるレビューとテスト- 問題が寄稿者によってレビューされると、その問題は「コミュニティによるレビューとテスト」(RTBC) 状態に移行し、コア コミュニティ チームのメンバーの 1 人が問題をレビューします。
- 修正済み - 問題が RTBC 状態から渡されると、問題は修正済み状態に移行します。
- クローズ (修正済み) - 修正済み状態の後、課題は 2 週間以内に自動的にクローズ (修正済み) に移行します。 これは問題の最後の状態です。
- クローズ (重複) - 以前のものと重複する課題が作成されると、クローズ (重複) として直接クローズされます。
- クローズ済み (修正されません) - この状態は、問題に解決策がないことを表します。
- クローズ済み (設計どおりに動作) - この状態は、発生した問題が想定どおりの機能を提供しているため、「設計どおりに動作する」に移行したことを表します。 つまり、提起された問題はバグではなく機能です。
- クローズ済み (再現不可) - 問題が再現できない場合、この状態に移行します。
- クローズ済み (古い) - 問題が古すぎて修正できないか、他のモジュールの問題内で修正された場合、その問題の状態はクローズ (古い) になる可能性があります。
- パッチ (移植予定) - Drupal/Contributed モジュールの他のバージョンにパッチを移植する場合。
- 延期- 問題/機能/バグが作成者/コミュニティによって延期され、修正が必要ない場合。
- 延期 (メンテナーは詳細情報が必要) - 問題が提起されたが、寄稿モジュールのメンテナーによると、問題を修正するにはその問題に関する詳細情報が必要な場合。
問題を作成する
モジュールの問題を作成します。 モジュールhttps://www.drupal.org/project/issues/<project_name>?categories=Allの問題キューに移動し、 Create a new issueをクリックします。
次のステップは、作成する必要がある課題の詳細を提供することです。
1. タイトル:問題のタイトルを追加します。
2. プロジェクト:プロジェクト名が自動選択されます。
3. カテゴリ:プロジェクトのカテゴリを選択します。 5つのカテゴリがあります
- バグ:バグは、システムの機能エラーです。 たとえば、php エラー、データ損失、メモリ リーク、不正確または誤解を招くドキュメント、不正確または誤解を招くユーザー インターフェイス テキストなどです。
- タスク:これらは機能的なバグではなく、リリース前に「実行する必要がある」ものです。 たとえば、コードをより読みやすく保守しやすくするためのリファクタリング、自動テストの追加、新しい API へのコードの更新、コーディング標準の改善などです。
- 機能リクエスト:これは、モジュールに追加されるまったく新しい機能のリクエストです。
- サポート リクエスト:モジュールの任意の部分についてサポートが必要な場合、または drupal コア機能について知りたい場合。 サポート リクエストにタグを付けて、質問を追加できます。
- Plan:このタグは、1 つの問題では解決できない問題がある場合に使用されます。 計画課題には、「子」課題に関連する複数のサブステップが含まれることがよくあります。
4. 優先度:問題の優先度を選択します。 ここには、クリティカル、メジャー、ノーマル、マイナーがあります。 よほど深刻でない限り、通常を選択してください。 または、通常どおり選択して、メンテナまたはレビュー担当者が必要に応じて変更できるようにすることもできます。
5. ステータス:新しい問題に対してアクティブを選択します。
6. バージョン:問題を修正する必要があるプロジェクトのバージョンを選択します。
7. コンポーネント:問題に最も近いものを選択します。 これらは後で変更できます。 ここでのコンポーネントは、モジュールに基づいています。 オプションはモジュールごとに異なります。
8. 割り当て済み:課題は誰にでも割り当てることができます。 これは必須ではなく、後で割り当てることができます。
9. タグ:問題に適切なタグを付けます。 課題タグの知識がない場合、これは空のままにすることができます。 これは必須ではなく、後でタグ付けできます。
10. 問題の概要と関係:フィールドを展開すると、編集者に問題の詳細を追加してもらいます。 エディターにはいくつかの定義済みの見出しがあり、問題の詳細でそれらが必要ない場合は、それらを置き換えることができます。
- 親の問題: 親の問題にタグを付けます。
- 関連する問題: 関連する問題にタグを付ける。
11. ファイル: 問題に関連するファイルを追加したり、ファイルの下に作成しながら問題にパッチをアップロードしたりできます。 問題を保存します。
問題を保存した後。 作成された課題は、それぞれのモジュールの課題キューに追加されます。
drupal コアの課題を作成するには、https://www.drupal.org/node/add/project-issue/drupal がリンクです。 手順は、モジュールで問題を作成する場合と同じです。 ただし、上記のリンクに表示される主要な問題を作成するためのガイドラインがいくつかあります。
これらは、コア課題を作成する際に従うべきガイドラインです。
パッチを作成する
ここには2つのケースがあります
- 新しいパッチを作成する
- 既存のパッチを更新します。
新しいパッチを作成するには
- モジュールのバージョン管理タブに移動します。 https://www.drupal.org/project/ <project_name>/git-instructionsがページへのリンクです。
- 作業するブランチを選択し、[表示] ボタンをクリックします。
表示ボタンをクリックすると、git コマンドが取得され、端末でコマンドをコピーして実行し、ディレクトリを複製されたモジュールに変更します。
- 問題を修正するために変更を行います。
- パッチを作成するコマンドは次のとおりです。
git diff > <issue-description (optional)>-<issue-number>-<comment-number>.patch
- 問題の説明は問題のタイトルになります。すべての文字は小文字で、スペースはアンダースコアで埋める必要があります。 これはオプションです。
- 問題番号は、問題の URL に記載されています。 これは、パッチ ファイルに名前を付ける際に必須となる問題に固有のものです。
- コメント番号は、パッチがアップロードされる最新のコメント ID です。
パッチに新しいファイルを追加する必要があるとします。 新しいファイルは追跡されず、コマンド git diff はファイルを追跡しません。
新しいファイルをパッチに追加するには
- git add コマンドを使用して新しいファイルを追加します。
- 走る
git diff HEAD > <issue-description (optional)>-<issue-number>-<comment-number>.patch
既存のパッチを更新するには
1. パッチを追加する必要があるプロジェクトを複製します。
2. 問題ページに移動し、パッチ リンクを右クリックして、[アドレス リンクのコピー] をクリックします。
3. curl または wget コマンドを使用してパッチをローカルにダウンロードします。
curl コマンドを使用してパッチをダウンロードするには:
curl -O <paste the address link of the patch>
4. パッチを適用するには、次のコマンドを実行します。
git apply <patch name>
5. パッチを適用すると、ローカルでパッチの変更が取得されます。 パッチに必要な変更をさらに追加し、新しいパッチを作成します。
既存のパッチを更新する場合、interdiff ファイルを作成する必要があります。 Interdiff ファイルは、古いパッチと新しいパッチの違いに他なりません。 これは、レビュアーが新しいパッチで行われた変更を知るのに役立ちます。
以下は、interdiff を作成するコマンドです。
interdiff <old-patch> <new patch> > interdiff_<old-patch-comment-number>-<new-patch-comment-number>.txt
古いダウンロード パッチ 3302030-2.patch と、作成した新しい更新パッチ 3302030-3.patch があるとします。 これら 2 つのファイル間の相互差分を作成するには、コマンドは次のようになります。
interdiff 3302030-2.patch 3302030-3.patch > interdiff_2-3.txt
パッチを提出する
パッチを作成したら、パッチを送信する必要があります。
パッチを送信するには、問題ページにアクセスしてください。
1. メタデータの発行
問題のメタデータで、ステータスをニーズ レビューに変更します。 問題が自分に割り当てられている場合は、その問題の割り当てを解除し、必要に応じてタグを追加または削除します。
2. この貢献の属性
関連するオプションを確認し、組織で働いている場合は組織を追加します。 これを追加すると、問題が修正されたときにクレジットがあなたと一緒に組織に与えられます.
3. コメント セクションの下に、パッチで行われた変更の説明を追加します。
4. パッチ ファイル、interdiff ファイルを選択し、files の下にアップロードします。
ここでは、ファイルを 1 つずつ追加し、ファイルを選択した後にアップロードを実行しました。 アップロードをクリックすると、ファイルがアップロードされ、下のリストに追加されます。
注: 新しいパッチを追加する場合、Interdiff は必要ありません。
5. ファイルをアップロードしたら、保存ボタンをクリックします。 これにより問題ページが更新され、新しいコメント番号でアップロードされたパッチが表示されます。
コアの問題に対するパッチは、同じ手順を使用して送信する必要があります。
パッチのレビュー
これで、問題を探し、パッチを作成してアップロードする方法がわかりました。 次は何ですか? 適切なパッチができるだけ早くコミットされるようにするにはどうすればよいでしょうか? パッチをレビューすることは、問題を前進させる上で同様に重要なステップです。 コード行を書くのが苦手だと感じたら、既存のパッチを見直してみませんか?
始める前に、 Dreditor拡張機能をブラウザーに追加することを強くお勧めします。
ドエディター拡張機能
パッチ/interdiff ファイルの「レビュー」ボタンが表示されます。 クリックすると、読みやすい形式で変更が表示されます。
Dreditor の「レビュー」ボタン
Dreditor を使用しないパッチ ファイルの変更
これで、レビューする問題を見つける準備が整いました。
- ステータスが「レビューが必要」の問題をフィルタリングします。
- リストからお好きなものをお選びください。
- コメントを読み、問題にアップロードされた最新のパッチを選択してください。
- パッチがテスト ケースに合格し、緑色になっていることを確認します。
テストに合格したパッチ
- パッチ ファイルをダウンロードし、次のコマンドを実行して、ローカルの core/module/theme/profile にパッチを適用します。
git apply <patch-file-downloaded> -v
- 期待どおりに機能しているかどうか、または何らかの作業が必要かどうかをテストします。
- 問題のステータスを変更し、ポイントを裏付ける画像/ビデオを含むコメントを追加します。 コメントには、パッチが最新バージョンに適用されたかどうか、問題を再現するために実行された手順、パッチ適用前後の問題の動作などの詳細が含まれている必要があります。
- 問題がなければ、ステータスを「RTBC」に変更します。
- 追加の作業や変更の余地がある場合は、ステータスを「作業が必要」に更新します。
その他の貢献方法
コードの貢献以外にも、Drupal プロジェクトには、その品質やリーチの改善など、貢献できる多くの領域があります。 興味に基づいて、このコミュニティへの貢献方法を選択できます。 貢献分野の一部::
- メンタリング - 貢献した経験がある場合は、オンラインまたは対面でメンターになることで、他の人が始めるのを助けることができます。
- ドキュメンテーションへ - Drupal プロジェクトのすべてのドキュメンテーションは、あなたと同じように世界中の人々から自由に寄稿されています。
- 知識の共有 - Drupal プロジェクトに貢献する重要な方法は、ブログ投稿を書いたり、地元の Drupal グループ ミートアップ、DrupalCamp、または DrupalCon でプレゼンテーションを行ったり、トレーナーになるなどして、Drupal に関する知識を共有することです。
- イベント計画 - ミートアップ、スプリントなどの仮想または対面の Drupal イベントを企画またはボランティアすることによって。
- マーケティング担当 - 世界中の他のマーケティング チームと協力して、Drupal サービスを販売するすべての人が共有および使用できる Drupal ブランドのマーケティングおよび販売資料を作成できます。
- モジュール/テーマに貢献する - モジュール、ディストリビューション、テーマを含む Drupal プロジェクトでのコラボレーションは、Drupal コミュニティに貢献するための不可欠な方法です。
接続を維持して最新情報を入手してください!
• たるみ
- Drupal コミュニティには、単に「Drupal」と呼ばれる主要な Slack ワークスペースがあります - - http://drupal.slack.com/
- #support、#bugsmash、#contribute、#drupal10rediness など、さまざまなトピックのさまざまなチャネルが見つかります。
• ブログ
- Drupal コミュニティのメンバーは、Drupal に関するブログ記事を書いています。
- あなたもそのうちの1人になることができます!
• ソーシャル メディア - Twitter、LinkedIn など
- Drupal 関連のプロファイルをフォローすると、Drupal の周りで起こっている進行中のすべての変更やイベントを最新の状態に保つことができます。
Drupal 行動規範
Drupal はオープン ソースであり、私たちのコミュニティが成長しているため、私たちがここに来たものを保存することが不可欠です。 ここでは、行為に関するいくつかのポイントを示します。
- 協力的であること
Drupal にはより大きなコミュニティがあるため、コラボレーションが鍵となります。 チームとして働くことで、drupal プラットフォームに最高のものをもたらすことができます。
- 敬意を払う
誰もが Drupal に貴重な貢献をしているため、コミュニティとそのメンバーはお互いに敬意を持って接しています。
- わからないときは助けを求める
Drupal で完璧な人はいませんし、Drupal コミュニティのすべてを知っている人は誰もいません。 質問することで多くの問題が解決する可能性があるため、質問することをお勧めします。
- 嫌がらせの被害者または目撃者である場合、または Slack の管理についてサポートが必要な場合は、同僚/Slack 管理者に連絡してください。
https://www.drupal.org/dcocは、行動規範の詳細を確認できるドキュメントへのリンクです。
最終的な考え
Drupal に命を吹き込む組織として、私たちは常に、できる限りの方法でプロジェクトに還元することを約束しています。 次のプロジェクトのために信頼できる Drupal 代理店を探している場合は、当社の専門家が喜んでお手伝いします。 今日私たちに話してください!