オープンソースは「いくさ」だ!!(その3)

いったんプロダクトをリリースすると、その後のサポート体制がとても重要なのはクローズドソースもオープンソースも同じこと。私たちもGoogle Groupなどを設置して、ユーザーからのバグリポートや新たな機能要求に迅速に対応するようにしています。その際オープンソースだと非常にありがたいのは、ユーザーがただバグの報告や機能要求をしてくれるだけでなく、実際にバグを直したものを「パッチ(オリジナルコードと自分が改変したコードの差分を抽出したファイル)」といった形で送ってきてくれることでしょう。こういった場合はバグを直す手間が省け、非常に助かります。

こういった部分もRuby On Rails開発者たちに間では独自なやり方がはやっていて、最近ではGitHubというバージョン管理サイトを経由してやりとりすることが増えています。

オープンソースプロジェクトは無料でGitHub上でソースを公開、管理することができ、GitHubのメンバーは無料でそのソースをダウンロードできるだけでなく、Forkという機能を使って、オリジナルコードのコピーをGitHub上に作成した上で、自由に自分用にカスタマイズすることができます。

GitHubは「開発者にとってのFacebook」を標榜するだけあって、こういった各メンバー間のソースコードの改変の模様もグラフで見ることができます。
私たちのPandaプロジェクトでもすでに十数人の人がForkをし、自分たちの欲しい機能を拡張しているようです。

こういった枝分かれしていったバージョンはオリジナルを「トランク」(幹)と呼ぶのに対応して「ブランチ」(枝)と呼びます。ソースコードのオリジナル作成者はこれらのブランチの中から、使えそうなものを自分のバージョンに取り入れるとこが可能となっています。またブランチの作成者も十分トランクでも使用可能と感じたら「私のブランチをトランクにマージ(統合)してください」というリクエストを送る機能もGitHub には備わっています。

Pandaを他の開発者がどこのバージョンからフォークしたかもGitHubなら一目瞭然

その他にもうれしい驚きとしては「開発を手伝いたい」とメールしてきてくれる人たちも出てき始めたことです。別に彼らもボランティアで手伝ってくれるわけではなく、彼ら自身のプロジェクトにビデオ共有機能が必要なため、自分たちで一から作るよりも、Pandaを拡張した方が良いからなのでしょう。先週その人と興味ある機能や、専門としている技術などをSkypeでビデオカンファレンスしながら話し合いました。

こういった人たちが出てくると、うれしいとともに、自分たちのコードにより責任感が増してきます。