Testplan for rolling out rails5 into production
This issue outlines testing activities related to https://gitlab.com/gitlab-org/gitlab-ce/issues/48991
We are enabling Rails 5 in production.
Rails 5 touches on many things and we need to ensure that we don't cause any unintended regressions.
- "extended testing" beyond running gitlab-qa tests
- Our automated QA task doesn't have a full coverage. We need to also determine what are the manual gaps.
- A good reference is to look at the GCP Migration Test Plan https://drive.google.com/drive/folders/1UBHpy4B0mhzsswJmPFahlf4bgSeYiViO
State any limits on aspects of the feature being tested Outline the types of data to be included Outline the types of tests to be performed (functional, security, performance, database, automated, etc)
Created a upgrade capability matrix for this migration that I am using to monitor the upgrades.
We're looking great on the Rails 4->5 upgrade path
|5.1 Ruby 2.2.2+ required||Y||.ruby-version is 2.4.4 ( > 2.2.2 )|
|5.2 Active Record Models Now Inherit from ApplicationRecord by Default||I||https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17882|
|5.3 Halting Callback Chains via throw(:abort)||?||"Most callbacks i've found were either passive (they initialize some variable) or they return `nil'.|
|According to the documentation||if the callback returns `false'||there needs to be a change. Is
|5.4 ActiveJob Now Inherits from ApplicationJob by Default||?||Looks like we do not use ActiveJobs. there is no `jobs/' directory in the app/ dir.|
|5.5 Rails Controller Testing||Y||https://gitlab.com/gitlab-org/gitlab-ce/issues/52591||We use `assigns' in quite a few places. Issue created. Closed. We have the supplemental gem in the Gemfile|
|5.6 Autoloading is Disabled After Booting in the Production Environment||?|
|5.7 XML Serialization||Y||"As far as i can tell||there are no usages of ActiveModel::Serializers::Xml"|
|5.8 Removed Support for Legacy mysql Database Adapter||Y||We are already using only mysql2. No occurences of mysql|
|5.9 Removed Support for Debugger||Y||We already use byebug and no debugger|
|5.10 Use rails for running tasks and tests||Y|
|5.11 ActionController::Parameters No Longer Inherits from HashWithIndifferentAccess||?||Unknown. will have to ask a dev|
|5.12 protect_from_forgery Now Defaults to prepend: false||Y||All protect_from_forgery statements have prepend: true|
|5.13 Default Template Handler is Now RAW||Y|
|5.14 Added Wildcard Matching for Template Dependencies||Y||Meta|
|5.15 ActionView::Helpers::RecordTagHelper moved to external gem (record_tag_helper)||Y||No uses of content_tag_for or div_for. we are already using content_tag exclusively|
|5.16 Removed Support for protected_attributes Gem||Y||We do not use protected_attributes gem|
|5.17 Removed support for activerecord-deprecated_finders gem||Y||"We do not use activerecord-deprecated_finders gem (though||some search results popped up in the qa/ dir regarding it had shown up."|
|5.18 ActiveSupport::TestCase Default Test Order is Now Random||Y|
|5.19 ActionController::Live became a Concern||Y||We aren't using ActionController::Live|
|5.20 New Framework Defaults||? / Y||"What about|
|- config.action_mailer.deliver_later_queue_name = :new_queue_name|
|5.21 Changes with JSON/JSONB serialization||?|
There are a few
?'s that i would like to discuss with a developer to ensure this coverage.
As far as the tests go - i will use the full suite to run against the Rails 5 instance.