本日はオープンソース・プロジェクト「 Drupal 」(ドルーパル)に「開発」という側面からコントリビュートする方法についての記事を翻訳してご紹介したいと思います。 原文はこちら。
私たちがふだん「 Drupal 開発をする 」と言うときはそのほとんどが「 Drupal を使って開発をする 」( development with Drupal )という意味合いになりますが、実は「 Drupal 開発」ということばにはもうひとつの意味――「 Drupal のために開発する 」( development for Drupal )というものがあります。 Drupal 開発者ならやはり Drupal を利用するだけでなく Drupal に開発面で貢献するところを目指していきたいところではありますが、そうはいっても、 Drupal は巨大プロジェクトで関連ドキュメントはすべて英語・・・ということで日本人技術者にはなかなかハードルが高いのも事実です。
私自身まだまだコントリビュートを試みはじめたところではありますが、同じ思いを持つ Drupal 開発者の方のためにコントリビュートに関する総括的ドキュメントを翻訳しておきたいと思います。
では以下が翻訳文となります。 2013 年 10 月 20 日更新のものを元にしています。 これまでと同様に日本語としてのわかりやすさを優先して直訳と意訳を織り交ぜた形になっています。 原文の正確なニュアンスを知りたい方は原文の方もご参照いただければと思います。
開発へのコントリビュート
ようこそ! コードのコントリビュートは Drual プロジェクトと Drupal の能力を高めるために重要かつ効果的な方法です。 私たちのグローバルな開発者コミュニティに参加してもらえてうれしく思います。
コードのコントリビュート方法: Drupal コア / コントリビュートプロジェクト / パッチ
Drupal コードのエコシステムは Drupal のコアと「コントリビュート」プロジェクトを含んでいます。 Drupal のコアとは Drupal プロジェクトページ から Drupal をダウンロードしたときに取得できるファイルです。 「コントリビュート」プロジェクトにはすべてのコントリビュートコード(モジュール・テーマ・インストールプロファイルなど)が含まれます。 この区別については「 コア vs. コントリビュートプロジェクト 」のページでもっと詳しく読むことができます。 パッチを送ることによってあなたは Drupal コアとコントリビュートプロジェクトの両方を改善することができます。
Drupal コアをサポートする方法についてもっと詳しくは Drupal コアコントリビューション のページでご確認いただけます。
パッチを使って既存のプロジェクトやコアを改善する
Drupal コア やコントリビュートモジュールやコントリビュートテーマなどの既存のプロジェクトに対して改善(バグフィックス・追加機能など)を加えたいのであれば、このセクションを読むとよいでしょう。
既存のプロジェクトへのコントリビュートは パッチ の形を取ります。 パッチを使うことにより、プロジェクトに対して加えた変更点をメンテナやプロジェクトのイシューキューにいる他のユーザに共有することができます。 より深く学ぶにはこちらをお読みください:
- パッチとは
- パッチの作成 (概要)
- 発展的パッチコントリビュータガイド (詳細な Git インストラクション付)
- パッチの適用 (概要)
- Git を使ったパッチの適用 (発展的ガイド)
drupal.org のプロジェクトページにはすべて「バージョンコントロール」タブがあり、 Git を使ってそのプロジェクトに対するパッチを作成する方法に関する情報が掲載されています。
新しいプロジェクトへのコントリビュート
新しいモジュールやテーマを開発したら、プロジェクトを作成して Drupal.org に自分のプロジェクトをコントリビュートすることもできます。
あなたが作れるプロジェクトには 2 つのタイプがあります:
- フルプロジェクト: Views や Zen のようなダウンロード可能なスタンダードなモジュールやテーマです。フルプロジェクトについて詳しくはこちらをご覧ください。
- サンドボックスプロジェクト: こちらは試験的なコードや審査のプロセスをまだ経ていない新しいコントリビュータのコードのためのものです。サンドボックスについて詳しくはこちらをご覧ください。
新しいコードをコントリビュートするためには、 Drupal.org での Git アクセスを取得 する必要があります。 こちらはサンドボックスプロジェクトをフルプロジェクトに移行し、ワンタイム審査プロセスを通過するために必要となります。
drupal.org のプロジェクトページにはすべて「バージョンコントロール」タブがあり、プロジェクトを Git で作成/管理する方法が掲載されています。
コンペティションよりもコラボレーション(競争よりも協力)
Drupal コミュニティは強い「コンペティションよりもコラボレーション」の精神があります。 この価値観は複数のサブスタンダードなプロジェクトを作ってユーザの選択を困難にするよりも、ひとつのすばらしいプロジェクトを改善していこうという方向に力を集約します。 明確には禁止されていませんが、プロジェクトの重複は何らかの十分な理由(たとえばアーキテクチャ上のアプローチが根本的に異なるといったもの)がないかぎり一般的に推奨されていません。 あなたの探索の旅を始める前に、まず最初に既存のモジュール、既存のテーマを検索することを忘れないでください。 もしくは、捨てられたプロジェクトを引き継ぐことも考慮してみてください。 そうすると、自分の時間を節約することになり他の人を助けることでコミュニティのカルマを積むことができるでしょう。
コミュニティとのコミュニケーション
- イシュー: Druapl 開発に関するコミュニケーションの多くは各プロジェクトのイシューキュー上で行われています( Drupal そのものもプロジェクトですし、コントリビュートテーマ、モジュールなどもそれぞれプロジェクトです)。
- IRC: Drupal 開発コミュニティの人たちの多くは irc.feenode.net の IRC の #drupal-contribute チャンネルで見つけることができるでしょう。 Drupal IRC チャンネルは他にもあります。
- メール: デベロッパーメーリングリスト は Drupal 関連の開発についての質問のやりとりや、 Drupal コアへのモジュールの提案や新しい方向性のための議論への参加のために使うことができます。
- グループ: groups.drupal.org では、地域別、テーマ別の議論に参加することができます。
- コミュニティとのトーク セクションにはコミュニケーションのための他のオプションの情報が載っています。
関連リソース
- コア開発のサポート ページには Drupal のコアの開発にコントリビュートする方法についてのアイデアを知ることができます。
- Git ハンドブックは Drupal コーディングの総括的な情報を扱っています。 パッチ、 Git 、モジュールの作成 やその他の開発テーマがカバーされています。他のセクションにはこのようなものがあります:
- スタンダード、セキュリティ、ベストプラクティス セクションには、コーディングスタンダード、ドキュメンテーションスタンダード、ベストプラクティスについてのリファレンス情報が含まれています。
- ユーザーインタフェースガイドライン セクションには、ユーザインタフェーステキストやヘルプテキストも含む、よいユーザーインタフェースの作り方についてのリファレンス情報が含まれています。
- API リファレンス サイトには、 Drupal コアのすべての関数やファイルや Drupal のフック API 、より広範な開発者トピックのためのドキュメントがあります。
- テーマ作成ガイド は Drupal のテーマを開発するための包括的なガイドです。
- コミットログメッセージ はバージョンコントロールリポジトリでどんな活動が行われてきたのかを公開しています。
・・・以上です。
募集しています
スタジオ・ウミは「Drupal」に特化したサービスを提供する Drupal のエキスパートチーム。
フルリモート&フレックス制だから、働く場所を選ばず時間の使い方も自由です。
そんなワークライフバランスの整った環境で、当ブログに書かれているような
様々な技術を共に学びながら、Drupalサイト開発に携わってみたい方を募集しています。
まずはお話だけでも大歓迎!ぜひお気軽にご連絡ください。