ruby と ror のバージョンが何に基づいて命名されているのか興味があります。たとえば、Ruby 1.9.3 以降では、そのバージョンは 1.10 または 1.9.4 ではなく 2.0 であり、レールではそうです。なんらかの慣習や規則があるはずです。
2 に答える
Ruby と Rails は、他の多くのプロジェクトと同様に、セマンティック バージョニングに従っています。
ただし、彼らは常に文字どおりにそれに従うとは限りません。たとえば、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 年以上にわたって使用されており、特定の、しばしば話題になる機能を備えた特定の「神話」バージョンをマークしています。範囲指定されたモンキー パッチと特性。これらの機能を持たないバージョンをリリースしても「2.0」と呼ぶのは、セマンティック バージョニングのルールを破るよりも混乱を招きます。(実際、Ruby 2.0はトレイトなしでリリースされ、混乱を招いています!)
OTOH、それを「1.10」と呼ぶことは不可能でした。これは、RUBY_VERSION
定数がバージョンを として返し、String
多くのツールが (誤って) 次のようなことを行うためです。
if RUBY_VERSION <= '1.8'
def foo
end
end
String
'1.10'
は実際にはよりも小さいため、これは壊れますString
'1.8'
。
したがって、1.9に落ち着くことが決定されました。