infra-specs/specs/gerrit-2.13.rst
Jeremy Stanley 607e3f2d0d Make Gerrit contactstore removal a priority
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
2017-07-13 20:37:47 +00:00

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>.