SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
Code Matters - Eclipse Hackers Git Guide - EclipseCon France 2014
msohn
 

Was ist angesagt? (20)

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

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

Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
OpenCity Community
 
2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final
Mythri P K
 

Ähnlich wie What's new in Gerrit Code Review v3.1 and beyond (20)

Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3Gerrit Code Review v3.2 and v3.3
Gerrit Code Review v3.2 and v3.3
 
Git_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdfGit_Git_Lab_1664715263.pdf
Git_Git_Lab_1664715263.pdf
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Spring Projects Infrastructure
Spring Projects InfrastructureSpring Projects Infrastructure
Spring Projects Infrastructure
 
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
Assign, commit, and review - A developer’s guide to OpenStack contribution-20...
 
The-Git-Tutorial.ppt.pptx
The-Git-Tutorial.ppt.pptxThe-Git-Tutorial.ppt.pptx
The-Git-Tutorial.ppt.pptx
 
Github
GithubGithub
Github
 
Assign, Commit, and Review
Assign, Commit, and ReviewAssign, Commit, and Review
Assign, Commit, and Review
 
Introduction to Git.pptx
Introduction to Git.pptxIntroduction to Git.pptx
Introduction to Git.pptx
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
DCVCS using GIT
DCVCS using GITDCVCS using GIT
DCVCS using GIT
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Digital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: FilesDigital Fabrication Studio v.0.2: Version Control System: Files
Digital Fabrication Studio v.0.2: Version Control System: Files
 
2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final
 
Git from the trenches
Git from the trenchesGit from the trenches
Git from the trenches
 
You can git
You can gitYou can git
You can git
 
GDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptxGDSC PCE Hacktoberfest 1.pptx
GDSC PCE Hacktoberfest 1.pptx
 
Hacktoberfest GDSC Pillai College of Engineering
Hacktoberfest GDSC Pillai College of EngineeringHacktoberfest GDSC Pillai College of Engineering
Hacktoberfest GDSC Pillai College of Engineering
 
Hacktoberfest GDSC BBBDITM.pptx
Hacktoberfest GDSC BBBDITM.pptxHacktoberfest GDSC BBBDITM.pptx
Hacktoberfest GDSC BBBDITM.pptx
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
 

Mehr von Luca Milanesio

Mehr von Luca Milanesio (19)

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

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

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