Ruby 2.5.0 までの道のり

こんにちは、id:eitoball です。年末・年始は、特別なことをすることなく、自宅で家族とまったりと過ごしていました。正月らしいことは、歩いて5分ぐらいの近所の神社へ初詣に行ったことでした。

昨年2017年12月25日に Ruby 2.5.0 が リリース されました。コミッタの皆様ありがとうございます。Misocaは、翌日26日に2.5.0を使うように更新をしました。今回は、2.5.0 への更新について何かを書こうとしていたのですが、特に苦労することなく更新することができてしまったので、Misoca で Ruby のバージョンの変遷を調べてみました。

f:id:eitoball:20180112100730p:plain

Ruby 1.9.3の時代(2013年から2014年頃)

サービス開始当初、2013年頃は、Ruby 1.9.3-p194 を使っていたようです。1.9.3-p194 は、2012年04月20日に リリース されていました。Misoca の開発が始まった頃の最新のバージョンで、しばらく、このバージョンを使い続けていたようです。

次は、2014年01月頃に Ruby 1.9.3-p484 へ更新しました。2013年12月25日には、バージョン 2.1.0 が リリース されていました。しかしながら、とりあえず、1.9.3 系の最新バージョンへ更新を選択しました。

Ruby 2.x へ(2014年から2016年まで)

Misoca が、Ruby 2.x を使うようになったのは、2014年04月24日に Ruby 2.1.1 へ更新したときでした。2.1.1 の リリース は、2014年02月24日で、この頃に 2.0 系や1.9.3 系もリリースされていましたが、最新の Ruby を使うことになりました。

2014年12月05日には、2.1.5 を使用するようになりました。2015年03月10日に 2.2.0 を使うようになりました。この頃には、2.2.1 が リリース されてたので、2.2.1 を使おうとテストをしていたら、 GC 周りに問題があることがわかり、2.2.0 を使うようにするか、 2.2.2 がリリースするまで待つか迷いましたが、2.2.0 を使うことにしました。

Ruby 2.2.3 を使うようになったのは、2015年08月20日でした。これ以降、以下のように最新のRubyを使うように追従していきました。

  • 2015年12月17日 2.2.4
  • 2015年12月26日 2.3.0
  • 2016年05月06日 2.3.1
  • 2016年11月21日 2.3.2
  • 2016年11月28日 2.3.3

Ruby 2.4 (2017年)

前述のように Ruby 2.2 後半から 2.3 を使うように順調に更新していましたが、2.4.0 を使うようになったのは、2017年03月03日でした。遅くなった理由は、Misoca 社では、前年から rrrspec を使用してテストを実行するようになりましたRuby 2.4.0 を使うように変更してから、ローカルで rspec を使って成功する spec が、時々、失敗するようになり結果が不安定でした。この原因の調査などに手間取ったためでした。

以降は、以下のように新しい Ruby を使うように更新していきました。

  • 2017年03月27日 2.4.1
  • 2017年10月03日 2.4.2
  • 2017年12月15日 2.4.3

Ruby 2.5(2018年)

最初に書いたように昨年末の2017年12年26日にリリースされた翌日に 2.5.0 を使うように更新しました。2.5.0 への更新のために2017年10月頃から、その頃リリースされた2.5.0-preview1 を使ってテストをして準備をしていました。

現在のところ、安定して稼働しており、この記事 で説明されているような改善による効果も確認されているようです。

さいごに

今回、初めて、Misoca が使用する Ruby の更新を振り返ってみました。振り返るにあたり、git のコミットログや GitHub のプルリクエストから、Misoca 社の変化を垣間見ることができ、楽しい経験でした。

Misoca 社では、Ruby の更新などにも興味があるエンジニアを募集しています。