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

Luca Milanesio
Luca MilanesioDirector at GerritForge Ltd
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
1 of 18

More Related Content

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

Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3
Luca Milanesio142 views
Git_Git_Lab_1664715263.pdfGit_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdf
AshokChakravarthy272 views
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
Roy Clarkson537 views
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
Gunnar Hillert1.2K views
The-Git-Tutorial.ppt.pptxThe-Git-Tutorial.ppt.pptx
The-Git-Tutorial.ppt.pptx
MohammadSamiuddin125 views
GithubGithub
Github
Jayesh Katta Ramalingaiah259 views
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and Review
Zhongyue Luo2.1K views
Introduction to Git.pptxIntroduction to Git.pptx
Introduction to Git.pptx
gdscuds7 views
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
Luca Milanesio15K views
DCVCS using GITDCVCS using GIT
DCVCS using GIT
Pravat Sutar260 views
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
Nicolás Tourné10.7K views
Git from the trenchesGit from the trenches
Git from the trenches
Nuno Caneco223 views
You can gitYou can git
You can git
Yu GUAN176 views
GDSC PCE Hacktoberfest 1.pptxGDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptx
AnandMenon5410 views
Hacktoberfest GDSC BBBDITM.pptxHacktoberfest GDSC BBBDITM.pptx
Hacktoberfest GDSC BBBDITM.pptx
ArishAhmad999 views
Improving your workflow with gitImproving your workflow with git
Improving your workflow with git
Dídac Ríos251 views

Recently uploaded(20)

CXL at OCPCXL at OCP
CXL at OCP
CXL Forum183 views
ThroughputThroughput
Throughput
Moisés Armani Ramírez28 views

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