Skip to content

Testplan for rolling out rails5 into production

Test Plan

This issue outlines testing activities related to https://gitlab.com/gitlab-org/gitlab-ce/issues/48991

Introduction

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.

Scope

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) 

Test plan

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

Capability Covered Link(s) Notes
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 nil' going to be the same as false' to the callbacks?"
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
- config.action_mailer.perform_caching
"
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.

Edited by Mek Stittri