我很好奇紅寶石和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社區已經使用了術語「Ruby 2.0」超過10年來用特定的,經常談論的標記特定的「神話」版本像範圍內的猴子修補和特徵。這些功能釋放版本而沒有這些功能,但仍稱爲「2.0」應該是更多混淆比打破語義版本的規則。 (實際上,紅寶石2.0 爲無性狀和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。
我同意Rails,但Ruby並沒有遵循semver。在1.8.6之後,1.8.7引入了許多新功能; 1.9.0和1.9.1基本上是beta版本; 1.9.2向後與1.9.0和1.9.1不兼容; 2.0大多向後兼容1.9.2,但不是1.9.1和1.9.0等。與semver相反,當修正錯誤而不是遞增第三位時,會發布新的修補程序級別版本(例如,1.9.2- P392)。 – molf
我認爲Ruby和Rails跟隨或多或少semantic versioning,大致意思是如果版本X.Y.Z,你改變z。如果你剛剛修復的bug。如果你添加了一些東西(因此所有程序都依賴於它,可以說我至少需要X.Y版本),並且如果引入向後不兼容性,則更改X. X,Y和Z通常被稱爲Major,Minor和revision。
- 1. 紅寶石寶石版本錯誤
- 2. 紅寶石版本1.9.3p392與寶石 'monbon'
- 3. 紅寶石寶石賽璐珞版本
- 4. 什麼是'等'紅寶石的寶石?
- 5. 紅寶石,版本,寶石,版本和更多,哦我的
- 6. 紅寶石散列在紅寶石
- 7. 上紅寶石
- 8. 紅寶石命名問題
- 9. 紅寶石版本錯誤
- 10. 紅寶石版本幫助
- 11. 紅寶石版本顯示
- 12. 控制紅寶石版本
- 13. 紅寶石版本混亂
- 14. 紅寶石寶石與Acroynym在名稱
- 15. 紅寶石在軌道上的寶石
- 16. 紅寶石「基」類
- 17. 是什麼在紅寶石
- 18. 什麼是在紅寶石
- 19. 什麼是「?」在紅寶石
- 20. Twitter的紅寶石寶石
- 21. 紅寶石(在導軌上)基本形式標記的寶石
- 22. 紅寶石寶石命令行工具
- 23. 紅寶石寶石文檔
- 24. 寶石安裝紅寶石
- 25. 調試寶石紅寶石
- 26. 紅寶石程序寶石
- 27. 錯誤紅寶石寶石
- 28. 卸載紅寶石寶石
- 29. 紅寶石寶石 - LoadError
- 30. 紅寶石寶石LoadError
至於Ruby,版本控制策略在一段時間內改變了幾次。授予討論[這裏](https://bugs.ruby-lang.org/issues/7252)。 – sawa