ルニラボ

lni_T の長文置き場

業務中に見つけたgemのバグにパッチを送ってハッピーになった話

はじめに

このたび初めてOSSにコミットしたのでその顛末を記録する。

内容

業務中のできごと

なぞの挙動発見

久々のRailsアプリフルスクラッチ業務中に日付関連の処理を実装しようとしてこのgemをbundle installしたある日のこと

github.com

「validates通すと例外吐いて落ちる文字列がある」とのメンバーから報せが。

よくよく聞くとタイムゾーン指定された不正な時刻をパースさせようとすると死ぬのだとか。

"2019-01-30T25:12:14+09:00"

ただちに困りはしないが、将来良くないことが起きるかもしれないしこまったね。

対応検討

業務で利用するライブラリにバグがあった場合の対応方法としてはだいたい以下のどれかになると思われるが・・・

  1. 品質が低いと思われるライブラリは使用せず代替を探す
  2. 自社内でモンキーパッチを当てる
  3. 直してmasterに取り込んでもらう

今回は豪快に3を採用した。

おうちで対応

特に業務中にOSS活動できる環境でもないし、やり方もわからないし、しばらく放置してもスケジュール上問題なさそうだったので勝手におうちで直すことにした。完全に公私混同なのであまりおすすめできない。

報告

まずIssueをあげる。英語がまじむりつらい。

github.com

実装

対象のgemが依存してるgemが悪かったので、そっちのリポジトリをForkして修正する。

github.com

ちゃんとテストも書いたのでえらい。

プルリク

そしてプルリクエストを送信。英語がつらい。

github.com

その後

無事マージされた結果...

  • OSSにコミットした
  • 自社製品へのバグ混入を未然に防げた
  • 社内魔改造ライブラリの誕生を未然に防げた
  • PRの出し方わかった

を達成!良いことづくめ! みんな業務中になんかバグ踏んだらプルリクをだそう!

次は業務時間中にPR送るところまで行けたらいいね。

おわりに

しかしまぁ業務中にPR送ろうにも業務する会社がもう無い訳でしてー

ルニ先生の次回作にご期待下さい。