くりにっき

フルスタックキュアエンジニアです

index_shotgun v1.0.0とactiverecord-simple_index_name v1.0.0をリリースした

pixela v1.0.0 に引き続き今年2つ目と3つ目のメジャーバージョンアップ。

経緯

両方のgemともここ数年特に機能追加とかはしてないのですが、RubyRailsの新しいバージョンが出る度に無邪気にTravis CIのマトリクステストの軸を増やしていったら気づいたらビルド時間が膨大になって色々とつらくなったので、新年ということでバッサリ古いバージョンを切ることにしました。

あとはbundler v2がRuby 2.3以降必須になったのも大きいかな。

両方ともRuby 2.2系以下とRails 4.2系以下のサポートを切っただけで、プロダクトコードの変更は特にないです。(rubocopで細かい整形をしたくらい)

ビルド時間の推移

index_shotgun

https://github.com/sue445/index_shotgun/blob/master/CHANGELOG.md#v100-20190106

1ビルド辺りのジョブ数 ビルド時間(直列) ビルド時間(5並列)
Before 75 2時間 30分
After 45 1時間弱 20分弱

activerecord-simple_index_name

https://github.com/sue445/activerecord-simple_index_name/blob/master/CHANGELOG.md#v100

1ビルド辺りのジョブ数 ビルド時間(直列) ビルド時間(5並列)
Before 41 1時間 20分
After 17 37分 10分

備考

  • 上で5並列と書いているのはリポジトリ単位ではなくorganization(namespace)単位での上限なので、一度index_shotgunやactiverecord-simple_index_nameのビルドが始まると僕がメンテしてる他のリポジトリのビルドが実行待ちになります。(つらい)
  • 40個くらいあるgemの .travis.yml を全部修正するとビルドが全部終わるのにだいたい一晩かかります。(つらい)

ビルド時間短縮以外のメリット

  • Ruby 2.3以降前提にしたことでSafe navigation operator(&.)、Hash#dig<<~ 形式のヒアドキュメントなどが解禁
    • Hash#compact を使いたい場面がちょいちょいあるので個人的にはRuby 2.3系も早くサポート切りたい思い
  • 古いRubyRailsを考慮した分岐が不要になった