Should I upgrade Ruby from 1.8.5 to 1.8.7?

Discussion in 'Ruby' started by Cali Wildman, May 4, 2009.

  1. Cali Wildman

    Cali Wildman Guest

    I just upgraded to Rails 2.3.2 but my Ruby is still 1.8.5. Rails 2.3.2
    doc says it work fine with 1.8.5 but it recommends 1.8.7. I remembered
    from a previous attempt that upgrading Ruby to 1.8.6 was too complicated
    for me, so I'm wondering what I would get if I upgrade to 1.8.7 and if I
    should just stick with 1.8.5.
    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 4, 2009
    #1
    1. Advertising

  2. Cali Wildman

    Juan Zanos Guest

    There have been a few threads on this so far. Possibly the right
    thing to do is to install multiple versions and flip back and forth
    if you run into difficulties. Unfortunately, this is complicated and
    there are hidden problems. I was laughing about it the other day
    with someone because installing Ruby is ironically configuration over
    convention.

    My own wishful thinking is that Ruby installation becomes more
    standardized and that the source comes in a nice friendly repository
    that is easy on the disk so I could quickly select, build, and
    install different versions in some standard way.


    On 4 mai 09, at 13:24, Cali Wildman wrote:

    > I just upgraded to Rails 2.3.2 but my Ruby is still 1.8.5. Rails 2.3.2
    > doc says it work fine with 1.8.5 but it recommends 1.8.7. I remembered
    > from a previous attempt that upgrading Ruby to 1.8.6 was too
    > complicated
    > for me, so I'm wondering what I would get if I upgrade to 1.8.7 and
    > if I
    > should just stick with 1.8.5.
    > --
    > Posted via http://www.ruby-forum.com/.
    >
     
    Juan Zanos, May 4, 2009
    #2
    1. Advertising

  3. Cali Wildman

    Cali Wildman Guest

    Installing multiple versions is too messy for me. I plan on retiring my
    previous code base (written on Rails 1.2.3 / Ruby 1.8.5), so perhaps my
    best option is to bite the bullet and do the upgrade?

    Juan Zanos wrote:
    > There have been a few threads on this so far. Possibly the right
    > thing to do is to install multiple versions and flip back and forth
    > if you run into difficulties. Unfortunately, this is complicated and
    > there are hidden problems. I was laughing about it the other day
    > with someone because installing Ruby is ironically configuration over
    > convention.
    >
    > My own wishful thinking is that Ruby installation becomes more
    > standardized and that the source comes in a nice friendly repository
    > that is easy on the disk so I could quickly select, build, and
    > install different versions in some standard way.


    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 4, 2009
    #3
  4. Cali Wildman

    Juan Zanos Guest

    My guess would be that it's reasonably safe depending on what
    libraries you use. I think it would be safer if my wish were
    granted. Then library makers would have an easier time testing their
    stuff on various systems with various ruby versions.

    On 4 mai 09, at 14:13, Cali Wildman wrote:

    > Installing multiple versions is too messy for me. I plan on
    > retiring my
    > previous code base (written on Rails 1.2.3 / Ruby 1.8.5), so
    > perhaps my
    > best option is to bite the bullet and do the upgrade?
    >
    > Juan Zanos wrote:
    >> There have been a few threads on this so far. Possibly the right
    >> thing to do is to install multiple versions and flip back and forth
    >> if you run into difficulties. Unfortunately, this is complicated and
    >> there are hidden problems. I was laughing about it the other day
    >> with someone because installing Ruby is ironically configuration over
    >> convention.
    >>
    >> My own wishful thinking is that Ruby installation becomes more
    >> standardized and that the source comes in a nice friendly repository
    >> that is easy on the disk so I could quickly select, build, and
    >> install different versions in some standard way.

    >
    > --
    > Posted via http://www.ruby-forum.com/.
    >
     
    Juan Zanos, May 4, 2009
    #4
  5. Cali Wildman

    Cali Wildman Guest

    I know some of my libraries are gotta to get whacked but then I might
    not use them in my new project. Agreed, it would be great to have
    support for multiple Ruby versions though I don't see that happening
    anytime soon.

    Juan Zanos wrote:
    > My guess would be that it's reasonably safe depending on what
    > libraries you use. I think it would be safer if my wish were
    > granted. Then library makers would have an easier time testing their
    > stuff on various systems with various ruby versions.


    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 4, 2009
    #5
  6. Cali Wildman

    7stud -- Guest

    Cali Wildman wrote:
    > I know some of my libraries are gotta to get whacked but then I might
    > not use them in my new project. Agreed, it would be great to have
    > support for multiple Ruby versions though I don't see that happening
    > anytime soon.
    >
    > Juan Zanos wrote:
    >> My guess would be that it's reasonably safe depending on what
    >> libraries you use. I think it would be safer if my wish were
    >> granted. Then library makers would have an easier time testing their
    >> stuff on various systems with various ruby versions.

    >


    I recently upgraded my ruby, and I chose version 1.8.6. I read a thread
    about how 1.8.7 is incompatible the previous 1.8. line, which is going
    to cause nightmares with package maintainers who don't know that. It
    has something to do with the version number not indicating so many
    changes. After reading that thread, it was either 1.8.6 or 1.9 for me,
    and I went with 1.8.6. I don't ever intend to install 1.8.7.
    --
    Posted via http://www.ruby-forum.com/.
     
    7stud --, May 4, 2009
    #6
  7. Cali Wildman

    Cali Wildman Guest

    Oiy, 1.8.6? To add even more confusion, the Ruby site listed several
    versions of 1.8.7, I'm on Windows and not all versions have one-click
    installer. Which version is the recommended one to use with Rails 2.3.2?
    Anyone knows?

    7stud -- wrote:
    > Cali Wildman wrote:
    >> I know some of my libraries are gotta to get whacked but then I might
    >> not use them in my new project. Agreed, it would be great to have
    >> support for multiple Ruby versions though I don't see that happening
    >> anytime soon.
    >>
    >> Juan Zanos wrote:
    >>> My guess would be that it's reasonably safe depending on what
    >>> libraries you use. I think it would be safer if my wish were
    >>> granted. Then library makers would have an easier time testing their
    >>> stuff on various systems with various ruby versions.

    >>

    >
    > I recently upgraded my ruby, and I chose version 1.8.6. I read a thread
    > about how 1.8.7 is incompatible the previous 1.8. line, which is going
    > to cause nightmares with package maintainers who don't know that. It
    > has something to do with the version number not indicating so many
    > changes. After reading that thread, it was either 1.8.6 or 1.9 for me,
    > and I went with 1.8.6. I don't ever intend to install 1.8.7.


    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 4, 2009
    #7
  8. Cali Wildman

    7stud -- Guest

    7stud -- wrote:
    >


    Corrections:

    > I read a thread about how 1.8.7 is incompatible the previous 1.8. line


    I read a thread about how 1.8.7 is incompatible *with* the previous 1.8.
    line...


    Oh, and I also just installed rails 2.3.2.


    --
    Posted via http://www.ruby-forum.com/.
     
    7stud --, May 4, 2009
    #8
  9. Cali Wildman

    7stud -- Guest

    Cali Wildman wrote:
    > Oiy, 1.8.6? To add even more confusion, the Ruby site listed several
    > versions of 1.8.7, I'm on Windows and not all versions have one-click
    > installer. Which version is the recommended one to use with Rails 2.3.2?
    > Anyone knows?


    I have the recently published AWDWR(3rd), as in published a couple of
    months ago, and it has windows installation instructions. I posted them
    for someone else who was looking for directions. Here they are:

    http://www.ruby-forum.com/topic/185728#811600
    --
    Posted via http://www.ruby-forum.com/.
     
    7stud --, May 4, 2009
    #9
  10. Cali Wildman

    Bill Kelly Guest

    From: "7stud --" <>
    >
    > I recently upgraded my ruby, and I chose version 1.8.6. I read a thread
    > about how 1.8.7 is incompatible the previous 1.8. line, which is going
    > to cause nightmares with package maintainers who don't know that. It
    > has something to do with the version number not indicating so many
    > changes. After reading that thread, it was either 1.8.6 or 1.9 for me,
    > and I went with 1.8.6. I don't ever intend to install 1.8.7.


    I think we have to be careful not to spread FUD about 1.8.7
    incompatibilities, though.

    The most useful thread for me on this subject has been last
    February's "Re: If you are unhappy with the direction of
    Ruby 1.8.7+, respond".

    Particularly interesting was when folks were challenged to
    identify specific cases where 1.8.7 truly broke compatibility
    with 1.8.6 programs. The silence was deafening.

    Here is the summary by Pit Capitain of how that ended up:

    http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/328269

    On Sun, 15 Feb 2009, Pit Capitain wrote:
    > 2009/2/15 Nobuyoshi Nakada <>:
    >
    >> Could anyone summarize compatibility issues which really exist
    >> now?

    >
    > The only things I remember from this long discussion are:
    >
    > * The new String#chars clashed with a method of Rails
    > with the same name
    >
    > * It is not allowed anymore to create new objects during
    > garbage collection (the SWIG problem)
    >
    > Both are at least questionable to being categorized as breaking
    > backwards compatibility and seem to have been fixed. Everything else
    > that had been said here and in other threads had to be withdrawn.


    If that is the case, then it seems apparent we should be very
    careful what we mean when we talk about 1.8.7 being
    incompatible.

    My understanding is that because 1.8.7 incorporates some 1.9.x
    features, it *allows* us to write code which runs in 1.8.7 but which
    will not run in 1.8.6. And yes, not everyone is happy with that.
    (Including developers of alternate ruby implementations, who
    would be looking at more work to maintain separate 1.8.6,
    1.8.7, and 1.9.x interpreters.)

    But that is different from 1.8.7 breaking 1.8.6 programs. Which
    it apparently doesn't.


    Regards,

    Bill
     
    Bill Kelly, May 5, 2009
    #10
  11. Cali Wildman

    Cali Wildman Guest

    Bill, thank you for your detailed response, it's very helpful in
    determining if 1.8.7 is truly incompatible and it surely doesn't appear
    so.

    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 5, 2009
    #11
  12. Cali Wildman

    7stud -- Guest

    Bill Kelly wrote:
    > From: "7stud --" <>
    >>

    >
    > My understanding is that because 1.8.7 incorporates some 1.9.x
    > features, it *allows* us to write code which runs in 1.8.7 but which
    > will not run in 1.8.6.
    >
    > But that is different from 1.8.7 breaking 1.8.6 programs. Which
    > it apparently doesn't.
    >


    Hmmm...ok.

    --
    Posted via http://www.ruby-forum.com/.
     
    7stud --, May 5, 2009
    #12
  13. Cali Wildman

    Cali Wildman Guest

    7stud -- wrote:
    > Bill Kelly wrote:
    >> From: "7stud --" <>
    >>>

    >>
    >> My understanding is that because 1.8.7 incorporates some 1.9.x
    >> features, it *allows* us to write code which runs in 1.8.7 but which
    >> will not run in 1.8.6.
    >>
    >> But that is different from 1.8.7 breaking 1.8.6 programs. Which
    >> it apparently doesn't.
    >>

    >
    > Hmmm...ok.


    So basically 1.8.6 (and prior version) code will work fine in 1.8.7
    without changes, but code written using 1.8.7 new features won't work
    with previous versions, did I get that right?
    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 5, 2009
    #13
  14. Cali Wildman

    7stud -- Guest

    Cali Wildman wrote:
    >
    > So basically 1.8.6 (and prior version) code will work fine in 1.8.7
    > without changes,


    It doesn't sound like that is the case:

    http://www.ruby-forum.com/topic/178354#new

    > but code written using 1.8.7 new features won't work
    > with previous versions, did I get that right?


    Obviously.

    --
    Posted via http://www.ruby-forum.com/.
     
    7stud --, May 5, 2009
    #14
  15. Cali Wildman

    Bill Kelly Guest

    From: "7stud --" <>
    > Cali Wildman wrote:
    >>
    >> So basically 1.8.6 (and prior version) code will work fine in 1.8.7
    >> without changes,

    >
    > It doesn't sound like that is the case:
    >
    > http://www.ruby-forum.com/topic/178354#new


    Could you be more specific? It's a very long thread.

    My understanding is that Cali's statement should be correct.

    Code that works on 1.8.6 should work on 1.8.7. (But not
    necessarily vice-versa.)


    Regards,

    Bill
     
    Bill Kelly, May 5, 2009
    #15
  16. Cali Wildman

    Marc Heiler Guest

    I am using 1.8.7 and it works wonderfully.

    Just don't believe the FUD that a very few vocal people spread here
    about how bad and horrible 1.8.7

    I see an upgrade to ruby 1.9.x being more difficult, because it gave me
    more problems with Encoding stuff so far. The encoding switch alone is a
    huge thing, I need to make sure that all my files are "proper" whereas
    ruby 1.8.x didn't care about it.
    --
    Posted via http://www.ruby-forum.com/.
     
    Marc Heiler, May 5, 2009
    #16
  17. On Tue, May 5, 2009 at 2:47 AM, Bill Kelly <> wrote:
    >
    > From: "7stud --" <>
    >>
    >> Cali Wildman wrote:
    >>>
    >>> So basically 1.8.6 (and prior version) code will work fine in 1.8.7
    >>> without changes,

    >>
    >> It doesn't sound like that is the case:
    >>
    >> http://www.ruby-forum.com/topic/178354#new

    >
    > Could you be more specific? =A0It's a very long thread.
    >
    > My understanding is that Cali's statement should be correct.
    >
    > Code that works on 1.8.6 should work on 1.8.7. =A0(But not
    > necessarily vice-versa.)


    It's actually not true in general. There is lots of old 1.8.6 based
    code, for example Rails applications running on not-so old versions of
    Rails which won't run on 1.8.7.

    If you really go back and read that long thread, I think you'll find
    that while later versions of ruby libraries like Rails have made
    changes to accommodate the changes made in 1.8.7, that was
    accomplished by changing the code, not by changes to Ruby 1.8.7. So
    it's very likely that, say an old Rails 1.2.x (or even I think a Rails
    2.x (for some value of x < the version which was 1.8.7 compatible)
    won't run or won't run correctly under 1.8.7.

    If we're talking about new code, then yes, 1.8.7 vs. 1.8.6 is at best
    a minor issue, but if we are talking about waking up some Rip Van
    Winkle application, some assembly will be required. And some 'ports'
    of some Rails applications between Rails versions is a non-trivial
    exercise. One company I worked for backed out of migrating its main
    app from Rails 2.1 to 2.2 because the rework cost more than it was
    worth. Now this is a Rails issue rather than a Ruby issue per se, but
    it's all part of the larger picture.

    The real pain of having 1.8.6 and 1.8.7 share the same minor version
    number is that downstream 'vendors' like the linux packagers see this
    as an inconsequential change, they have ONE ruby 1.8 package, and when
    they started making this contain 1.8.7 rather than 1.8.6, and owners
    of those Rip Van Winkle apps found things broke when they (or their
    hosting provider) updated the packaged version of ruby.

    That's why as a result of that thread, the folks at Engine Yard agreed
    to continue to maintain a Ruby 1.8.6 version. But it still doesn't
    solve the re-packaging of 'compatible' versions for less aware users
    and hosting providers.
    --=20
    Rick DeNatale

    Blog: http://talklikeaduck.denhaven2.com/
    Twitter: http://twitter.com/RickDeNatale
    WWR: http://www.workingwithrails.com/person/9021-rick-denatale
    LinkedIn: http://www.linkedin.com/in/rickdenatale
     
    Rick DeNatale, May 5, 2009
    #17
  18. Cali Wildman

    Bill Kelly Guest

    From: "Rick DeNatale" <>
    >
    > > On Tue, May 5, 2009 at 2:47 AM, Bill Kelly <> wrote:
    > >
    > > My understanding is that Cali's statement should be correct.
    > >
    > > Code that works on 1.8.6 should work on 1.8.7. (But not
    > > necessarily vice-versa.)

    >
    > It's actually not true in general. There is lots of old 1.8.6 based
    > code, for example Rails applications running on not-so old versions of
    > Rails which won't run on 1.8.7.
    >
    > If you really go back and read that long thread, I think you'll find
    > that while later versions of ruby libraries like Rails have made
    > changes to accommodate the changes made in 1.8.7, that was
    > accomplished by changing the code, not by changes to Ruby 1.8.7. So
    > it's very likely that, say an old Rails 1.2.x (or even I think a Rails
    > 2.x (for some value of x < the version which was 1.8.7 compatible)
    > won't run or won't run correctly under 1.8.7.


    Okay.

    Although, if memory serves, there were some similar
    issues with Rails and the transition from 1.8.4 ->
    1.8.6 . . .

    Google found, for instance:

    http://dlfaquifer.blogspot.com/2008/03/ruby-on-rails-upgrade-woes.html

    "I've had a terrible experience trying to do a full
    stack upgrade of Ruby and Rails (Ruby 1.8.4 -> 1.8.6,
    Rails 1.1.6 -> 1.2.6). Two changes in core Ruby classes
    caused problems for me, plus the continued poor support
    for MS SQL Server in ActiveRecord continues to plague
    me. It may have put me off upgrading my RoR apps. any
    more."

    In which case, it may not be entirely fair to single out
    1.8.7 in this regard?


    Regards,

    Bill
     
    Bill Kelly, May 5, 2009
    #18
  19. Cali Wildman

    Cali Wildman Guest

    So it seems like there are enough chatter on various blogs, etc that
    raises some 1.8.7 incompatibility concerns, here's a specific example on
    Rails Forum
    http://railsforum.com/viewtopic.php?pid=96484#p96484

    Quote: "I wanted to create a hash from an array, so I used:
    Hash[my_array] in 1.8.7, which has to be rewritten to Hash[*my_array] in
    1.8.6"

    Also, it seems like Engineyard has committed to maintain 1.8.6 branch
    for the same concern,
    http://www.h-online.com/open/Ruby-1-8-6-going-to-the-Engineyard--/news/112685

    While I agree that this might not be unique regarding incompatible
    upgrades singling out 1.8.7, it does appear there is momentum in the dev
    community to stick with 1.8.6 until 1.9 is released. As such, if most
    developers use 1.8.6, then there is better overall support for issues,
    etc.

    Long story short, it seems like 1.8.6 is the way to go for now.
    --
    Posted via http://www.ruby-forum.com/.
     
    Cali Wildman, May 5, 2009
    #19
  20. Cali Wildman

    Juan Zanos Guest

    It might not be that hard to suck every version of the Ruby source
    into git. Then they could all be downloaded efficiently all at
    once. After that a ruby script could build several of the key stable
    versions, install them, and then install another script called
    something like rubyswitch. Running rubyswitch <version> would change
    the currently active version by changing the path. Then the test
    cycle would be faster and falling back would be trivial.


    On May 5, 2009, at 2:02 PM, Cali Wildman wrote:

    > So it seems like there are enough chatter on various blogs, etc that
    > raises some 1.8.7 incompatibility concerns, here's a specific
    > example on
    > Rails Forum
    > http://railsforum.com/viewtopic.php?pid=96484#p96484
    >
    > Quote: "I wanted to create a hash from an array, so I used:
    > Hash[my_array] in 1.8.7, which has to be rewritten to
    > Hash[*my_array] in
    > 1.8.6"
    >
    > Also, it seems like Engineyard has committed to maintain 1.8.6 branch
    > for the same concern,
    > http://www.h-online.com/open/Ruby-1-8-6-going-to-the-Engineyard--/news/112685
    >
    > While I agree that this might not be unique regarding incompatible
    > upgrades singling out 1.8.7, it does appear there is momentum in the
    > dev
    > community to stick with 1.8.6 until 1.9 is released. As such, if most
    > developers use 1.8.6, then there is better overall support for issues,
    > etc.
    >
    > Long story short, it seems like 1.8.6 is the way to go for now.
    > --
    > Posted via http://www.ruby-forum.com/.
    >
     
    Juan Zanos, May 5, 2009
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Leon

    should I upgrade to 2003

    Leon, May 14, 2004, in forum: ASP .Net
    Replies:
    3
    Views:
    386
    Cowboy \(Gregory A. Beamer\)
    May 14, 2004
  2. ~~~ .NET Ed ~~~

    How should control images should be handled?

    ~~~ .NET Ed ~~~, Oct 31, 2004, in forum: ASP .Net Building Controls
    Replies:
    1
    Views:
    265
    John Saunders
    Nov 3, 2004
  3. Josef 'Jupp' SCHUGT

    What the FAQs should and should not contain

    Josef 'Jupp' SCHUGT, Aug 19, 2005, in forum: Ruby
    Replies:
    0
    Views:
    210
    Josef 'Jupp' SCHUGT
    Aug 19, 2005
  4. botp
    Replies:
    6
    Views:
    249
    Joel VanderWerf
    Oct 5, 2010
  5. Replies:
    5
    Views:
    314
    Dr.Ruud
    Jul 5, 2006
Loading...

Share This Page