1 版本控制
Rails遵循semver的变体版本控制:
修订版本 Z
只有错误修复,没有API更改,没有新功能。 除非出于安全修复的需要。
次要版本 Y
新功能,可能包含API更改(相当于Semver的主要版本)。 破坏性更改会在上一个次要版本或主要版本发布时附带弃用通知。
主要版本 X
新功能,可能包含API更改。Rails的次要版本和主要版本之间的区别在于破坏性更改的程度,通常仅在特殊情况下使用。
2 新功能
新功能仅添加到主分支,并不会在点发布中提供。
3 错误修复
只有最新的发布系列会接收错误修复。错误修复通常会添加到主分支,并在最新发布系列的x-y-stable分支中进行回溯。当在x-y-stable分支中添加了足够多的错误修复时,将从中构建新的修订版本。例如,理论上的1.2.2修订版本将从1-2-stable分支构建。
在特殊情况下,如果核心团队中的某人同意支持更多的系列,则将其包含在支持的系列列表中。
对于不受支持的系列,错误修复可能会巧合地出现在稳定分支中,但不会以官方版本发布。建议使用Git将应用程序指向稳定分支以使用不受支持的版本。
当前包含的系列: 7.1.Z
。
4 安全问题
当前发布系列和上一个最近的系列将在出现安全问题时接收补丁和新版本。
这些发布是通过获取最后发布的版本,应用安全补丁并发布而创建的。然后将这些补丁应用到x-y-stable分支的末尾。例如,理论上的1.2.2.1安全发布将从1.2.2构建,然后添加到1-2-stable的末尾。这意味着如果您正在运行最新版本的Rails,则可以轻松升级到安全发布。
安全发布仅包含直接的安全补丁。由于安全补丁导致的与安全无关的错误修复可能会在发布的x-y-stable分支上发布,并且只会根据错误修复策略发布为新的gem。
安全发布是从最后的安全发布分支/标签中创建的。否则,安全发布中可能会有破坏性更改。安全发布应仅包含确保应用程序安全所需的更改,以便应用程序更容易升级。
当前包含的系列: 7.1.Z
,7.0.Z
,6.1.Z
。
5 严重安全问题
对于严重安全问题,当前主要系列的所有发布版本以及上一个主要系列的最后一个发布版本将接收补丁和新版本。安全问题的分类由核心团队判断。
当前包含的系列: 7.1.Z
,7.0.Z
,6.1.Z
。
6 不受支持的发布系列
当一个发布系列不再受支持时,您需要自行处理错误和安全问题。我们可能会提供修复的回溯并合并它们,但不会发布新版本。我们建议使用Git将应用程序指向稳定分支。如果您不熟悉维护自己的版本,应该升级到受支持的版本。
7 NPM包
由于npm的限制,我们无法在Rails提供的NPM包的安全发布中使用第四位数字。这意味着与等效的gem版本7.0.1.4
不同,NPM包的版本将被标记为7.0.1-4
。
反馈
欢迎您帮助改进本指南的质量。
如果您发现任何拼写错误或事实错误,请贡献您的意见。 要开始,请阅读我们的 文档贡献 部分。
您还可能会发现不完整的内容或过时的内容。 请为主要内容添加任何缺失的文档。请先检查 Edge 指南,以验证问题是否已经修复或尚未修复。 请参阅 Ruby on Rails 指南准则 以了解样式和规范。
如果您发现需要修复但无法自行修复的问题,请 提交问题。
最后但同样重要的是,欢迎您在 官方 Ruby on Rails 论坛 上讨论有关 Ruby on Rails 文档的任何问题。