---
title: "Gerrit ESC Meeting Minutes"
tags: esc
keywords: esc minutes
permalink: 2021-03-09-esc-minutes.html
summary: "Minutes from the ESC meeting held on Mar 9, 2021"
hide_sidebar: true
hide_navtoggle: true
toc: true
---

## Engineering Steering Committee Meeting, Mar 9, 2021

### Attendees

Ben Rohlfs, Han-Wen Nienhuys, Luca Milanesio, Patrick Hiesel, Saša Živkov

### Place/Date/Duration

Online, Mar 9, 11:00 - 12:00 CET

### Next meeting

Apr 06, 2021 - 11:00 - 12:00 CET

## Minutes

### Gerrit events rewrite and GCloud pub/sub notifications

Han-Wen has proposed [Change-Id: Ia54acb37](https://gerrit-review.googlesource.com/c/gerrit/+/296326)
which represents the beginning of the initiative of having Gerrit
events available over the REST API. The
[previous design in review posted by Alice](https://gerrit-review.googlesource.com/c/homepage/+/280925)
has been abandoned because largely outdated compared to the current
status on Gerrit master.

Luca and GerritForge will drive a redesign targeting Gerrit v3.5.

### Patch-set comment experiment in Gerrit v3.3

The [patch-set level comment](https://www.gerritcodereview.com/3.3.html#new-features)
introduced in Gerrit v3.3 as an experiment could become an official
features in v3.4.

Luca proposed [Change-Id: I57569fb](https://gerrit-review.googlesource.com/c/gerrit/+/291225)
for exposing the additional messages to stream events, so that CI systems can
leverage it. Once the change is merged, both Zuul and Jenkins integrations
would need to consume the new information.

### ElasticSearch moved to SSPL

ElasticSearch moved releases to SSPL starting 7.11. Google is opposed
to SSPL software on principle. SAP also forbids it.

Context [from the ESC in Feb](2021-02-02-esc-minutes.html):
index support started with Lucene and Solr. Solr was clunky,
so collabnet and ericsson worked to move to Elastic, but neither
deployed. Alibaba seems to be using it.

Decision made by the ESC is to freeze the version for now.
Han-Wen has reached out Jacek and Marco and it looks like neither of them
have interest in maintaining it.

Luca will announce the decision to drop the ES support in core, asking
for feedback on the consequences (if any?) on the current Gerrit users.

### Design docs vs code guideline/process

Qualcomm requested to have more clarity on when a design document is
required vs. just submitting the proposal a working code in a Gerrit
change for review.

In the past the community was a lot smaller and Shawn was overseeing
the whole code-base and could have given a lot of guidance without
the need of a lot of input from other contributors.

There is a general consensus though that a short-track of posting
a change with a meaningful commit message could still be good enough
when:

- the change is small and has a limited impact on Gerrit functionality
- introduces a clear and limited functionality
- enables a trivial use-case without edge cases
- the use case suggests a simple, single solution

For all other cases, a design document is still the most valid
approach to trigger the exchange of ideas around the new feature.

### Status of the Gerrit CI pipeline changes

The adoption of [Zuul](https://zuul-ci.org/) continues and the next
step will be the validation of Gerrit changes. Once that is completed,
Zuul can then move into the next steps of:
- Supporting builds on RBE
- Supporting Docker-container based tests

The current [Jenkins-based CI pipeline](https://gerrit-ci.gerritforge.com) will
still be needed though for all the other builds not related to incoming
changes:
- plugins stable builds
- E2E tests
- Other libraries

### Spring cleaning of Gerrit REST-API

The front-end team is tracking which Gerrit API are unused and is
planning to remove them on master, which will become Gerrit v3.4:

- Drop of Polymer2 cruft
- Removal of *some* of 50 different API methods

The initiative is guided by data observed on `*.googlesource.com`
and a list of proposed dropped API will be also posted to repo-discuss.

### Decommission of JSch on Gerrit master

David has driven the initiative of [moving away from JSch](https://gerrit-review.googlesource.com/c/gerrit/+/269976)
and adopting instead Mina SSH client.

Han-Wen has already reviewed and provided the green light, Patrick is now
reviewing the change and finalising the merge.

### Release plan for Gerrit v3.4

David has proposed the [Gerrit v3.4 release plan](https://gerrit-review.googlesource.com/c/homepage/+/298876)
targeting a release date of May 17. The plan looks good and has been approved.

There is a general agreement that we should continue to target Java 11 as a runtime,
keeping the ability to be able to build the code from source on Java 8 as well.

Saša expressed the concern that in Gerrit v3.3 some plugins (e.g. high-availability)
may not be able to compile on Java 8 because of Java 11-only dependencies.
Luca has fixed the issue with the high-availability plugin (global refdb with
java8 classifier) but raised the concern that we cannot force all plugins' developers
to respect that norm.

There is a consensus that core plugins will continue to be compatible with Java 8
at source level, with the recommendation (but not requirement) to do the same for
the other plugins.

### Gerrit v3.3 and double-release on Java 8

Luca presented the data about the adoption of Java 11 on the latest versions of
Gerrit:

- Gerrit v3.3 JVM statistics: 3399 setups (up to 3rd Feb 2021)
  * Java 11 (96.3%)
  * other (3.6%)
  * Java 8 (0.1%)
- Gerrit v3.2 JVM statistics: 5915 setups (up to 3rd Feb 2021)
  * Java 11 (57.2%)
  * Java 8 (41.6%)
  * other (1.2%)

Saša mentioned the need for SAP to keep on having the source code to compile
on Java 8, but not necessarily the requirement to have Java 8 distribution or
binaries except that the referenced libraries should also to be Java 8 compatible
or should be able to be recompiled with Java 8.

The consensus is to keep the current policy of releasing only on Java 11 to keep
the current adoption rate.

### New features on EOL branches

Following the [Change-Id: Ifebae17f](https://gerrit-review.googlesource.com/c/gerrit/+/298880)
proposed by Luca, Han-Wen proposed to make the policy even more restrictive and
ban the introduction of new features in any stable branch.

That should also include 3rd party dependencies (either Google or non-Google ones) unless
they are required to address critical and security bugs.

There is a general consensus that brand-new features should be introduced only on master and,
if needed cherry-picked on a un-maintained private fork should anyone needed on an earlier
stable branch.

### Roadmap updates

- Protobuf in Gerrit events: Google won't be able to finalize this in time for v3.4.
  Background: the introduction was mainly delayed by qcom wanting more justification
  for this migration but also b/c we needed to prototype all field types that
  we have to make sure they translate well.
  Note that the protobuf events is obviated with our notification strategy.
  Google still has an intent to move the API types (`*Info`, `*Input`) to protobuf.
- Luca added to v3.4 the introduction of additional cloud-native events-brokers:
  GCloud PubSub and/or AWS Kinesis.
- Saša mentioned that it would be nice to have a redesign/rewirte of the replication plugin
  code somewhere in the future, even though SAP is planning to switch to pull-replication
  which would leverage Git protocol v2.
