This term, I have been working on the upgrade from rails 3 to rails 4. The upgrade process consisted of two phases. Firstly, I upgraded MarkUs from rails 3.2 to rails 4.0. Then, I upgraded it from rails 4.0 to rails 4.1. Each phase consisted of some parts that need to be changed by referring to two upgrade guides in Rails 4 Upgrade Notes
Right after each upgrade phase, I ran both unit test and Rspec test. There were many deprecated warnings and errors showing up. In order to make pull requests small, I
ran each test from unit test and Rspec test separately and updated the code.
After all warnings and errors from the tests were fixed, I tested MarkUs manually. There are some issues after the upgrade and need to be fixed.
Also, The following tasks still need to be done.
Since many features that were present in earlier versions of Rails were removed from Rails4 itself and extracted to gems, I have added the following Gems in order to make the upgrade process as smooth as possible.
gem ‘actionpack-action_caching’, ‘~>1.0.0’
gem ‘actionpack-page_caching’, ‘~>1.0.0’
gem ‘actionpack-xml_parser’, ‘~>1.0.0’
gem ‘actionview-encoded_mail_to’, ‘~>1.0.4’
gem ‘activerecord-session_store’, ‘~>0.1.0’
gem ‘rails-observers’, ‘~>0.1.1’
gem ‘rails-perftest’, ‘~>0.0.2’
But not all of them are needed in our application. Those gems that are not used in our application should be removed. For more information about what the gems do, Please refer to upgrading to rails 4 page 71.
Since the final exams are approaching, I didn’t have time to finish the above tasks yet. And I will try to finish them after all finals have completed.