Page MenuHomePhabricator

Upgrade to Gerrit 3.12
Open, Needs TriagePublic

Description

BookwormJava 21Gerrit 3.11Gerrit 3.12Gerrit 3.13

Gerrit 3.12 has been released May 19 2025 (Release plan). This task is to upgrade Gerrit to 3.12.

Executive summary
https://www.gerritcodereview.com/releases-readme.html#312

  • Dropped support for Java 17
  • Site-wide override of copy label conditions
  • Group deletion
  • H2 v2 backend
  • Performance improvements

Release Notes
https://www.gerritcodereview.com/3.12.html

Breaking changes

To be checked

Already identified breaking change:

  • Drop support for Java 17 (require Java 21)

Related Objects

StatusSubtypeAssignedTask
ResolvedNone
OpenNone
OpenNone
OpenNone
ResolvedABran-WMF
ResolvedABran-WMF
OpenNone
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedMatthewVernon
ResolvedLSobanski
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedLSobanski
Resolvedhashar
ResolvedABran-WMF
Resolvedhashar
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
Resolveddancy
ResolvedABran-WMF
DuplicateNone
DuplicateABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedDzahn
ResolvedABran-WMF
ResolvedDzahn
OpenNone
ResolvedJelto
OpenNone
ResolvedJelto
ResolvedMarostegui
ResolvedDzahn
OpenNone
ResolvedDzahn
ResolvedABran-WMF
ResolvedABran-WMF
ResolvedABran-WMF

Event Timeline

Since:

  • Gerrit 3.12 drops support for Java 17 and requires Java 21
  • Debian Bookworm provides Java 17
  • Debian Trixie will provide Java 21

My guess is we will have to either:

  • reimage the Gerrit servers to Debian Trixie with a forward port of Java 17 then switch to java 21
  • Backport Java 21 to Bookworm and switch Java on the existing server (and reimage later).

Jenkins might drop support for Java 17 at some point at the end of 2025 (can be checked at https://www.jenkins.io/doc/book/platform-information/support-policy-java/ ).

we had an early backport done though:

A preliminary backport of Java 21 is now available in component/jdk21, it can already be used to build CAS 7.0.
(It's preliminary package since I had to use a bootstrap package (Bookworm has Java 17, but Java 21 needs Java 20/21 to build, while Java 20 needs Java 19/20 to build etc. pp). Now that the bootstrap dep is imported to the component,I'll next rebuild openjdk-21 using this bootstrap package)

But I think it is fine to wait for Debian Trixie and an "official" backport.

We have a maintained Java 21 backport for Bookworm! It was needed for Apereo CAS which also requires Java 21 and can be found in component/jdk21

As such, I'd propose the following plan instead:

  • Reimage Gerrit servers to Bookworm (Gerrit already uses Java 17 and Bookworm provides it natively)
  • Switch to Java 21 with the move to Gerrit 3.12
  • And when you move to Trixie later, it'll only come with Java 21 anyway

I have filed T392464: Upgrade Gerrit hosts from Bullseye to Bookworm to upgrade to Bookworm :-]

Before or after that we can upgrade to Gerrit 3.11 T379714. Once we have both 3.11 and Bookworm we can switch to Java 21 and after that upgrade to 3.12 (T392448)

hashar updated the task description. (Show Details)

The Checks API has no change (git diff -U0 origin/stable-{3.11,3.12} polygerrit-ui/app/api/checks.ts)

hashar removed subtasks: Restricted Task, Restricted Task.Mar 24 2026, 10:44 AM

@ABran-WMF I have removed the subtasks since they are not blockers for the 3.12 upgrade.

T420822 will be resolved once we upgrade rather than blocking it, it is already marked with Gerrit (Gerrit 3.12) ;-)