1 版本控制
Rails 遵循 semver 的一个偏移版本。
补丁 Z
仅修复 bug,无 API 更改,无新功能。安全修复除外。
次要版本 Y
新增功能,可能包含 API 更改(作为 Semver 的主要版本)。重大更改将与先前次要或主要版本中的弃用通知配对。
主要版本 X
新增功能,可能会包含 API 更改。Rails 的次要和主要版本之间的区别在于重大更改的程度,通常保留用于特殊场合。
2 新功能
新功能仅添加到主分支,不会在补丁版本中提供。
3 错误修复
次要版本在其系列中的第一个版本发布后的一年内将收到错误修复。例如,如果假设的 1.1.0 版本于 2023 年 1 月 1 日发布,则它将收到错误修复,直到 2024 年 1 月 1 日。之后,它将被视为不受支持。
错误修复通常会添加到主分支,如果需要,还会回溯到最新版本系列的 x-y-stable 分支。当 x-y-stable 分支中添加了足够的错误修复后,将从中构建新的补丁版本。例如,假设的 1.2.2 补丁版本将从 1-2-stable 分支构建。
对于不受支持的系列,错误修复可能会偶然地落入稳定分支,但不会在官方版本中发布。建议您使用 Git 将应用程序指向不受支持版本的稳定分支。
4 安全问题
次要版本在其系列中的第一个版本发布后的两年内将收到安全修复。例如,如果假设的 1.1.0 版本于 2023 年 1 月 1 日发布,则它将收到安全修复,直到 2025 年 1 月 1 日。之后,它将达到生命周期结束。
这些版本是通过获取最后一个发布的版本、应用安全补丁和发布来创建的。然后将这些补丁应用到 x-y-stable 分支的末尾。例如,假设的 1.2.2.1 安全版本将从 1.2.2 构建,然后添加到 1-2-stable 的末尾。这意味着,如果您运行的是最新版本的 Rails,则安全版本很容易升级。
安全版本中仅包含直接的安全补丁。安全补丁导致的与安全无关的错误修复可能会发布在版本的 x-y-stable 分支上,并且仅按照错误修复策略作为新的 gem 发布。
安全版本从最后一个安全版本分支/标签中切出。否则,安全版本中可能存在重大更改。安全版本应仅包含确保应用程序安全的必要更改,以便应用程序更容易保持升级状态。
5 生命周期结束的版本系列
当版本系列达到生命周期结束时,您将自行负责处理错误和安全问题。我们可能会提供修复程序的回溯并将其合并,但是不会发布任何新版本。我们建议您使用 Git 将应用程序指向稳定分支。如果您不熟悉维护自己的版本,则应升级到受支持的版本。
6 发布计划
我们的目标是每六个月发布一个包含新功能的版本。在极少数情况下,如果一年内没有发布版本,我们将延长先前版本的支持期限,直到发布下一个版本。
7 npm 包
由于 npm 的限制,我们无法使用第 4 位数字来表示 Rails 提供的 npm 包 的安全版本。这意味着,npm 包的版本将是 7.0.104
,而不是等效的 gem 版本 7.0.1.4
。
版本将计算为 X.Y.Z0A
,其中 A
是安全版本。