CakePHP1.2と thechaw(チョー) について発表してきた

第39回PHP勉強会@関東 - events.php.gr.jp
発表資料ダウンロード

今年一回目のPHP勉強会。今回はCakePHPで作られたプロジェクト管理サービス、thechaw(チョー)について話してきました。
ruby関係では有名なgithubというサービスのPHP版といった形です。

おそらくオープンソースソフトウェアの開発ではtracなどを利用したチケット駆動型の開発が現在では比較的多いかと思います。その場合に抱えている問題点として

開発者側が感じる問題

  • チケットの情報の精度が低い(再現情報がない)
  • パッチを付けてもらいたいが、なかなか難しい
  • コミッタを増やして活動を活性化したいが、適切なメンバー選びが難しい
  • 既存のコミッタの活動が安定敵に続くかわからない

利用者側が感じる問題点

  • チケットで自分の状況を説明するコードを抜き出しにくい
  • 直接コミットしてコードを修正したいが、なかなかコミッタになれない
  • 自分自身のサイトなどで修正版を公開すると公式を追っていくのが大変

こういった問題を解決する試みがthechaw.comやgithubのサービスということになります。

thechaw上でのコード修正の流れ

thechaw
thechaw posted by (C)haniwa

thechaw上で公開されているプロジェクトに第三者のユーザが修正を行う流れを説明します。


1.メインプロジェクトをフォークする
サイト上でアカウントを作成すればだれでもフォークを作ることができます。ちなみにコードをチェックアウトするだけであればフォークは必要ありません。


2.フォークしたプロジェクトをクローンする
フォークしたプロジェクトはブラウザから確認できる状態になります。ページ上に表示されているクローン用のコマンドを実行する事でローカル上にプロジェクトをチェックアウトします。gitの場合はこの操作をクローンと呼びます。


3.ローカルにクローンされたリポジトリにコミットする
ローカル上でさまざまな修正を行います。またこの際にはローカル上でコミットやブランチの作成、差分管理などのあらゆる機能を利用する事ができます。このあたりはgitが分散リポジトリであるからなのですが、オフラインでも自由に差分管理などが行えるということですね。


4.自分のフォークに対してプッシュする
ひとしきり修正を行い、自分のコードを公開したくなった場合はサーバ上のフォークに対してプッシュします。
これによりコードが公開可能な状態になります。


5.メインプロジェクトのオーナーがフォークからプルする
サーバ上の自分のコードを取り込んでもらえるようにチケットなどで依頼を行います。この際にコンフリクトなどがあると取り込めないので、自分自身のフォークにメインプロジェクトの最新をプルしてマージを行っておくと良いでしょう。


実際のところまだインターフェースなどもまだ不十分ですし、git自体もクライアントの操作方法を覚える必要があるので敷居が高いですね。ちなみに僕はwindows上ではcygwinインストーラーからgitを導入して利用しています。