Engineering Steering Committee Meeting, December 1, 2020
Ben Rohlfs, Han-Wen Nienhuys, Patrick Hiesel, Luca Milanesio, Saša Zivkov
Online, December 1, 11:00 - 12:30 CET
The next meeting will be held on January 5, 11:00 CEST.
New community maintainer nomination
Luca nominated a new community maintainer and the ESC discussed and supports the nomination. Luca will send an email to the maintainer mailing list following the official process for nomination.
Reworking the events system
Han-Wen brought up that Google is doing some internal work in Q1 around dispatching events (specifically using Cloud PubSub for googlesource.com hosts).
Some of this work might be applicable to open-source as well and built in core. Mostly, this includes the idea to build a component that can generate events based off of ChangeNotes and two SHA1s by diffing the state between the two SHA1s and emitting events for all actions that happened in between.
Luca expressed interest to collaborate on a larger rewrite of the upstream events system and the aforementioned component and Marcin Czech will engage with him in the exercise.
Saša asked if this work would also enable open-source instances to be hooked up with Google Cloud PubSub. Han-Wen and Patrick stated that this is possible, but would require a bit of glue code in a Gerrit plugin to call Cloud PubSub APIs.
Triaging issues (follow up to Issue 11170, contributor summit)
The ESC discussed if and under what SLA bugs in the project’s public issue tracker are triaged. The Gerrit Frontend team at Google tries to look at frontend bugs as part of their triage, the backend team at Google only looks at issues labeled with googlesource.com indicating that the issue can be reproduced on googlesource.com.
GerritForge does the same with issues related to GerritHub.io and on non-EOL branches on a best-effort basis for the whole community.
The ESCs consensus on this topic is that triage and fixing of issues is done best-effort. If contributors (both individuals and companies) require a guaranteed SLA and on EOL releases, they can either dedicate resources (i.e. contributors to triage and fix issues) or sign a support contract with a company offering consulting (such as GerritForge).
Retrospective: 3.3. Release
Luca led a short retrospective to hear how the release went and what can be improved. Overall, everyone was very happy with how it went and appreciative of the work that the release managers (Luca and Marco) did.
Ben said that the frontend could have been more proactive with merging Typescript changes faster and getting in attention set earlier.
Saša thought that there were quite some discussions going on which looked like more churn than usually. Han-Wen and Patrick said that it looks like this was caused by JGit issues.
There could overall be better tests, especially for longer running JGit operations. Luca will engage with Matthias for a more systematic E2E test of JGit master changes with Gerrit on a regular basis.
API Object migration (POJO -> Proto)
Patrick discussed moving from Plain Old Java Objects (POJO) in the API definitions to using Protocol Buffers (Protos). We already use Protos in different parts in Gerrit (e.g. caches).
This has the benefit that objects are immutable (especially interesting to the events system) and can be reused client side to implement REST API clients in any language without duplicating definitions.
Ben said that the frontend would welcome this move.
The consensus was that we move forward with that migration. Since it’s under the hood, no design doc is required.
James Blair has a design open for the checks plugin. Ben has a tentative plan to hook up the checks plugin with the new CI plugin interface. James is welcome to continue working on the checks plugin, but this work doesn’t require a design doc.
Luca hopes that the work on the pluggable auth backend gets picked up soon by Jacek or anyone else from Digital.ai.
The ESC went over the internal roadmap doc once more and will update the public roadmap soon.
Han-Wen will write a post on the homepage explaining how Google does triage of upstream issues and Luca will do the same for GerritForge.