Switch to Rails 5 in production
CI is close to be green with Rails 5, but it doesn't mean that GitLab is 100% working with Rails 5 - there will be probably many bugs uncovered by automated testing. We should prepare a plan how/when to switch to Rails 5 in production mode. The purpose of this issue is to discuss the switch plan and any related tasks which we should add (generic issue for Rails 5 is #14286 (closed)).
How to run tests or server with rails 5 locally: &213 (closed)
Rough timeline and TODO:
-
During 11.5 cycle:
-
fix remaining tests in CE - #14286 (closed), existing issues, nightly pipeline -
fix any additional failing tests in EE - existing issues, nightly pipeline -
do minor upgrade 5.0->5.1->5.2 (#48392 (closed)) -
test rails 5 with gitlab-qa -
sync up with packaging/distribution team -
enable optional Rails 5 installation with omnibus if possible -
create an EE package and spin up an instance somewhere using that (either locally, or using https://about.gitlab.com/handbook/engineering/#resources) (packages should be available from "package-and-qa" job in this MR https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/6784/pipelines) -
run CI against both rails 4 and 5 for nightly builds (or schedule a pipeline to run it periodically every day) - this would be a compromise between overloading CI and taking a risk of introducing more rails 5 bugs -
involve QA team (create manual test execution plan, check other extended testing possibilities beyond package-and-qa
) - QA testing should be finished in 11.5 - https://gitlab.com/gitlab-org/gitlab-ce/issues/51719
-
-
During 11.6 cycle
-
at the beginning of this cycle, make Rails 5 default in master branch, all gitlabbers and developers switch to Rails 5 -
fix any additional new bugs (there might be many after making Rails 5 default) -
if Rails 5 is stable during 11.6 cycle, release with 5, otherwise switch back to 4 -
fix deprecation warnings (if compatible with rails 4) -
ideally run CI both against Rails 4 and 5 (concern: this would double CI runtime) -
notify 11.6 release managers about this being part of 11.6 (sync up regarding canary deployment) -
when deploying first RC with rails 5 to production, first deploy to canary and keep it running there for 1-2 days, after then proceed with deployment to production nodes (ping release managers about this step)
-
Edited by Jan Provaznik