blob: d21213aef8efb223ec887117f045a67860a853e9 [file] [log] [blame] [view]
---
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.