イマドキのOSS分散開発(Play frameworkの場合)
キーワード:
Java, Git, Issue tracker, Lighthouse, GitHub, Google Group
疑問
イマドキのオープンソフトウェアの分散開発ってどんな感じでやってるんだろう?
(手順, 参加している人たち, コミュニケーションの方法, 使っているツール, etc.)
全体の流れ
- プロジェクトリーダーがマイルストン(バージョンいくつで、どんな機能をリリースするという目標)を立てて、リリースの方向性を決める
- マイルストンに向けてチケット単位で開発する
- ついでにボランティアの要望などもチケットにして取り込んだりする
- マイルストンに到達したらリリースする
- この繰り返し
マイルストンを立てる
もう少し大きな単位で、リリースはこんな感じで進められるようです。
- プロジェクトリーダーがマイルストンを立てる
- バージョン1.0までにこの機能を入れる、のような。
- チケットに落とし込む
- マイルストンに関するチケットが全て消化されたらリリース
チケット単位で開発する
- チケットを登録する
- 議論する
- パッチを書く
- パッチが取り込まれる
チケットを登録する
Issue trackerにチケットを登録する。
普通は誰でも登録できる。
PlayはLighthouseというIssue Trackerを使っています。
(類似品としてはJIRA, Redmine, Tracなどがあります。細かな機能の差はありますが、タスクとその進捗状況の確認を行えるという点は一緒)
http://play.lighthouseapp.com/dashboard
議論する/パッチを書く
Issue trackerでチケットの内容(意見, 要望, 感想)議論する。
議論しながらパッチが書かれたり、議論が終わってから誰かがパッチを書いたりする。
本家ブランチに取り込まれる
良さそうなパッチが本家ブランチに取り込まれていく(プロジェクトリーダー。本家レポジトリの管理権限を持ってる人)
マイルストンに関連するパッチならもちろん取り込まれるし、関係なくてもBugfixやちょっとした便利機能だったらすぐ取り込まれて次のリリースに含まれたりするようです。
その他
明確なバグ報告・要望ではない疑問や相談などはGoogle Groupでやりとりされてるようです。
http://groups.google.com/group/play-framework
Q&A
- GitHubを使ってるプロジェクトが多いですけど、他に同じようなソースコード管理サービスで使われてるものはありますか?
Git界隈だとGitHubの一強です。一応、類似サービスでGitoriousというのもありますが…。
SVN界隈だとGoogle Codeが強い印象。
もっと多機能なサービスで、Issue TrackerとCode repositoryをまとめて提供しているAssemblaというサービスもあります。
これも結構名前は聞きます。
- Issue TrackerとGoogle codeの使い分けは?
明確な要望やバグ報告はIssue Trackerに直接来ます。
そこまで明確でない要望(相談レベル)や、バグに見えるけど本当にそうかな?というレベルの質問はまずGoogle groupでスレッドが経つことが多いです。
その場合、Google groupで十分議論されてから、最終的にIssue Trackerにチケットが登録されたりします。