Paul Jungwirth on 25 Mar 2015 08:25:04 -0700

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Ruby / Rails Backwards Compatibility

Hi Rich,

On 03/25/2015 06:28 AM, Rich Freeman wrote:
> I've managed to encounter a Ruby/Rails application that is running on
> a fairly old version of both,

Rails 2.3 -> 3.0 took some effort.
Rails 3.0 -> 3.1 -> 3.2 was very easy.
Rails 3.2 -> 4.0 was not too bad.
Rails 4.0 -> 4.1 -> 4.2 was also very easy.

Ruby 1.8 -> 1.9 involved Unicode encoding changes so was sometimes hard.
Ruby 1.9 -> 2.x hasn't been a big deal for any of my projects.

Honestly I think none of these upgrades are a huge amount of effort. I think most of the problems people had with Rails 2 -> 3 were learning curve problems (e.g. figuring out the asset pipeline) rather than actually adapting their code.

The other problem is dependencies, but at this point all your dependencies should support the latest Rails/Ruby versions (assuming they are still maintained).

The effort required will mostly depend on how big your app is and the quality of the existing code. Also if you have automated tests your QA burden will be a lot easier.

In the Ruby/Rails world things change pretty fast, which of course is good and bad. If you have no in-house Ruby expertise then there is risk having an app in that technology, because it's hard to change and you are less likely to apply security updates. But those problems are less about how fast the tech changes and more about how the tech fits with your org. At least with the security patches, any tech will require occasional attention.

I do freelance Ruby/Rails development for a living, so if your company wants to hire me for a few hours to look at the code and write up an assessment/upgrade plan, I'd be happy to do that. I moved to Portland, OR a few years ago, so you'd have to be okay with a remote arrangement. If you want someone local, I'm sure you could find people on the philly.rb mailing list.

Good luck!

Philadelphia Linux Users Group         --
Announcements -
General Discussion  --