From: "Yugui (Yuki Sonoda)" Date: 2009-01-28T00:21:26+09:00 Subject: [ruby-core:21607] Re: Ruby 1.9 versioning scheme and packaging Hi, On 1/27/09 5:09 PM, Lucas Nussbaum wrote: > I've heard the following about Ruby 1.9, please correct me if wrong: > (snip) > Is that true? It's mostly true. The path to $rubylibdir, into which the standard libraries are installed, contains API version in the form of three digits. > Or release 1.9.1.3, but change the API, and put the files in > /usr/lib/ruby/1.9.2. > And the same problem exists with the soname of the shared library. This is false. I will never merge any change which breaks API compatibility. So $rubylibdir is always 1.9.1 for Ruby 1.9.1.x. API version will be named after the last version in which API compatibility would break. If 1.9.2 and 1.9.3 would be compatible with 1.9.1, 1.9.4 would not and 1.9.5 would be compatible with 1.9.4 then $rubylibdir would be /usr/lib/ruby/1.9.4 in Ruby 1.9.4 and in 1.9.5. The reason why we decided this versioning scheme is, a version 1.9.a in future will BREAK the compatibility because the API set now we have is not enough to implement Ruby 2.0 features like MVM or text collating. When compatibility broken, $rubylibdir must be changed to allow different versions of Ruby coexist. On the other hand, we don't hope transition in each teeny level release. So we decided to update $rubylibdir when and only when API compatibility is broken. > Provided that the above assumption is true, we are inclined to package > ruby 1.9.1 in a "ruby1.9.1" package, which would allow several ruby1.9 > version to coexist (for example, ruby1.9.1 and ruby1.9.2). > However, since that will require a transition each time a new ruby > version is released (when going from ruby1.9.a to ruby1.9.(a+1)), it > would be great for us if this didn't happen too frequently (that is, if > most of the development was done via point releases, ie ruby1.9.a.b, > ruby.1.9.a.c, ...). Don't worry. API compatibility breaks are rarer than teeny level releases. I just want to allow 1.9.x and 1.9.(x+1) coexist. This is the purpose of the versioning scheme. > Do you already have a rough idea of when ruby 1.9.2 will be released? I think 1.9.2 will be released on Dec 2009 or on Jun 2010. Ruby core team will have a discussion about this topic on Feb 2. -- Yugui http://yugui.jp