Git で今すぐ OpenPNE3 開発に参加してみませんか?
10 / 08 木曜日 2009
開発チームの海老原です。
OpenPNE 開発者メーリングリストの [openpne-dev:554] や [openpne-dev:555] などでご存じの方も多いと多いと思いますが、現在 OpenPNE 3.1.x 系の開発は GitHub と Redmine でおこなわれています。OpenPNE の Redmine は http://redmine.openpne.jp/、 Git レポジトリは http://github.com/openpne/OpenPNE3 です。
移行についての経緯や理由については ML で詳しく述べているのでそちらを参照していただきたいのですが、このエントリでは海老原が一番期待を寄せている、「誰でも気軽に開発に参加できるようになった」ということについてお話ししたいと思います。
どう気軽に参加できるようになったか
今までの OpenPNE 開発では、 SCM として CVS や Subversion が用いられていました。これらの SCM は「集中型」と呼ばれるタイプのもので、「中央の唯一のリポジトリに対してすべての開発者が操作をおこなう」スタイルになっていました。
一方で、今回から OpenPNE3 の開発に採用した Git は「分散型」と呼ばれるタイプのもので、今までの集中型のバージョン管理システムとは考えを異にしています。分散型の SCM のメリットについては各所で言及されているので省略しますが、 OpenPNE 開発において特に魅力的なのは以下のような点でしょうか。
- ・開発者が個々にレポジトリを持っているため、大規模な変更や実験的な変更などを周りに気を遣わずにおこなうことができる
- ・開発に貢献するのに特別な権限を得る必要はなく、リポジトリのコピーに対して変更をおこない、原作者にレポジトリのコピーの場所を教えるだけでよい。仮に取り込まれなかったとしても、本流の変更に追従しつつ手直しし続けることができる
- ・コミットの履歴が個々のリポジトリで閉じるため、公開する前に乱雑なコミットを見直したり、順番を整理したり、無かったことにすることができる
- ・レポジトリを非公開にし、かつ、本流の変更に追従することができる。また、リポジトリの一部のみを公開し、本流に提供することができる
OpenPNE の場合、自分用に手を入れて使用する例も多く見られますが、そのような場合「秘密にしておきたい変更」「本流に戻して多くの人に使ってもらうことで精度を上げたい変更」が混在していると、これらを区別して OpenPNE プロジェクトに公開するのは困難な作業でした。
Git を使うことで、自分用に手を入れたリポジトリに公開用のブランチを切り、公開したい変更の履歴のみを抽出し、提供するということが楽におこなえるようになります。
また、 OpenPNE では Git リポジトリのホスティングサービスである GitHub を利用しています。 GitHub ではワンクリックで自分用の OpenPNE3 の開発リポジトリを作ることができます。「OpenPNE3 の開発に参加できるかわからない」という方も、まずは試しに fork し、自分用の OpenPNE3 で SNS を立ててみてはどうでしょうか。
実際に開発に参加してみる
実際にどうすればいいかについては、川原君が素晴らしいチュートリアルを書いているので、そちらを参照してください。