Railsのバージョン命名はsemverのSemantic Versioningをシフトしたものに従っています。
パッチZ
このパッチではバグ修正のみを行います。API変更や機能追加はこのパッチでは行いません。ただしセキュリティ修正については、必要であればこれらの変更を行なうこともあります。
マイナーY
新機能を追加します。ここにAPIの変更を含めることもできます (Semverでいうメジャーバージョンに相当)。重大な変更を行う場合は、必ず事前にマイナーリリースまたはメジャーリリースで非推奨通知を行います。
メジャーX
新機能を追加します。多くの場合API変更も含まれます。Railsにおけるマイナーリリースとメジャーリリースの違いは変更の重大性の度合いであり、通常は特別な場合に備えて予約されます。
1 新機能
新機能はmasterブランチにのみ追加されます。ポイントリリース (=メジャーでないリリース) で新機能を追加することはありません。
2 バグ修正
バグ修正は最新リリースのシリーズでのみ利用できます。バグ修正が十分に行われ、新しいgemをリリースする価値があると認められた場合は、そこからブランチを作成します。
特別な場合として、Core Teamメンバーの誰かがサポート対象となるシリーズを増やすことに賛成した場合は、それらはサポート対象のシリーズに追加されます。
現在対象となっているシリーズ: 4.2.Z
、4.1.Z
(サポート担当: Rafael França)。
3 セキュリティ問題
現在のリリースシリーズ (訳注: 複数のリリースに対する総称)、および次のリリースシリーズには、セキュリティ問題発生時にパッチと新バージョンが適用されます。
これらのリリースは、直前にリリースされたバージョンにセキュリティパッチを適用してリリースされます。続いて、それらのパッチはx-y-stable (安定版) ブランチの最後に適用されます。たとえば、仮に1.2.3というセキュリティリリースがあるとすると、このリリースは1.2.2を元にビルドされ、1-2-stableの最後に追加されます。つまり、最新のRailsを使用していればセキュリティリリースのアップグレードが容易に行えるということです。
現在対象となっているシリーズ: 4.2.Z
、4.1.Z
。
4 重大なセキュリティ問題
重大なセキュリティ問題については、上と同様に新バージョンを提供し、かつ最新のメジャーリリースシリーズに対してセキュリティパッチと新バージョンを提供します。セキュリティ問題がどれほど重大であるかの判断はコアチームによって行われます。
現在対象となっているシリーズ: 4.2.Z
、4.1.Z
、3.2.Z
。
5 サポート対象外となるリリースシリーズ
あるリリースシリーズがサポート対象外になった場合、バグ修正とセキュリティ問題の対応は各自の責任となります。場合によっては修正のバックポートの提供とgitへの公開が行われることもありますが、以後新バージョンがリリースされることはありません。アプリケーションで使用しているバージョンを維持しきれない場合は、サポート対象となっているバージョンにアップグレードしてください。