LoginSignup
13
1

More than 5 years have passed since last update.

Firebase OSSにPRしたけど「もう少し確認したら良かった」と思いながら自らCloseした経験談

Last updated at Posted at 2018-09-17

前置き

技術的な原因よりもOSS PRの経験に焦点を当てた記事です。誤解を防ぐため最初に結末をお伝えすると自らCloseしています。「ビルドエラー」などOSSのソースコードに不備があるかような表現は「途中まで思っていた」と解釈してください。故にタイトルに「もう少し確認したら良かった」とつけています:bow:
個人でiOS/Androidのネイティブアプリを作ろうとしてFCMのサンプルコードを触っていたところ私の環境ではビルドエラーになりました。原因判明したのでPRしました。

PRしたOSS

iOSのFCMでプッシュ通知を受信するためのサンプルコードです。
https://github.com/firebase/quickstart-ios/tree/master/messaging

PRの内容

GoogleのCLAに同意して「importするモジュールが不足している」旨をPRしました。Githubをご覧頂ければCloseした経緯はネタバレ同然:sweat_smile::sweat_smile:なのですが、記事として最後まで書きます。修正個所は1行のみです。

messaging/MessagingExampleSwift/AppDelegate.swift
  import Firebase
+ import FirebaseMessaging

この1行が無いとそれに該当するモジュールのクラスが認識されずビルドエラーになっていたのです。なお、現在Githubをみるとfromのリポジトリがunknown repositoryになっていますが筆者が削除したためだと思います。

PRした直後

ここは余談になります。CLAの同意確認やTravis CIのビルドが動いていました。
git1.png
git2.png

レビュー

レビュアーさんからコメントを頂きました。Google機械翻訳です。

その上にあるFirebaseのimport文に自動的にインクルードされるはずですが、これが失敗したのは初めてではありません。このビルドの問題は、実際にプロジェクトをビルドしようとすると消え去るのですか、それともビルドに失敗するのでしょうか?

もう一度筆者の修正を見ながらレビュー結果と照らし合わせると、要するにimport Firebaseがあれば問題無いはずの想定のようですね。

messaging/MessagingExampleSwift/AppDelegate.swift
  import Firebase
+ import FirebaseMessaging

調査する

Firebaseのimport文に自動的にインクルードされるはず

指摘頂くと「なぜ自動的にインクルードされないのか?」を調査したくなりました。結果としてはCocoaPodsのキャッシュ周りをクリアしてビルドしたらimport FirebaseMessagingを削除しても問題無く動作しました。なんだか申し訳ない気持ちになりました:pray:

rm -rf ~/Library/Caches/CocoaPods/
rm -rf Pods
pod install

結果を伝える

調査した結果を伝え問題が解決したことと、レビュアーさんに筆者のこのコメントを確認して頂いたらCloseする旨も伝えました。

Closeする

このインポートを追加する価値があるかもしれません。

とコメントを頂きましたが、CocoaPodsのキャッシュをクリアしたら動いたわけですし、筆者はシンプルな方を好むのでCloseさせて頂くことにしました。

終わりに

「PRしてマージしてもらった!」とか「PRしたのでマージされることを気長に待ちましょう!」という情報は多かったのですが「自らCloseした」情報はあまり見かけなかったので書いてみました。(実際の事例はあるのでしょうが情報として発信していないのかもしれません。)
タイトル名に繋がってきますが「もう少し確認したら良かった」とは思いますね。今回の例で言えばレビューして頂き初めて「自動的にインクルードされる」と分かりOSSで想定されている動作を調査することができたので勉強になりました。熟練した方々はすぐに「自動的にインクルードされる」と分かるのかもしれませんね。OSS PRの意欲が萎えたりしていませんので引き続きやっていこうと思います。初マージされたら記事を書かせて頂くかもしれません。

13
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
1