Now that Rails 4.2 has been released, has Rails 3.2 released end of life? If not, does anyone know when Rails 3.2 is EOL?
Rails 3.2 will be completely abandoned once Rails 5.0 is released (sometime in 2015, no fixed date). That said, the 3.2 version already receives only severe security fixes and as such I'd strongly recommend to upgrade as soon as possible.
Ruby on Rails 3.2 reached its end of life-cycle with the release of Rails 5.0 on June 30th, 2016.
We still saw some security fixes after that date (like 3.2.22.5 in September 2016), but these were exceptions. And you should not expect any further version.
If you still run an application on Rails 4.2.x or below it is highly recommended to update to 5.2.x with a high priority.
Rails' Maintenance Policy makes it quite clear when a version should be considered un-maintained.
If for whatever reason you're stuck for now on Rails 3.2 or 2.3, railslts.com offers long term support for security patches for these rails versions.
In our case, an application that's being replaced can't justify the upgrade time. In the meantime while it's up, this service is perfect.
Related
Does anyone know when Rails 5.2 reaches end of life? Is there a central place where end of life dates for Rails are documented?
Rails don't do long term support of old versions. They only release security path.
You can get a better idea of how this work here:
https://guides.rubyonrails.org/maintenance_policy.html
It is important to emphasize that you have to keep updating the gem of rails to avoid incompatibilities in the future, see the case of the update of Github in rails 3 to version rails 6
https://github.blog/2018-09-28-upgrading-github-from-rails-3-2-to-5-2/
https://github.blog/2019-09-09-running-github-on-rails-6-0/
Rails 5.2.Z is included in the list of supported series until June 1st 2022.
You can find the central place where end of life dates for Rails are documented at https://endoflife.date/rails
or at https://guides.rubyonrails.org/maintenance_policy.html
I believe Rails 6 is still "Edge" (unreleased) and Rails 5 is the latest released version. (See this Q&A for definitions.) As such, I believe there is no EOL date for Rails 5.
I believe you can find, essentially, EOL information by looking at the latest release notes, as discussed in this Q&A.
I have a Rails app that was built on 3.2.6. I want to upgrade it to the latest version of 3.2 (which seems to be 3.2.18). Can anyone tell me what changes will need to be made besides just changing the Rails version number in the Gemfile? Is there a more stable version I should be upgrading to instead of 3.2.18? I am extremely new to Rails development and I am not finding much help elsewhere on the web.
EDIT: I tried updating to 3.2.18 briefly just to see if the behavior of my application changed, and once I had done so, the main page would not even load, claiming the template was missing. This seems to indicate that I need to manually go in and fix something.
Rails uses semantic versioning. This means that 3.2.x will work if the application was working in any version of 3.2.x.
The latest stable version of Rails is 4.1. I would recommend building new applications with the latest version, unless you know for certain a required feature was deprecated.
EDIT: This response on rails core describes the versioning https://github.com/rails/rails/issues/9979
X.Y.Z
Z - only bug fixes, no API changes.
Y - new features, may contains API changes.
X - new features, will contains API changes. Just bumped in special occasions
change the rails version in Gemfile and run 'bundle update rails'
I am running an application on Rails 2.3.8. I am planning to upgrade it to Rails 4.0 (which is in RC). What will be the easiest way for me to do this? Do I need to first upgrade to Rails 3.x?
Note: in my current implementation, I am using starling and ferret; as part of upgrade I am also considering to move to sidekiq and sunspot
This is a multi-step process, and depending on the size of your application, it can take a long time. At each step, you'll want to test your application for bugs and problems and broken gems (because they are most certainly going to crop up). I have included links for the most complicated steps. Here is the path of least pain:
Update to Rails 2.3.18.
Update to Ruby 1.9.3.
Update to Rails 3.0.
Part 1
Part 2
Part 3
Update to Rails 3.1.
Update to Rails 3.2.latest.
Update to Ruby 2.0.latest.
Update to Rails 4.0.
Update from Rails 4.0 to Rails 4.1.
Update from Rails 4.1 to Rails 4.2.
Update from Rails 4.2 to Rails 5.0.
Update from Rails 5.0 to Rails 5.1.
Bonus: If you have a large application, this is going to take a long time. If you have a large team, long-running branches become a huge headache because of recurring merge conflicts. One strategy for mitigating this is to dual boot your application with both versions of Rails so that you can have the new version running on your master branch, rather than on a long-running branch of its own.
Aaron Gray's answer is very useful, but sometimes it's very difficult after upgrading to find the differences between rails version in the code. I mean, many times after upgrading something doesn't work. Maybe could be some changes in the file or some file could be added or removed in newer version. There is a nice tool, how you can find out all differences between version and compare them. It's on Rails differences and could be very helpful to discover some potential mistakes and bugs.
Rails 3 is out and every one is excited (etc etc).
However, I'm not ready to update to it yet for a couple reasons:
Not all gems I use are supported.
Just finally got my head around 2.3.x.
My client expects software that is reliable.
So, right now I'm running 2.3.5 and will be upgrading to 2.3.8 soon. But what about any security patches or parallel feature updates that 3 might get? Will there be a 2.3.9? Will there be a 2.4? Does anyone know?
Looking on https://rails.lighthouseapp.com/projects/8994-ruby-on-rails there is a 2.3.10 milestone, so they will at least have that.
You can see from the commit log that there are still commits to the 2.3 branch eventhough it's not as active as the 3.x branch. 37signals are still using 2.3 on many of their apps that's why you will see many patches/commits coming from Jeremy, one of 37signals employee. I don't think they will make any major changes that will break your apps though.
Judging by the lastest commit to 2.3.9pre ("preparing for 2.3.9") and the open tickets (none), it looks like Rails 2.3.9 will be released any day now.
Actually upgrade to 3.0 doesn't break that much. There's few gotchas, but they are mostly very well documented. Most common gems are already compatibile with rails 3 (at least the newest beta versions). I am sure, that by the time you would finish upgrading all of those would have stable relases.
I would go rather for 3.0 instead of going for an upgrade in 2.3.x branch.
It is very crucial to have lots of well placed tests for your application. This way you can easily see if anything breaks.
I found much many problems after switching to Ruby 1.9.x, then after going from Rails 2.3.x to Rails 3. Actually now I am using REE 1.8.7 with Rails3.
Is it time to start new projects in Rails 3? I'm nervous about using beta versions but at the same time I really like what they are doing and don't want to deal with legacy 2.3.5 issues with these apps.
Is it better to wait these things out, or buckle-up, deal with early adopter issues and get a head start on the future. Thanks for any light you can shed.
I'd say no, rails v3.beta3 still has some serious issues that cause it to crash (unexpectedly). As noted from the Riding Rails blog:
Note that Ruby 1.8.7 p248 and p249 has marshaling bugs that crash both Rails 2.3.x and Rails 3.0.0. Ruby 1.9.1 outright segfaults on Rails 3.0.0, so if you want to use Rails 3 with 1.9.x, jump on 1.9.2 trunk for smooth sailing.
Also of note:
Known regressions: Rails crashes unless configuration.action_controller.session is set, config.thread_safe does not work, Unable to run a RJS partial from an HTML template, Backtrace silencers oftem remove application lines from test failures backtraces, Active Record double escapes error_messages_for
I am doing all of my new development work on Rails 3. I have found a couple of issues in general stability, but they are really in the fringe/edge cases - I have a system running on Heroku that is quite stable. The core platform itself is quite stable and the various APIs should not significantly change heading to release.
You need to ask yourself what you've got to lose, but one thing is clear: Rails 2.x is history.