Homebrewにプルリクを投げる
最近Ruby-GNOME2の開発をOSXでもできたら便利だなぁという事でちまちまとOSXでテストが動くかどうかを見てました。
Homebrewで依存パッケージを入れる
$ brew install gtk2
$ brew install poppler
$ brew install clutter
なんかをすれば大体のものは入ります。
が!
しかしですよ、HomebrewのFormulaを見ると
def install
args = %W[
...
--disable-introspection
]
のように、gobject-introspectionを無効にしているオプションが与えられているじゃ有りませんか!
これはよくないという事でプルリクをいくつかしてみました。
いくつかやってみて、こんな感じでプルリクすると良いかも!
という軽めのまとめです。
プルリクするときの注意点
- HomebrewのJenkinsのテストが通る状態にすること
- プルリクは細かく
- bottleのブロックは消さない
- 文字列は"(二重引用符)で囲う
- パッチを当てる際にはupstream(開発元)に報告した上で当てる
くらいでしょうか。
まず、HomebrewのJenkinsのテストが通る状態にすること
。これは大前提です。HomebrewではCIをJenkinsで行っていて、これに成功するものを重点的に見ているようです。(通ってなくても見てはくれますが、優先度は低くなります)
プルリクは細かく
。これは複数Formulaのプルリクはできるだけ控える、という事に限ります。3つのFormulaの変更を同時にプルリクに含めたら分割してほしいと言われました。。。
bottleのブロックは消さない
。これはJenkinsのCIを通す事を優先で消してしまいがちですが、ダメです。Homebrewのbottleの更新はbotがコミットしていて、bottleブロックを消すとそのbotが検知出来ないので消さないで下さい。(これは消すなと怒られました…すいませんでした)
文字列は二重引用符で囲う事が今のHomebrewのFormulaのスタイルガイドでは推奨されているようです。(これはプルリクを行う際に読むと良いですよ、というサジェストが出てきます)
パッチを当てる際にはupstream(開発元)に報告した上で当てる
。敷居が一番高いのはおそらくこれです。patch :DATA
としてパッチを当てる仕組みがhomebrewには有りますが、これをするにはupstreamへの報告が必須です。報告してないと'Has this been submitted upstream?'とか 'Has this issue been reported upstream?' とか聞かれます。おとなしく報告しましょう…