SlideShare a Scribd company logo
0
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 0
What’s new in Gerrit 3.1
… and beyond
Luca Milanesio
Gerrit Code Review Maintainer
GerritForge
1
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 1
About GerritForge
Founded in
the UK
HQ in
London
Committed to
OpenSource
+ Sunnyvale
CA
2
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 2
Gerrit v3.1 in numbers
Source: analytics.gerrithub.io
3
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 3
Migration path to v3.1
• v2.14 / ReviewDb
• v2.15 / ReviewDb
• v2.16 / ReviewDb
• v2.16 / NoteDb
•v3.0
•V3.1 https://www.workeastren.co.uk/case-studies/paul-steps-to-success-case-study/
4
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 4
New non-core plugins
Checks (Native CI integration, yeah!)
Multi-site (!!!)
Pull-replication
Zookeeper (global ref consistency)
5
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 5
What’s new in v3.1
Polymer 2.0 and shadow DOM
Git Protocol v2 (secured)
Performance improvement and logging
Stability and Fixes
More CI integration (checks plugin)
6
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 6
Git protocol v2
From https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html
• Server-side filtering of references
• Easy extensibility for new features
7
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 7
Git protocol v2: server-side filtering
From https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html
• Previously: servers responded to all fetch commands with an initial reference
advertisement, listing all references in the repository.
• Sent even when a client only cares about updating a single branch
• Chromium repository (over 500k refs): the server is sending 10s of megabytes of data
that get ignored.
• Projects have seen a performance improvement of 3x for no-op fetches of a single
branch on repositories containing 500k references.
8
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 8
Git protocol v2: done in 3 attempts
See https://groups.google.com/d/topic/repo-discuss/nEkvNVCZzNM/discussion
• v2.16 and v3.0 reverted attempted, because of security vulnerability issues
• Patrick (Google) created PermissionAwareRefDatabase, permission aware repository
abstraction, that will only ever return refs that the user has access to.
• Then Stefano (GerritForge) took over this change and fixed some problems
• Adjustments in JGit, Thanks for review to Matthias (SAP)
• The whole series in Gerrit was reviewed by Han Wen (Google), Thanks!
9
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 9
Git protocol v2: how we tested it
In context of the third attempt to enable Git wire protocol v2 in Gerrit:
• Start the whole nine yard Gerrit server using StandaloneSiteTest base class
• Retrieve both SSH and HTTP ports assigned during server start
• Configure SSH private/public keys for SSH access and upload them to Gerrit using
plugin API
• Configure HTTP passwords for test users using Gerrit plugin API
• Access Gerrit server with git-core client using Java's ProcessBuilder facility
10
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 10
Git protocol v2: how to enable it
In context of the third attempt to enable Git wire protocol v2 in Gerrit:
<gerrit-site>/etc/jgit.config
[protocol]
version = 2
* Verify that recent Git client is installed (v2.18 or later):
$ git --version
git version 2.23.0
* Activate protocol.version 2 in ~/.gitconfig
* Demo Git protocol v2:
$ GIT_TRACE_PACKET=1 git ls-remote https://review.gerrithub.io/GerritCodeReview/bazlets
07:59:25.849401 pkt-line.c:80 packet: git< version 2
11
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 11
Breaking changes in v3.1
Push to refs/drafts/* removed
Push to refs/changes/* removed
12
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 12
Breaking changes in v3.1
JGit config read from
$GERRIT_SITE/etc/jgit.config
(bye bye ~/.gitconfig)
13
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 13
Roadmap to Gerrit v3.2 and beyond
• Pluggable authentication backends
• Group deletion
• Polymer 3
• Introduction of the ”attention set” instead of
assignee
• Robot comments
• Support for apply/fix feature
14
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 14
Roadmap to Gerrit v3.2 and beyond
• Performance improvements
• Git push performance
• PolyGerrit UI latency
• Gerrit caches with caffeine
• Repos with large number of refs (experimental: reftable)
• Faster persistent cache than H2
• Support for large mono-repos
• Support for Java 11
• Better GC algorithm: ZGC
• Support for very large heaps (up to TBytes of memory)
15
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 15
Roadmap to Gerrit v3.2 plugins
• Replication plugin
• Multi-master support
• External replication queue
• Checks plugin
• Support for sub-checks
• Override status
• High-availability plugin
• Integration with global ref-db
• Multiple concurrent writes on all nodes
16
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 16
Q&A: excited about the future of Gerrit?
Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
17
Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 17
Wants to know more?
GerritForge.com/contact

More Related Content

PDF
Gerrit Analytics applied to Android source code
PPTX
Gerrit Code Review migrations step-by-step
PDF
Cloud-native Gerrit Code Review
PDF
Gerrit multi-master / multi-site at GerritHub
PDF
What's new in Gerrit Code Review 3.0
PDF
GerritHub a true Gerrit migration story to v2.15
PDF
Gerrit Code Review multi-site
PPTX
Jenkins plugin for Gerrit Code Review pipelines
Gerrit Analytics applied to Android source code
Gerrit Code Review migrations step-by-step
Cloud-native Gerrit Code Review
Gerrit multi-master / multi-site at GerritHub
What's new in Gerrit Code Review 3.0
GerritHub a true Gerrit migration story to v2.15
Gerrit Code Review multi-site
Jenkins plugin for Gerrit Code Review pipelines

What's hot (20)

PDF
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
PDF
componentDidCatch and Error Boundaries in React v16+
PPTX
From shipping rpms to helm charts - Lessons learned and best practices
PDF
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
PDF
Team Collaboration with GitHub
PDF
GitOps with Gitkube
PDF
Git presentation
PDF
Delivering code with git hub actions
PDF
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
PDF
Open Source Contributions - Alsey Coleman Miller
PDF
SW360 Update Tooling Telco
PDF
Putting data science to work
PPTX
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
PDF
Git and GitHub for RallyOn
PPTX
IBM Agile Engineering Summit 18: How to Integrate IBM Rational® Team Concert ...
PDF
So I Downloaded Qt, Now What?
PDF
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
PPTX
Git - Boost Your DEV Team Speed and Productivity
PDF
Git in 10 minutes (WordCamp London 2018)
PDF
Web analytics with R
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
componentDidCatch and Error Boundaries in React v16+
From shipping rpms to helm charts - Lessons learned and best practices
Git in the Enterprise: How to succeed at DevOps using Git and a monorepo
Team Collaboration with GitHub
GitOps with Gitkube
Git presentation
Delivering code with git hub actions
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
Open Source Contributions - Alsey Coleman Miller
SW360 Update Tooling Telco
Putting data science to work
12th Meeting OpenChain Reference Tooling Work Group - 25th March - Slides
Git and GitHub for RallyOn
IBM Agile Engineering Summit 18: How to Integrate IBM Rational® Team Concert ...
So I Downloaded Qt, Now What?
GeeCon Prague 2018: @SpringCloud @Docker @kubernetesio
Git - Boost Your DEV Team Speed and Productivity
Git in 10 minutes (WordCamp London 2018)
Web analytics with R
Ad

Similar to What's new in Gerrit Code Review v3.1 and beyond (20)

PDF
Gerrit Code Review v3.2 and v3.3
PDF
Git_Git_Lab_1664715263.pdf
PPTX
Spring Projects Infrastructure
PPTX
Spring Projects Infrastructure
PDF
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
PPTX
The-Git-Tutorial.ppt.pptx
PDF
Assign, Commit, and Review
PPTX
Introduction to Git.pptx
PPTX
Gerrit Code Review with GitHub plugin
PDF
DCVCS using GIT
PDF
Starting with Git & GitHub
PDF
Digital Fabrication Studio v.0.2: Version Control System: Files
PPTX
2015-ghci-presentation-git_gerritJenkins_final
PPTX
Git from the trenches
PPTX
You can git
PPTX
Hacktoberfest GDSC Pillai College of Engineering
PPTX
GDSC PCE Hacktoberfest 1.pptx
PPTX
Hacktoberfest GDSC BBBDITM.pptx
PPTX
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review v3.2 and v3.3
Git_Git_Lab_1664715263.pdf
Spring Projects Infrastructure
Spring Projects Infrastructure
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
The-Git-Tutorial.ppt.pptx
Assign, Commit, and Review
Introduction to Git.pptx
Gerrit Code Review with GitHub plugin
DCVCS using GIT
Starting with Git & GitHub
Digital Fabrication Studio v.0.2: Version Control System: Files
2015-ghci-presentation-git_gerritJenkins_final
Git from the trenches
You can git
Hacktoberfest GDSC Pillai College of Engineering
GDSC PCE Hacktoberfest 1.pptx
Hacktoberfest GDSC BBBDITM.pptx
Gerrit Code Review: how to script a plugin with Scala and Groovy
Ad

More from Luca Milanesio (19)

PDF
ChronicleMap non-blocking cache for Gerrit v3.3
PDF
Gerrit User Summit 2019 Keynote
PDF
Gerrit User Summit 2018 - Keynote
PPTX
Gerrit User Summit 2017 Keynote
PPTX
How to keep Jenkins logs forever without performance issues
PPTX
Jenkins Pipeline on your Local Box to Reduce Cycle Time
PPTX
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
PPTX
Stable master workflow with Gerrit Code Review
PPTX
Gerrit Code Review Analytics
PPTX
Zero-Downtime Gerrit Code Review Upgrade
PPTX
Speed up Continuous Delivery with BigData Analytics
PPTX
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
PPTX
Gerrit is Getting Native with RPM, Deb and Docker
PPTX
GerritHub.io - present, past, future
PPTX
Gerrit jenkins-big data-continuous-delivery
PPTX
Is TDD dead or alive?
PPTX
Jenkins User Conference - Continuous Delivery on Mobile
PPTX
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
PPTX
GitBlit plugin for Gerrit Code Review
ChronicleMap non-blocking cache for Gerrit v3.3
Gerrit User Summit 2019 Keynote
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2017 Keynote
How to keep Jenkins logs forever without performance issues
Jenkins Pipeline on your Local Box to Reduce Cycle Time
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review
Stable master workflow with Gerrit Code Review
Gerrit Code Review Analytics
Zero-Downtime Gerrit Code Review Upgrade
Speed up Continuous Delivery with BigData Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Gerrit is Getting Native with RPM, Deb and Docker
GerritHub.io - present, past, future
Gerrit jenkins-big data-continuous-delivery
Is TDD dead or alive?
Jenkins User Conference - Continuous Delivery on Mobile
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge
GitBlit plugin for Gerrit Code Review

Recently uploaded (20)

PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation theory and applications.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Unlocking AI with Model Context Protocol (MCP)
The AUB Centre for AI in Media Proposal.docx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Chapter 3 Spatial Domain Image Processing.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
20250228 LYD VKU AI Blended-Learning.pptx
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation theory and applications.pdf

What's new in Gerrit Code Review v3.1 and beyond

  • 1. 0 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 0 What’s new in Gerrit 3.1 … and beyond Luca Milanesio Gerrit Code Review Maintainer GerritForge
  • 2. 1 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 1 About GerritForge Founded in the UK HQ in London Committed to OpenSource + Sunnyvale CA
  • 3. 2 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 2 Gerrit v3.1 in numbers Source: analytics.gerrithub.io
  • 4. 3 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 3 Migration path to v3.1 • v2.14 / ReviewDb • v2.15 / ReviewDb • v2.16 / ReviewDb • v2.16 / NoteDb •v3.0 •V3.1 https://www.workeastren.co.uk/case-studies/paul-steps-to-success-case-study/
  • 5. 4 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 4 New non-core plugins Checks (Native CI integration, yeah!) Multi-site (!!!) Pull-replication Zookeeper (global ref consistency)
  • 6. 5 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 5 What’s new in v3.1 Polymer 2.0 and shadow DOM Git Protocol v2 (secured) Performance improvement and logging Stability and Fixes More CI integration (checks plugin)
  • 7. 6 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 6 Git protocol v2 From https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html • Server-side filtering of references • Easy extensibility for new features
  • 8. 7 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 7 Git protocol v2: server-side filtering From https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html • Previously: servers responded to all fetch commands with an initial reference advertisement, listing all references in the repository. • Sent even when a client only cares about updating a single branch • Chromium repository (over 500k refs): the server is sending 10s of megabytes of data that get ignored. • Projects have seen a performance improvement of 3x for no-op fetches of a single branch on repositories containing 500k references.
  • 9. 8 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 8 Git protocol v2: done in 3 attempts See https://groups.google.com/d/topic/repo-discuss/nEkvNVCZzNM/discussion • v2.16 and v3.0 reverted attempted, because of security vulnerability issues • Patrick (Google) created PermissionAwareRefDatabase, permission aware repository abstraction, that will only ever return refs that the user has access to. • Then Stefano (GerritForge) took over this change and fixed some problems • Adjustments in JGit, Thanks for review to Matthias (SAP) • The whole series in Gerrit was reviewed by Han Wen (Google), Thanks!
  • 10. 9 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 9 Git protocol v2: how we tested it In context of the third attempt to enable Git wire protocol v2 in Gerrit: • Start the whole nine yard Gerrit server using StandaloneSiteTest base class • Retrieve both SSH and HTTP ports assigned during server start • Configure SSH private/public keys for SSH access and upload them to Gerrit using plugin API • Configure HTTP passwords for test users using Gerrit plugin API • Access Gerrit server with git-core client using Java's ProcessBuilder facility
  • 11. 10 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 10 Git protocol v2: how to enable it In context of the third attempt to enable Git wire protocol v2 in Gerrit: <gerrit-site>/etc/jgit.config [protocol] version = 2 * Verify that recent Git client is installed (v2.18 or later): $ git --version git version 2.23.0 * Activate protocol.version 2 in ~/.gitconfig * Demo Git protocol v2: $ GIT_TRACE_PACKET=1 git ls-remote https://review.gerrithub.io/GerritCodeReview/bazlets 07:59:25.849401 pkt-line.c:80 packet: git< version 2
  • 12. 11 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 11 Breaking changes in v3.1 Push to refs/drafts/* removed Push to refs/changes/* removed
  • 13. 12 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 12 Breaking changes in v3.1 JGit config read from $GERRIT_SITE/etc/jgit.config (bye bye ~/.gitconfig)
  • 14. 13 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 13 Roadmap to Gerrit v3.2 and beyond • Pluggable authentication backends • Group deletion • Polymer 3 • Introduction of the ”attention set” instead of assignee • Robot comments • Support for apply/fix feature
  • 15. 14 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 14 Roadmap to Gerrit v3.2 and beyond • Performance improvements • Git push performance • PolyGerrit UI latency • Gerrit caches with caffeine • Repos with large number of refs (experimental: reftable) • Faster persistent cache than H2 • Support for large mono-repos • Support for Java 11 • Better GC algorithm: ZGC • Support for very large heaps (up to TBytes of memory)
  • 16. 15 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 15 Roadmap to Gerrit v3.2 plugins • Replication plugin • Multi-master support • External replication queue • Checks plugin • Support for sub-checks • Override status • High-availability plugin • Integration with global ref-db • Multiple concurrent writes on all nodes
  • 17. 16 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 16 Q&A: excited about the future of Gerrit? Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
  • 18. 17 Gerrit User Summit 2019 – GerritForge Inc – Sunnyvale CA GerritForge.com 17 Wants to know more? GerritForge.com/contact