パッチを送る際に気をつけるべきこと

Mona OS プロジェクトでは多数の方のご協力を頂いており、よくパッチを提供していただくことがあります。


パッチとは、プログラムのソースの差分ファイルのことで、現在のソースファイルのバグを修正したり、新機能を追加する目的で第三者から提供されるのが一般的です。
オープンソースの世界ではパッチはよく使われており、Linuxの開発では1日にたくさんのパッチが送られてくるそうです。


私はMona OSではパッチを受け取って取り込む側で、パッチを作ることはほとんどなかったのですが、今回とあるPerlのライブラリ用にパッチを作る機会がありました。(まだ検証中なので送ってはいませんが・・・)


受け取り側の経験から、パッチ送付の際には以下の点に留意すると良いと思います。

  • コーディングスタイルをあわせる(TAB, インデント、命名規則等)
  • どのような意図のパッチであるかの明快な説明をつける
  • どのソースツリーのどのバージョンに対するパッチかを明確にする
    • CVS最新版へのパッチなのか、メジャーリリースへのパッチなのか?
  • 可能ならば、サンプルコード・テストコードをつける
    • パッチ適用後にどう動きが変わるか?が分かると取り込む側は検証・取り込みプロセスの手間が少なくなります
  • パッチが採用されないかもしれない・無視されるかもしれない・返事が遅いかもしれない
    • 過剰な期待は良くないかも


基本的にはパッチを送ってもらえるというのは大変ありがたくうれしいことなのですが、パッチを送る際には上記の点を頭の片隅に入れておくと採用される確率が高くなるかもしれません。



追記:パッチの具体的な作成方法は
http://www.kde.gr.jp/patch/patch.php
を参照すると良いでしょう。



というわけで、はてな社員としても個人としても、パッチやコード提供でPerl界隈やその他オープンソースプロジェクトで、いろいろ貢献できればと思っています。