Xamarin
Xamarin.iOS

Xamarin.iOSにPull Requestを投げるまで

More than 1 year has passed since last update.


はじめに

最近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分でレビュー指摘が返ってきました。