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.
Related
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.
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.
I have this new project I need to build. I want to have at least started on it by the end of this month. So which version should I use though? Should I just stick with the stable Rails2 or try to use Rails3 so I won't have to migrate later? Which one would you suggest for someone that is still learning Rails?
Rails 3 definitely won't have the resources available for it that Rails 2 does, and Rails 3 will still be changing quite fast, so unless you're especially happy getting your support from the source code I'd stick with Rails 2
I know you've already accepted Rails 2, but I'm throwing this out, anyway:
I've been using Rails 3 for my newer projects, and haven't noticed any significant bugs. Of course, I've only used popular gems and plugins that therefore are already have dedicated teams who have made them compatible with Rails 3.
You can fairly easily check if your plugins are compatible at RailsPlugins.org. Some might require you to use a specific Rails 3 branch from Github, so be sure to check the comments on reports that say "Working".
As long as you won't be using anything terribly obscure, you should be good to go for Rails 3, which is a fantastic piece of work from the Rails team. Arel makes my day every day.
Rails 3 will not be out of beta sooner than fall this year and I guess it may shift. Rails 2 works pretty well and you will not need to debug unstable code while learning. Many tools, gems etc. have still not migrated.
I agree with you both.
You should use rails2. Rails3 is still in beta and many problems can be encouter.
In my company we've migrate to rails3 and it's foolish. We spend a lot of time to debug/modify plugins for rails3 ...
Now it's up to you to make your choice :)
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.
I'm developing an application with Ruby on Rails that I want to maintain for at least a few years, so I'm concerned about the next version coming up soon.
Going from Rails 1 to Rails 2 was such a big pain that I didn't bother and froze my gems and let the application die, alone, in the dark.
On this project I don't want to do that. First because this new version looks awesome, but also because this application may turn into a real product.
How can I prepare my application so that it will be upgradable with as little changes as possible.
How time consuming do you think switching version will be?
And what about my server? Deployment?
I'm already looking at deprecation notices... what else can I do?
The best thing you could do would be to follow development of Rails 3 via blogs and the Github repository and keep up a copy of your app along with it.
The official Ruby on Rails blog is updated with "What's new in Edge" posts every once in awhile. There are other blogs that often write about new things in edge as well. Larger features are often highlighted in these blogs, so you know about all the cool new features you can play with.
I'm not sure how close Rails 3 is to release (last I heard the core team was talking about a release at RailsConf 2009 in May), but you can always freeze the edge version of Rails into your application and just see what breaks. If you are using git, or another DVCS, you might make a branch specifically for Rails 3 and periodically update Rails to the latest edge code. Just be aware that edge Rails is a moving target so things in your app may break or fix themselves as you are pulling in newer Rails code.
Update:
Jeremy McAnally has a ton of info on upgrading from Rails 2 to Rails 3 on his blog.
http://omgbloglol.com/
I don't think there is going to be a major problem. Going off what was said in that initial report the Rails team realized that they can't do a major rewrite like they did from 1 to 2.
They even say:
I’m sure there’ll be some parts of Rails 3 that are incompatible, but we’ll try to keep them to a minimum and make it really easy to convert a Rails 2.x application to Rails 3.
I would be more concerned going from Merb to Rails 3.
The single most important thing you can do to make it easy to migrate to a new version of rails is to have a comprehensive test suite. Without a good test suite, I would never have the confidence that the new version of rails hasn't broken something in my app. On the current Rails app I'm working on, we started on Rails 2.1.1 back in October of 2008. Since then, we've migrated to Rails 2.1.2, 2.2.2, 2.3.2, 2.3.3 and now 2.3.4. I did the migrations to 2.3.2, 2.3.3 and 2.3.4...and for the 2.3.2 and 2.3.3 upgrades, we had some failing tests that alerted us to problems we would not have discovered without having such a good test suite. The failing tests actually alerted us to a regressive bug in rails that there was a patch for on the Rails lighthouse but that was not included in the release (since it was discovered, right after the release).
Once you've got that test suite in place, just stay current with each rails release (waiting a couple weeks to upgrade is fine, just don't skip any of the releases).
Yehuda Katz (a member of the Rails core team) has stated that there will most likely be a transitional release, containing deprecation warnings and such.
So as long as you have a good test suite to expose the inevitable upgrade problems, and stay current with the Rails release, the migration to Rails 3 should not be too difficult.
As simple as:
One
Two
Three
Great screencasts from Ryan Bates.
For preparing your application, the best way it what Jared said. Follow the Rails3 development.
For the time consuming, I think it depends of how you've followed the rails3 development before it's release.
And for the deployment, it shouldn't take too much problems. Rails 3 will be using Rack. So you can start it with mongrel, passenger or any server/gateway it shouldn't give you any problem.
There are some major changes in Rails 3, I posted about my experience upgrading my app to Rails 3 here: http://rails3.community-tracker.com/permalinks/5/notes-from-the-field-upgrading-to-rails-3
A good start in preparing would be to migrate over to using bundler. And doing a very deep review of strings that will go through the new XSS protection scheme.
There are going to be some automated compatibility checkers. Also, keep an eye on http://www.railsplugins.org/ so that you know if the libraries you depend on are going to be upgraded. The Rails Core team seems to be giving a lot of advance notice to the community this time around, so any lib that is actively maintained should be good to go.
Just do one thing
take a backup of your old version project first and then
on terminal(command prompt) write
rails new path/of/the/project
for example if my 2.3.* project is at home/rails_projects/myproject then
rails new home/rails_projects/myproject
or
cd home/rails_projects
rails new myproject
It will ask if there is any modifications done in any /config or other files. Do appropriate.