Ruby 2.1.0 以降のセマンティックバージョニングについて

Posted by zzak on 21 Dec 2013
Translated by makimoto

Ruby 2.1.0 以降、Semantic Versioning (日本語訳) に寄せたバージョニングに移行することを決定しました。

Ruby に、より明確で適切なバージョニングスキーマを提供するため、われわれは以下のポリシーに段階的に移行します。

ポリシーの変更

このポリシーは、 ruby-lang.org の管理者である柴田博志 (@hsbt) の提案にもとづくものです。

バージョンスキーマ

  • MAJOR: MINOR リリースで対応できない互換性のない変更がある場合に増加する。
    • 特別なイベントのために予約される。
  • MINOR: クリスマスごとに増加する。 API レベルでの非互換がありえる。
  • TEENY: API 互換性を維持するセキュリティフィックスやバグフィックス。
    • 2.1.11 のように10以上の値になりえる。2、3ヶ月おきにリリースされる。
  • PATCH: 直前の MINOR リリースからのコミット数。 (MINOR がリリースされるごとに 0 に戻る)

ブランチスキーマ

われわれは以下のブランチを管理することにします。

  • trunk
  • ruby_{MAJOR}_{MINOR}

ruby_{MAJOR}_{MINOR} ブランチは TEENY リリースにわたって管理されます。 それぞれのリリースにはタグを用います。

API 互換性

以下のことが行われた際は非互換であるとして、 MINOR バージョンを増加させるものとします。

  • C レベルの API 機能の削除
  • 下位互換性のない変更および追加

ABI 互換性

ABI は {MAJOR}.{MINOR}.0 のスキーマに従うものとします。

われわれは同一の MINOR レベルのリリースにおける ABI 互換性の維持に最大限注力します。 したがって TEENY は0に固定されます。

参考文献

この提案についてのより詳しい情報は以下のリンクを参照してください。

ありがとう!

この議論に参加してくれたすべての方々に感謝します。 われわれの一つ一つの歩みは Ruby をより安定した効果的なものにしていくでしょう。

最近のニュース

サイトのアイデンティティの再設計

サイトの包括的なデザインのアップデートを発表できることを嬉しく思います。今回の更新ではTaeko Akatsukaさんにデザインを担当していただきました。

Posted by Hiroshi SHIBATA on 22 Dec 2025

Ruby 4.0.0 preview2 リリース

Ruby 4.0.0-preview2 が公開されました。Ruby 4.0では、Unicodeバージョンの17.0.0へのアップデートなど様々な改善が行われています。

Posted by naruse on 17 Nov 2025

もっと読む...