Because we've agreed that the Gerrit 2.13 upgrade effort is a priority, and because we need to stop relying on the contactstore feature to be able to do that, we should consider the gerrit-contactstore-removal spec a transitive priority as an explicit dependency of a priority spec. Change-Id: I1b12bca9eb9b46dacbc42e9f36b8f6042ee3d90c
3.0 KiB
Copyright 2015 OpenStack Foundation
This work is licensed under a Creative Commons Attribution 3.0
Unported License.
http://creativecommons.org/licenses/by/3.0/legalcode
Gerrit 2.13 Upgrade
We will upgrade our current Gerrit 2.11 production instance to 2.13.
Problem Description
Our production Gerrit server is two minor releases behind the latest release of Gerrit. We want to update gerrit from 2.11.4 to 2.13.x so that we can get the latest features and bug fixes. Also we don't want to fall to far behind upstream otherwise it might be more difficult to upgrade later.
Proposed Change
Upgrade to Gerrit 2.13 in a maintenance window.
Alternatives
1. Stay on 2.11. and go without useful new fixes/features. Pros: We know the issues with this release. Cons: We are behind upstream and don't get many new features.
2. Upgrade to 2.12.x Many companies have already upgraded to 2.12.x which makes this a viable option. Pros: Other companies have vetted this version. Cons: Fixes might be difficult to get into this branch.
3. Upgrade to master Pros: May get fixes faster on master than on stable branches Cons: Only Google and GerritForge is on master.
Risks
2.13.x has not been installed by many companies so it really hasn't been vetted by other companies yet.
Implementation
Assignee(s)
- Primary assignee:
-
zaro
Gerrit Topic
Use Gerrit topic "gerrit-upgrade" for all patches related to this spec.
git-review -t gerrit-upgrade
Work Items
We don't have a zuul dev environemnt that uses review-dev. Currently zuul-dev.o.o does not run jobs for review-dev.o.o. The first step is to update zuul-dev.o.o to simulate production zuul. We need to update it to the same version and get it to run jobs triggered off of the gerrit stream events. Once that happens we'll have a valid dev environment for testing Gerrit 2.13. There's more on testing gerrit in the testing section.
In case we need to rollback, we should create a mysql database rollback script.
Create a fork from Gerrit stable-2.13 branch and add build jobs for 2.13 and it's associated plugins.
Puppet up some changes to swap out new versions.
Repositories
Create an 'openstack/2.13.1' fork from the latest Gerrit 2.13.x tag
Servers
N/A
DNS Entries
N/A
Documentation
N/A
Security
N/A
Testing
We need to update review-dev.o.o with Gerrit 2.13 and test the following integrations:
- data migration
- gerrit replication
- gerrit javascript (toggle-ci & test results)
- jeepyb integration
- zuul integration
- storyboard integration (its-storyboard plugin)
- launchpad integration
- gerrty
- rollback
- javamelody plugin
- gerrit hooks
- git-review
Dependencies
Because Gerrit 2.12 and later have dropped the
contact store
feature, we need to first stop relying on it
<gerrit-contactstore-removal>
.