渋谷.rb[:20170517] で JRuby 9.1.9.0 のリグレッションを見つけた話

渋谷.rb だった。会場はいつものピクスタさん。

onk や秒速さんはじめのショートトークを聞きながら、宿題としていた Travis CI のエラーを見る時間に今回は充てていた。

結果としてリグレッションと判断された Issue は以下となる。

github.com

この Issue に辿り着くまでの話について、時間は朝に遡る。

  • 今日は朝起きたら、ruby-build に JRuby 9.1.9.0 の PR が出ているのを見たのがはじまり
  • RVM の方には出ていなかったので、Travis CI での確認の都合でそちらへの PR を出した
  • 半日くらい経った頃に RVM への PR がマージされたので、Travis CI のマトリックスJRuby を含んでいる自前のリポジトリで試す
  • Travis CI の動作としても良さそうだったので、RailsOracle enhanced adapter に PR を出す
  • 両方ビルドに失敗していて、それぞれの原因が異なっていた。Rails の方はタイミング問題というのはすぐ分かった
  • Oracle enhanced adapter の方は snapshot の頃から問題になっていたものと yahonda さんにアドバイスをもらう。simplecov の方にも PR を出してもらえていたので色々と問題の特定や課題へのリンクなどが捗った←このあたりから渋谷.rbでの活動
  • 落ちている点について Travis CI でのバックトレースを読む
  • simplecov のまわりで落ちているようなので、その周辺の simplecov-html を合わせて手元で ag 検索する
  • 見て行った結果、simplecov-html にある ERB テンプレートで落ちているようにみえた
  • 怪しいと思ったあたりのミニマムケースを書いてみて、JRuby 9.1.9.0 / JRuby 9.1.8.0 / Ruby 2.4.1 / Ruby 2.5.0dev の環境で動かしてみる
  • 期待どおりの差異が出たので、JRuby 9.1.9.0 のバグの可能性として Issue を書く
  • JRuby 側への Issue が説明になるので、そのリンクを付けて simplecov-html に修正パッチを書く
  • simplecov-html へのパッチの動作確認のため、simplecov の方の Gemfile に gem "simplecov-html", :path => "~/src/github.com/colszowka/simplecov-html" のパス指定をして失敗していたテストがとおることを確認する
  • simplecov-html に PR を出す
  • Oracle enhanced adapter の PR の方に状況を書く

ここまでのひと区切りで本日の渋谷.rb終了となり懇親会に向かってた。

Ginza.rb 第47回

Ginza.rb 第47回 話題の分散型SNS Mastodonのソースを読もう!に行った。会場はいつものみんなのウェディングさん。

ginzarb.doorkeeper.jp

前半は Mastodonソースコードのうち Gemfile を見て、後半はアプリケーションデザインを俯瞰的に見るような感じだった。

github.com

Gemfile について定番の Gem から、そんな Gem があるのかという Gem まで見れたりした。参加者の反応からも知名度というか利用のされ具合なんかも分かったりしたのは良かった。

俯瞰的に読むターンでは、Service 層や Form オブジェクトや lib, app/lib についての話題が出たりして、参加者と Mastodon の設計との音楽性の一致や不一致など聞くことができてモブプロっぽい面白さがあった。

今回は Mastodon が対象だったけれど、Gemfile を読む会みたいなのは面白いと思うので、いろいろな会社さんが社内の知見共有など兼ねてやれるといいんじゃないかなと思った。

activerecord-oracle_enhanced-adapter-monky_patch_755 (0.3.0) をリリースした

activerecord-oracle_enhanced-adapter-monky_patch_755 (0.3.0) をリリースした。

https://rubygems.org/gems/activerecord-oracle_enhanced-adapter-monky_patch_755/versions/0.3.0

実は、もともとの課題となっていた Issue へのワークアラウンドに加えて、Rails 4 から Rails 5 でのアップグレードで必要な OracleDATE 型から TIMESTAMP 型へのスキーママイグレーションをしていない場合の動きを維持するというものも入っている。

github.com

上記の移行ドキュメントにあるとおり、あくまでスキーママイグレーションを行なうのが正攻法のため、現在の Rails 5.1, Oracle enhanced adapter 1.8 が最後のサポートになる予定。

1回休み

東京喰種 1-14巻を読み返したりしていた。

Oracle enhanced adapter 1.8.1 リリース

バグフィックスがメインのリリース。yahonda さん対応とリリースありがとうございます。

コード diff からも分かるように、connection_adapters/oracle_enhanced/schema_dumper.rb への修正が主な変更です。

詳しくはこちらの Issue を参照してください。

github.com