我很好奇 ruby 和 ror 版本的命名依据是什么。比如ruby 1.9.3之后,它的版本是2.0,而不是1.10或者1.9.4,rails中也是如此。必须有一些惯例或规则。
最佳答案
与许多其他项目一样,Ruby 和 Rails 遵循 Semantic Versioning .
不过,他们并不总是一字不差。例如,Ruby 1.9 与 Ruby 1.8 向后不兼容,而 Ruby 2.0 主要与 Ruby 1.9 兼容,因此实际上 Ruby 1.9 应该是 Ruby 2.0,而 Ruby 2.0 应该是 Ruby 2.1。
在这种特殊情况下,有历史上的“营销”原因:术语“Ruby 2.0”已经在 Ruby 社区中使用了 10 多年,用特定的、经常谈论的来标记特定的“神话”版本——关于 scoped monkey patching 和 traits 等功能。发布一个没有这些功能的版本但仍称其为“2.0”会比违反语义版本控制规则更令人困惑。 (实际上,Ruby 2.0 是在没有 traits 和 it has led to confusion 的情况下发布的!)
OTOH,不可能将其称为“1.10”,因为 RUBY_VERSION
常量将版本作为 String
返回,并且很多工具(错误地)做了一些事情喜欢
if RUBY_VERSION <= '1.8'
def foo
end
end
这会中断,因为 String
'1.10'
实际上小于 String
'1.8'
。
因此,决定落户1.9。
关于ruby-on-rails - ruby 和 ruby on rails 版本的命名依据是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16080423/