Railsアプリケーションのバージョニング

定期的にリリースを行なう Web アプリケーションのリリースタグ名として release_yyyyMMdd という名前を長らく使っていた。

Rails アプリケーションのリリースタグ名として vyyyyMMdd という名前に最近を変更した。例えば 2017年8月4日リリースであれば v20170804 といったタグ名となる。

理由

GitHub でリリースを作成する際に、以下のとおり v で始まるタグ名を推奨されている。

Tagging suggestions

It’s common practice to prefix your version names with the letter v. Some good tag names might be v1.0 or v2.3.4.

この文言は https://github.com/#{user}/#{repo}/releases/new のサイドバーで確認できる。

他に考えられたが止めたタグ名

  • SemVer として v2.0.1 みたいにすることも考えられるが、ライブラリと異なり常に非互換/非互換の取捨選択がない特定環境下での問題特化であるアプリケーションなので SemVer は座りが悪かった。
  • Rabbit のように、常に 0.0.1 繰り上げるという方法も v2.9.0 みたいなバージョン表記名に意味を作るのが難しかったため止めた。
  • v の後ろに機能名を付けるタグ名は、あるイテレーションのリリースで複数の目玉機能がある場合に破綻するため、定期的なサイクルのリリースタグ名としてはかなり昔に止めている。

最終的に参考にしたリポジトリ

Rails アプリケーションとは毛並みは違うが、ruby-build のリリースタグ名を参考に vyyyyMMdd とした。リリースにまつわる会話では、いつのリリースで入った/入る機能かなどが焦点となるため日付を使うことは都合が良い。


この話とは別にそのバージョンに対する ChangeLog 相当のものは用意されるが、それはまた別の機会に書くかもしれない。