3

Rails において、バージョニングの4桁目は何を表しますか? 現在の最新版は 6.0.3.1 です。

通常の semantic バージョニングであれば、 major, minor, patch の3桁があれば大体の用途をカバーできると思っており、 (major == breaking change, minor == 互換性のある機能追加, patch == バグ修正)であるならば、4桁目が必要になる必然性がよくわからないからです。

バージョニングは、どのような変更差分があったかをおおまかに表すために桁ごとに区切られていると思っており、 (でなければ、例えば timestamp をバージョンに使えばよい)とすると、この4桁目はどのような場合に作成されるのかが、気になるなと思ったので質問しています。

cubick
  • 20,987
  • 5
  • 25
  • 64
Yuki Inoue
  • 16,805
  • 19
  • 80
  • 196
  • 3
    railsに付いての話ではないのでコメントで失礼しますが、オープンソースで多数のコミットやプルリクエストがあるプロジェクトの場合、majorminorの間にdevelopmentstableかを偶数・奇数で表す習慣のあるものもあります。例えば偶数がstableの場合、こちらのminor, patchは安定性向上のためのコミットしか受け付けませんが、並行して新規機能のレビュー・テストのために奇数をdevelopとして新規機能の追加・検証はこちらで行い、安定したらstableを2増やしたバージョンをリリースというケースもあるので、3桁で充分という認識はスコープが少し狭いかもしれません。 – Чайка Aug 04 '20 at 15:06

1 Answers1

2

以下のページでは "Semantic Versioning" に準じたバージョン付けと説明されていますが、
"シフトしたもの"となっています。

Ruby on Rails のメンテナンスポリシー - Railsガイド

(引用にあたっては一部のみ抜粋、見やすさのため行の前後を入れ替えています)

Railsのバージョン命名は semver の Semantic Versioning をシフトしたものに従っています。

  • メジャー X
    新機能を追加します。多くの場合API変更も含まれます。

  • マイナー Y
    新機能を追加します。ここにAPIの変更を含めることもできます (Semverでいうメジャーバージョンに相当)。

  • パッチ Z
    このパッチではバグ修正のみを行います。API変更や機能追加はこのパッチでは行いません。
    ただしセキュリティ修正については、必要であればこれらの変更を行なうこともあります。

また、Railsの GitHub リポジトリでのリリース履歴 を見ると、4桁目は (CVE番号での) セキュリティパッチが当てられた時に上がっているように見えます。

cubick
  • 20,987
  • 5
  • 25
  • 64