先日 Rails 5.1.0.beta1 がリリースされたので、Rails アプリケーションとしては master から rails_5_1_0 ブランチを切って裏で準備をはじめていることと思う (ブランチ名は Rails 本家に合わせてハイフン区切りだったり、その他いろいろあると思う) 。
話の前提知識として、2017年3月6日現在の Rails 5 系の GitHub 上の管理を書いてみるとこうなる。なお、ここでの話に関係のない beta と rc は割愛する。
- master … Rails 5.1.0 (開発版) の Edge
- 5.1.0.beta1 タグ … Rails 5.1.0.beta1 で RubyGems にリリースされている
- 5.0.2タグ … Rails 5.0.2 で RubyGems にリリースされている Rails 5.0.z (安定版) の現時点の最新版
- 5.0.1タグ … Rails 5.0.1 で RubyGems にリリースされている
- 5.0.0.1タグ … Rails 5.0.0.1 で RubyGems にリリースされている
- 5.0.0タグ … Rails 5.0.0 で RubyGems にリリースされている
- 5-0-stable ブランチ … Rails 5.0.z (安定版) のメンテナンスブランチ
Rails 5.1.0 へのリリースを追うにあたり、Gemfile に 5.1.0.beta1
を指定するというのがひとつの考え方ではあるが、beta はある時点のスナップショットということで master はそこから更に進んでいることになる。つまり beta で起きていたバグが修正されていたり、beta からのリファクタリングが master に入っていたりする。
そういった理由から Gemfile には 5.1.0.beta1
よりも GitHub から直接 master を持ってくる Edge Rails を使うようにした方が良いと思っている。
Gemfile の diff で例をあらわすとこういった意味になる。
- gem 'rails', '= 5.1.0.beta1' + gem 'rails', git: 'https://github.com/rails/rails'
周辺の Gem に関しても、Rails 5.1.0 向けのバージョンが master で開発されているものは同様の理由から GitHub 指定となる。
Rails 5.1.0 の正式リリース、あるいは 5-1-stable
メンテナンスブランチが切られたらそちらを使うように切り替える。これまでの傾向から Rails 5.1.0 が安定版となるリリースはまだ先の話になると思うので、気が向いたらアプリケーションの master でちょくちょく rebase すると良い。