由 zzak 于 2013 年 12 月 21 日发布
我们决定从 Ruby 2.1.0 版本开始,将 Ruby 版本策略更改为更符合 语义化版本控制 的类型。
为了为 Ruby 提供一个更明确和正确利用的版本控制方案,我们决定逐步切换到以下策略。
策略变更
此策略基于 ruby-lang.org 系统管理员 Hiroshi Shibata(@hsbt)的提案。
版本架构
MAJOR
:当出现无法在 MINOR 版本中发布的不兼容更改时增加- 保留用于特殊事件
MINOR
:每年圣诞节增加,可能存在 API 不兼容TEENY
:安全或错误修复,保持 API 兼容性- 可能会增加超过 10(例如
2.1.11
),并将每 2-3 个月发布一次。
- 可能会增加超过 10(例如
PATCH
:自上次MINOR
版本以来的提交次数(在发布MINOR
版本时将重置为 0)
分支架构
我们将继续维护以下分支
- trunk
ruby_{MAJOR}_{MINOR}_{TEENY}
API 兼容性
以下特性可被标记为不兼容的更改,需要增加 MINOR
版本
- 删除 C 级别的 API 特性
- 向后不兼容的更改或添加
ABI 兼容性
ABI 将符合以下方案:{MAJOR}.{MINOR}.0
我们将尽最大努力在同一 MINOR
级别版本中保持 ABI 兼容性,因此 TEENY
将固定为 0。
参考
要了解更多关于此提案的信息,请查看以下链接
谢谢!
我个人想感谢每一位为本次讨论做出贡献的人。我们迈出的每一步都离一个更稳定和高效的 Ruby 更近一步。