業務中に見つけたgemのバグにパッチを送ってハッピーになった話
はじめに
このたび初めてOSSにコミットしたのでその顛末を記録する。
内容
業務中のできごと
なぞの挙動発見
久々のRailsアプリフルスクラッチ業務中に日付関連の処理を実装しようとしてこのgemをbundle installしたある日のこと
「validates通すと例外吐いて落ちる文字列がある」とのメンバーから報せが。
よくよく聞くとタイムゾーン指定された不正な時刻をパースさせようとすると死ぬのだとか。
"2019-01-30T25:12:14+09:00"
ただちに困りはしないが、将来良くないことが起きるかもしれないしこまったね。
対応検討
業務で利用するライブラリにバグがあった場合の対応方法としてはだいたい以下のどれかになると思われるが・・・
- 品質が低いと思われるライブラリは使用せず代替を探す
- 自社内でモンキーパッチを当てる
- 直してmasterに取り込んでもらう
今回は豪快に3を採用した。
おうちで対応
特に業務中にOSS活動できる環境でもないし、やり方もわからないし、しばらく放置してもスケジュール上問題なさそうだったので勝手におうちで直すことにした。完全に公私混同なのであまりおすすめできない。
報告
まずIssueをあげる。英語がまじむりつらい。
実装
対象のgemが依存してるgemが悪かったので、そっちのリポジトリをForkして修正する。
ちゃんとテストも書いたのでえらい。
プルリク
そしてプルリクエストを送信。英語がつらい。
その後
無事マージされた結果...
を達成!良いことづくめ! みんな業務中になんかバグ踏んだらプルリクをだそう!
次は業務時間中にPR送るところまで行けたらいいね。
おわりに
しかしまぁ業務中にPR送ろうにも業務する会社がもう無い訳でしてー
退職したので今日からNEEEEEEEEEEEEEEEET
— ルニ@元イカのプログラマ (@lni_T) 2019年2月16日
ルニ先生の次回作にご期待下さい。