We are currently running Gerrit 3.8.1 and planning to upgrade to 3.13 or 3.14.
What is the recommended upgrade path?
Is direct upgrade from 3.8.1 → 3.14 supported, or is step-by-step upgrade through intermediate versions recommended (3.9.x → 3.10.x → 3.11.x → 3.12.x → 3.13.x/3.14.x)?
Also, what are the important considerations regarding Java version, reindexing, and plugin compatibility?
Kindly share your suggestions or best practices based on community experience.
Thanks in advance.
Hello,
There are breaking changes requiring ajustements to the
configuration, plugins, JavaScript plugins, bots listening for
events etc. Luckily they are well described in each versions
release notes. Therefor to avoid having to address all of them in
one go, we upgrade Gerrit one version at a time.
The Web UI also has some changes and too many of them could cause users to be confused. It is probably easier to them if they get introduced smaller set of UI modifications.
We do the upgrade Java or change of the base OS as independent
operations.
Overall the idea is that if something is breaking, it is easier to
pinpoint the reason (Java version, an OS lib, or the specific
Gerrit minor version). For example starting with a Gerrit 3.10
we would:
- Debian Bullseye > Bookworm
- Switch Java from 17 to 21
- Upgrade Gerrit to 3.11 (supports Java 21)
- Upgrade Gerrit to 3.12 (requires Java 21)
- Upgrade Gerrit to 3.13
All of them as individual maintenances. Of course the plugins
have to be upgraded iteratively as well.
We do backup the git repositories, cache and secondaries indices
(and maybe others).
The release notes are a blessing, they are quite exhaustive
regarding what is new and require ajustements. https://www.gerritcodereview.com/releases-readme.html (and
check the detailed notes of each version that are linked from that
page).
-- Antoine "hashar" Musso Release Engineering