不同版本号的 Rails 版本有多不兼容?这些数字的含义是什么?
例如,从版本 2.8.7 到 3.0.1,我们可能会遇到严重的不兼容问题。
但是,版本 2.7.1 和 2.7.2 或 3.0.6 和 3.0.7 会有多不兼容?
不同版本号的 Rails 版本有多不兼容?这些数字的含义是什么?
例如,从版本 2.8.7 到 3.0.1,我们可能会遇到严重的不兼容问题。
但是,版本 2.7.1 和 2.7.2 或 3.0.6 和 3.0.7 会有多不兼容?
一般来说,数字变化越大,核心变化越大。所以,2.8.7 到 3.0.1 将是一个重大变化,因为我们从 Rails 2 到 Rails 3(实际上是一个非常大的变化)。
另一方面,2.7.1 到 2.7.2 将是一些小修复。
正如 DHH 自己所说,只要有好的想法出现,Rails 总是愿意 100% 改变其核心。因此,您可以想象,从 2 到 3 或从 3 到 4 很可能会敲响巨大变化的钟声。
库以 3 种方式变化(嗯,不止 3 种,但请保持专注!)。
- 更改可能只是一个实现细节,对客户端软件没有影响。
- 该更改可能会添加新功能,但这样做的方式是使写入早期版本的客户端软件仍然兼容。
- 更改可能会以旧软件不再兼容的方式更改库的公共接口。
RationalVersioningPolicy 提供以下准则:
版本应由三个非负整数表示,用句点分隔(例如 3.1.4)。
第一个整数是'''major'''版本号,第二个整数是'''minor'''版本号,第三个整数是'''build'''版本号。
1 类更改(实施细节)将增加内部版本号。
第 2 类更改(向后兼容)将增加次要版本号并重置内部版本号。
第 3 类更改(不兼容)将增加主要内部版本号并重置次要版本号和内部版本号。gem 的任何“公共”版本都应该有不同的版本。通常这意味着增加内部版本号。这意味着开发人员可以整天为自己生成构建,但是一旦他/她公开发布,就必须更新版本。
就是这样。这不是太难。
另外。对此答案感兴趣的人也可能对悲观版本约束感兴趣