Yet another year has passed for the Gerrit Code Review project with many challenges posed by the COVID-19 pandemic, new exciting releases, and the most popular Gerrit User Summit with the largest audience ever in its 12 years of history.
2021 in numbers
- 93 registered attendees to the Gerrit Virtual User Summit 2021, connecting from 56 companies over 17 countries, 14 talks showcased by 15 presenters over 2 days
- 1 Gerrit Contributors’ Summit
- 35 releases of which 2 major versions (v3.4.0 and v18.104.22.168) and 33 patches
- 107 contributors from 32 organizations, merging 4763 changes to 84 projects
The Gerrit Code Review community has shown resiliency during these difficult times, with outstanding participation in the events organized during the year, all remote and lacking the much-needed face-to-face interaction.
2021 vs. 2020 trends
- Commits: -26%
- Projects: -16%
- Contributors: -30%
- Companies: -41%
- Average changes/contributor: +10%
The engagement has paid its toll after two years of pandemics with fewer organizations willing to invest time in contributing to Gerrit, possibly also impacted by the uncertainty of the future. 2021 has also been the first whole year of the project without David Pursehouse, one of the Gerrit project’s top #3 contributors. He was used to contributing 1.5k changes per year, which would alone easily justify the drop observed.
On the bright side, the contributors that continued over the year 2021 have shown an increased commitment as the number of active projects and commits has dropped less than the contributors, increasing the change/contributor rate compared to 2020.
Major organisations contributing to Gerrit in 2021
Google is confirmed to be the leading force of the Gerrit Code Review project, with over 62% of the changes merged, while GerritForge continues to be the #1 top contributor from the rest of the community. There are a couple of pleasant special surprises from the contributors.
- Wikimedia Foundation confirmed to be the #2 top contributor from the community, all provided by Paladox who has been awarded Gerrit Maintainer in November.
- SAP continues to be a strong contributor, just below Wikimedia Foundation, with Thomas being awarded Gerrit Maintainer in November.
- Qualcomm is back on the shortlist of the top maintainers, with many new names in the list of contributors, well done!
Top-ten projects with major activity in 2021
- gerrit (2,903 changes)
- plugins/code-owners (447 changes)
- jgit (287 changes)
- plugins/task (83 changes)
- plugins/multi-site (57 changes)
- aws-gerrit (44 changes)
- modules/cache-chroniclemap (40 changes)
- plugins/checks (39 changes)
- plugins/high-availability (39 changes)
- plugins/replication (38 changes)
The first surprise is that the code-owners, the emerging star of the Gerrit plugins, received a massive investment of effort from Edwin (Google), who contributed 89% of the changes to it. The code-owners plugin has also been presented at the Gerrit Virtual User Summit 2021 and attracted the community’s attention.
The second surprise is the decline in contributions in the jgit project during the past two years: from 820 changes/year is now down to 374 changes in 2021.
Task is now the #2 plugin project in terms of merged changes in 2021. Qualcomm keeps the project’s full ownership with 98.9% of changes in 2021.
GerritForge confirm their commitment to improving Gerrit Multi-Site, as its plugin is the #3 in terms of changes merged in 2021.
Aws-gerrit is a relatively new project, presented less than two years ago and contributed by GerritForge, who contributed over 99% of the changes. It confirms to be a very active project that has helped the Gerrit Code Review open-source project deploy and test well-known “recipes” of infrastructure setups and see how Gerrit performs and works on those. Many bugs have been detected before the release and identified by the aws-gerrit project and CI integration.
The cache-chroniclemap module confirms to be very active in 2021, with 40 changes all provided by GerritForge. This relatively new module allows existing Gerrit setups to increase the overall performance of all persistent caches, which are vital in reducing the REST-API latency across all Gerrit features.
The checks plugin was deprecated back in 2020. However, it still shows significant changes and investment from Google in supporting the new Gerrit checks-API and UI. However, the rate of contributions is in stiff decline, down from the 324 changes in 2019 when it was still an actively developed project.
The last two plugins projects in the top tens are the replication and high-availability plugins, which has received major contributions from Qualcomm, GerritForge, Google and Ericsson.
Top events in 2021
The Gerrit Code Review community abandoned the idea of a face-to-face event in 2021 because of the continued global pandemic of COVID-19.
Instead, there were two separate virtual events for sharing the news of what is happening on the platform and the expectations from the community.
Virtual Gerrit Contributors’ Summit – 9th of June
The summit was organized by the Gerrit Community Managers and had an amazing audience amongst the contributors. The presentations showed what different teams are working on and reported into the summit notes:
- GerritForge’s initiative of making Gerrit Code Review a cloud-native service
- SAP’s work on supporting case-insensitive usernames in Gerrit v3.5
- Recent performance improvements in JGit by Google
- docker-based replicator service by SAP
- Han-Wen’s work and the current status of integrating reftable in Git
- Edwin showed his demo on the code-owners plugin
- Google’s work on replacing Prolog with composable Submit Requirements in Gerrit
- Google’s improvements on the Gerrit UI
- Han-Wen showed how Google is managing consistency using GCloud pubsub
Gerrit Virtual User Summit 2021 – 2-3 of December
It was the first experiment of an entirely Virtual User Summit of the Gerrit Code Review project history. The challenges were multiple, including the limitations of allowing up to 100s of attendees, shortening the overall time to 3h x 2 days, and still allowing some interactions between the audience and the presenters. After two years of silence, we have finally received some user stories of using Gerrit in the wild.
The Summit has received vast overall positive feedback and rated 7.9/10, making it a fantastic achievement. The quality and interest of the talks were scored even higher, reaching 8.2/10.
The talks have been fully recorded and published on the GerritForge TV channel:
- Luca (GerritForge) and Milutin (Google) presented what’s new in Gerrit v3.4 and v3.5
- Google showed the brand-new Checks UI and its capabilities using the Checks API
- Google also introduced the current status of the Submit Requirements and how the next forthcoming Gerrit v3.6 will allow a fully Prolog-less submit rules
- Edwin demoed the code-owners and its shiny UI
- Paul (CUE open-source project), showed how they use Gerrit hosted by GerritHub.io and the GitHub actions for their CI validation pipeline.
- Ian Gauthier (Flywheel.io), presented his study results on the effectiveness of using historical reviews as criteria for selecting reviewers for new changes.
- Qualcomm presented the status of their migration endeavor from v2.7 to the latest version of Gerrit, and the associated performance improvements contributed to the Gerrit open-source project.
- Luca (GerritForge) presented his work and discoveries on Gerrit’s bottlenecks with large mono-repos and some ideas on overcoming some of them.
- Shane McIntosh (University of Waterloo – Canada), presented the research work of its Software REBELs group on data analysis on code reviews.
- Marcin (GerritForge) showed the work done in implementing a brand-new plugin that promises msec latencies for replicating repositories 1000x faster than the current replication plugin.
- Tony (GerritForge) presented the aws-gerrit project, and the recent improvements in integrating Gerrit Code Review API and Git/HTTP calls with AWS’s X-Ray for performance and latency analysis.
- Ponch (GerritForge) also presented how to leverage AWS’s Kinesis Streams for sending Gerrit’s stream events using a reliable cloud-native pubsub system.
It was definitely a lot of information and sharing, which showed that the Gerrit Code Review open-source project is alive and active more than ever.
Gerrit features highlights in 2021
Gerrit Code Review has major innovations developed and decisions made over 2021. See below a short recap of the ones that represent a turning point in the evolution of the Gerrit open-source project. Some of them are considered breaking changes and, therefore, need careful analysis and a planned upgrade path.
Speed up of Gerrit upgrade from v2.7 to the latest version
2021 has seen a significant increase in the cooperation and contributions of Qualcomm to the rest of the Gerrit Code Review community, focussed on the speed-up of the Gerrit upgrade process from v2.7 to v3.5.
The contributions and cooperation have brought many improvements to JGit and Gerrit and will allow many more companies to migrate faster and smoother than ever before.
Goodbye to Java 8
From Gerrit v3.5 onwards, the source code and binaries of Gerrit Code Review won’t be compatible with Java 8 anymore.
JSch SSH library is completed removed from Gerrit Code Review
The quirks and obsolescence of the JSch library has cursed Gerrit’s destiny for years. Thanks to Thomas Wolf (Paranor) JGit moved away from it and rebuilt all its Git/SSH stack on top of Apache Mina. That has allowed to remove the JSch library from the Gerrit dependencies and used the Apache Mina SSHD client stack instead.
ElasticSearch is removed from Gerrit Code Review
On the 2nd of February 2021, Elasticsearch B.V. changed its license model and abandoned the Apache 2.0 open-source license for the new versions of ElasticSearch v8 and over.
Gerrit cannot include or require any commercial product not released under one of the open-source licenses allowed by the project. The ElasticSearch backend has not been widely used in the community anyway, based on a recent survey sent to the community therefore the ESC decided on the 3rd of November that the ElasticSearch backend will be removed from Gerrit core and moved into a libModule.
Submit Requirements waving goodbye to Prolog
The Gerrit Code Review project does not use anymore Prolog rules for the submit rules of the project from the 16th of December. The support for Prolog-less submit rules is now mature and it will be part of the forthcoming v3.6 release in 2022.
What’s coming in 2022?
The future of Gerrit Code Review is bright and full of innovative ideas and improvements on the overall development and CI/CD lifecycle. With the forced remote working of millions of developers worldwide, more and more companies are looking on how to make remote interactions more useful and fruitful, reducing frictions and making the workflow smoother and faster more than ever.
Stay tuned and keep on using and contributing to Gerrit Code Review, one of the most innovative and productive platforms for code review and collaboration.