先日作成した pinzolo/spwd: Secret file based password management tool をアップデートしたついでにふと pinzolo/rails-flog: Rails log formatter for Parameters and SQL を覗いてみた。すると、なんか issue が 3 とかなってる。

んで compatibility for Rails5.1 · Issue #17 · pinzolo/rails-flog という issue が登録されている。あれ??そんなメールは Github から来た覚えないぞ??どうしてだ?

内容は Rails5.1 で動かないよって話。 alias_method_chain が削除されるって話は知っていたので prepend に書き直さなきゃなと思って忘れていた。

というわけで作業ログ

  1. まずは確実に動くRails.4.2環境に固定してテストが通ることを確認。#17 Fiv version for passing test · pinzolo/rails-flog@47f6197
  2. alias_method_chain やめて prepend にする。#17 Use prepend insted of alias_method_chain. alias_method_chain is d… · pinzolo/rails-flog@c70a5f3
  3. いろいろ警告が出ていたので対応。#17 Remove warning · pinzolo/rails-flog@85f5e02
  4. テストが通ったので master にマージするためバージョン指定を元に戻す。#17 Restore dependency version · pinzolo/rails-flog@bad5a46
  5. Rails5.0にバージョン指定。#17 Set rails version to 5.0.x · pinzolo/rails-flog@cff5d61
  6. Rails 5.0 に対応(1 commit にしてしまったので変更点を列挙)#17 Rails 5.0 compatible · pinzolo/rails-flog@973f3af
  7. render nothing: true は削除されるよって警告が出てきたので head に変更。
  8. テスト時に使用する get メソッドのパラメータ指定形式が変わるよっていうので対応したら、4.2で通らなくなったので苦肉の策で対応。
  9. Rails 5.0 になったらパラメータの順序が入れ替わったので、順序を気にしなくていいようにログの文字列から Hash を作って中身比較。
  10. テストが通ったので master にマージするためバージョン指定を元に戻す。#17 Restore rails version dependency · pinzolo/rails-flog@1f87c2b
  11. バージョン変更はコミットする必要ないことに気づく
  12. SQLがキャッシュの場合、以前は event.payload[:name]CACHE という文字列が入っていたが、Rails 5.1 では event.payload[:cached] で判断すればよいみたい#17 cached query is judged by payload[:cached] instead of payload[:na… · pinzolo/rails-flog@c3123a3
  13. Tavis CI の設定変更。prepend の使用できない Ruby 1.9.3 はサヨウナラして新しい Ruby と Rails のバージョンに対応する。#17 Add new versions for CI · pinzolo/rails-flog@5cca348
  14. Ruby2.0以上だけのサポートになったのでマジックコメントはいらないRemove magic comment. #17 · pinzolo/rails-flog@2254330
  15. 珍しく一発で全パターンのCIが通ったのでバージョンを上げる#17 Up to v1.4.0 · pinzolo/rails-flog@a6a2919
  16. bundle exec rake release

お疲れ様でした。