2

ruby と ror のバージョンが何に基づいて命名されているのか興味があります。たとえば、Ruby 1.9.3 以降では、そのバージョンは 1.10 または 1.9.4 ではなく 2.0 であり、レールではそうです。なんらかの慣習や規則があるはずです。

4

2 に答える 2

5

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に落ち着くことが決定されました。

于 2013-04-18T10:32:20.777 に答える