はじめに
最近Xamarin.iOSのバグを発見してPull Requestを提出しました。その手順を書き留めておきます。
ビルドする
Build & Runを読んでmake world
まで実行します。
いくつか気をつけるポイントがありました。
Xamarin.iOSのリポジトリにはsubmoduleがあるので、それも含めてcloneします。
git clone --recursive git@github.com:xamarin/xamarin-macios.git
Xcodeは指定されたバージョンが必要です。2018/5/18時点で最新は9.3.1ですが、9.3.0が要求されました。次のコマンドで依存関係を確認できます。
./system-dependencies.sh --provision-visual-studio
古いXcodeは/Applications/Xcode93.app
のようにファイル名末尾にバージョンを追加してインストールします。
テストを実行する
make world
が終わったらテストを実行してみます。テストはtests
フォルダに入ってます。
README.mdにテストのビルド、実行方法が書いてあります。
私が実行したかったテストはmonotouch-test
フォルダ内にありました。それをiPhoneシミュレータで実行するコマンドは次のとおりです。
$ make
$ make run-ios-sim-monotouch-test
全てのテストを実行する(run-all
)とディスクをかなり消費します。狙ったテストだけを狙った環境で実行するのが良いでしょう。
一度実行するとシミュレータが閉じてしまいます。もう一度確認するには、Xcodeからシミュレータを立ち上げてインストールされたテストアプリを実行します。
修正する
Monoのコーディングガイドラインに従って修正します。
特に気をつけるポイントは(と[の前にスペースを入れることです。Visual Studioでコピペするとこのスペースが削除されてしまいます。見た目にも気づきづらいのでコピペ元がOKだからと安心せずに確認する必要があります。
修正するときには必ずテストを書くようにしましょう。
Pull Requestを投げる
コミットを整理し、masterにrebaseしてからPull Requestを投げましょう。
Pull Requestを投げるとContribution License Agreementにサインしろと言われるので確認しましょう。
最後に
XamarinはOSSです。バグを発見したら、自前で回避するのもいいですが、本家に修正を投げてみてはいかがでしょうか。
かなりレスポンスがいいので意外と早く終わるかもしれませんよ。私の場合、Pull Requestを投げてから5分でレビュー指摘が返ってきました。