第1回 千里の道も1パッチから――コミッタライフ入門
遠藤侑介(Ruby 1.9系統リリースマネージャ補佐)
2010/9/27
■日々、コミッタとしてやっていること
筆者の活動を簡単に紹介すると、筆者がコミッタとして日々やっていることは、
- 最新版のRubyを使って生活する
- バグを見つけたら報告したり、修正したりする
- ほかの人の提案やバグ報告を見て、興味があれば議論に参加。気が向けばパッチを書き、良さそうならコミットする
- 最新版でテストを走らせ、テストが失敗するようになったら騒いで知らせる
という程度です。 「1.9.2リリースマネージャ補佐」になってからは、Yuguiさんを急かしたり、リリースへの道を外れないように叱咤激励したりするのが役目でしたが、ほかにリリースマネージャの仕事の肩代わりもしていました。
- リリースのマイルストーンに従って、細々したアナウンスを行う(「機能提案受け付け終了」や「previewテストの募集」など)
- バグ報告や機能提案(チケット)をさばく
- 報告者の誤認であれば却下する
- バグと認められる、またはあいまいな場合には担当者に割り当てる
- 担当者が反応しなければ催促する
- バグ報告が来たライブラリの担当者が日本語を話せない場合、バグ報告を英訳する
- 明らかなバグで、直せるものは直す
これらの活動は、基本的にはメーリングリスト(ML)やバグトラッカ上でコミュニケーションします。IRCにいる人と話す場合にはまずIRCで話し、議論の要約と結論だけをMLやバグトラッカに記録することもあります。また、不定期開催の開発者会議にも参加義務はないので、筆者はほとんど参加したことがありません。
■自分が楽しくて、皆にも喜んでもらえる。これ以上の趣味はない
筆者がコミッタになったのは前述のとおり、「Rubyの開発活動が面白そうだったから」、つまり余暇を刺激的に過ごせそうだったからです。筆者がRuby開発で直接利益を得たことは一度もありません(Ruby 1.9.2 Awardの副賞としていただいた「ルビーの原石」を除く)。
プログラムをいじる話は尽きませんし、プログラムを理解するにつれ機能拡張できる範囲も広がっていく楽しみがあります。昨日は書けなかったパッチが今日は書けるようになっています。また、コミッタにはさまざまな方面に詳しい人がいっぱいいるので、会話していて飽きることがありません。知識も自然に増えます。
特に、Rubyのような汎用言語処理系の場合は、言語設計・実装だけでなく、数の体系の知識、IOやプロセスなどシステムプログラミングの知識、各種プラットフォームの知識、ネットワーク、マルチスレッド、Web、ユーザーインターフェイス、デバッガ、そのほかの雑学まで、幅広く触れられます。
自分が楽しく過ごせて、皆にも喜んでもらえるのであれば、それ以上の趣味はないと思います。筆者は平日夜と日曜の3割程度をRubyで楽しんでいます。ただ、最近は余暇の確保が困難になっているので、いままでほど積極的に活動するのは難しくなりそうだと感じてもいます。
■コミッタになるための心得
コミッタになるためには、「勝手に行動する」「継続的に行動する」の2点が重要です。
何も行動せず「コミッタになりたい」とだけいって受け入れてくれるプロジェクトは、あまりないと思います。まずは、貢献できることを勝手に行いましょう。自分が好きなプロジェクトなら、何かしら貢献できることが見つかるはずです。その貢献が認められれば、取り込んでもらえるでしょう。認められないときは、何がいけないか説明を受けると思うので、謙虚に耳を傾けましょう。
これは、いわば信用を得るための儀式です。コミッタに義務はありませんが、ライブラリ担当などになると長期間のメンテナンスが必要な仕事もあります。「この人なら長期間やってくれそうだ」という期待を抱かせることが重要です。
ヒントとしては、最初はバグ報告やバグ修正など単発で終わりやすい貢献(そして取り込まざるを得ない貢献)を選ぶといいと思います。最初に単発の貢献を勧めたのはなぜかというと、大幅な機能拡張などは長期間のメンテナンスが必要になりがちなため、そして信用がない状態では取り入れられにくいためです。 「コードのここがダサい。直してやる」という人がいるのでコミッタになってもらったところ、大幅に修正してくれたものの、その直後に去ってしまったため、修正された個所がメンテナンスできなくなってしまった、という話をしばしば聞きます。Rubyでも、担当者がいなくなってしまったためにほかのコミッタが泣きながらメンテナンスしているライブラリが多数あります。
でも、だからといって、いきなり担当者に立候補してもダメです。そういうライブラリのバグを見つけたり、バグを修正したり、実際に行動することがまずは重要です。
前述したように、Rubyはとても貢献する余地が大きいOSSです。貢献は、バグ修正パッチなどコードを書くだけでなく、
- ドキュメントの整理・修正
- バグ報告の対応・整理・担当者への振り分け
- リリース管理
- コミュニケーション補助(英語と日本語のMLの要約の翻訳など)
- 広報(Webサイト管理など)
などなど、いますぐ始められる貢献が多数あります。あなたもどんどん貢献して、コミッタになりませんか?
筆者プロフィール | |
|
@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。
現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。
これからも、@IT自分戦略研究所をよろしくお願いいたします。