Apache CloudStackプロジェクトにパッチを投稿してコミットしてもらうには? プロジェクトの開発プロセスを見ていこう。
連載第9回から、Apache CloudStackの開発プロジェクトの情報や実際の開発環境の準備について紹介してきました。今回は、連載第10回で紹介した環境を前提にEclipse環境での開発方法や、パッチの作り方などについて解説します。
最初に、Apache CloudStackは2013年3月22日、インキュベーション段階からApache Software Foundationのトッププロジェクトに昇格しました。このため、本連載の第10回までで紹介してきたApache CloudStackの開発インフラに少し変更がありました。下記に最新の情報を載せましたのでご確認ください。
メーリングリストの説明 | メーリングリスト |
---|---|
アナウンス用のメーリングリスト | announce@cloudstack.apache.org |
ユーザー用のメーリングリスト | users@cloudstack.apache.org |
開発者用のメーリングリスト | dev@cloudstack.apache.org |
自動コミット用のメーリングリスト | commits@cloudstack.apache.org |
問題報告用のメーリングリスト | issues@cloudstack.apache.org |
http://cloudstack.markmail.org/search/?q=
users@cloudstack.jp
項目 | URL |
---|---|
Gitリポジトリ | https://git-wip-us.apache.org/repos/asf/cloudstack.git |
まず、Eclipse側で事前に設定を行っておきます。先ほどgitコマンドで入手したソースコードを配置した場所を指定して、ブランチに切り替えます。
「File」 - 「Import」- 「Maven」- 「Existing Maven Projects」を選択し、「Next」を押します。
「Root Directory」に、先ほどダウンロードしたCloudStackのソースコードディレクトリを指定します。
すると、プロジェクト(ソースコード一式とステイタス情報など)がスキャンされますので、スキャンが完了したら、「Next」ボタン‐「Finish」ボタンを押すと、プロジェクトのインポートは完了です。これで、ソースコードの修正やプラグイン開発を行う環境が整いました。まずは、Apache CloudStack開発プロジェクトが規定しているコーディング規則がありますので、下記を参照しておきましょう。
ビルドは、以前はAntを使用していましたが、最近はMavenを使用するようになりました。ここではMavenを使用したビルド方法を紹介します。第10回で入手した最新のCloudStackのソースコードをビルドし、devcloud環境かテスト環境で検証しましょう。
2013年3月22日にApache CloudStackはインキュベーション段階から卒業し、Apache Software Foundationのトッププロジェクトに昇格しました。そのためApache CloudStackの開発インフラに変更点がいろいろあります。変更点について後程まとめて紹介しますが、第10回で入手した最新のCloudStackのコードですが、現在は下記のように入手します。
git clone https://git-wip-us.apache.org/repos/asf/cloudstack.git
$ cd cloudstack/ $ mvn clean install
修正したソースコード(パッチ)をコントリビューションする場合、下記のコマンドでパッチファイルを作成します。
git status git add <変更したファイル> git commit -m "Insert a meaningful summary of changes here." git format-patch master --stdout > <作業フォルダのパス>/patch-name.patch
RBToolsを利用する場合は下記を参照ください。
パッチファイルを作成した場合は、Review Boardと呼ばれる、コードレビュー用のWebサイトに、パッチファイルを登録し、レビュー依頼を行います。Review Boardのアカウント作成も簡単ですので作成しておくといいでしょう。コミッタが内容をレビューしてコミットできると判断した場合は実際のリポジトリにコミットされます。
Copyright © ITmedia, Inc. All Rights Reserved.