SlideShare a Scribd company logo
1 of 25
Download to read offline
0Virtual Gerrit User Summit 2020 – On-line GerritForge.com 0
What’s new in Gerrit 3.2/3.3
Luca Milanesio
Gerrit Code Review Maintainer
GerritForge
1Virtual Gerrit User Summit 2020 – On-line GerritForge.com 1
About GerritForge
Founded in
the UK
HQ in London with
presence in Europe and
the USA (GerritForge Inc.)
Committed to
OpenSource
and to Gerrit
Code Review
since 2009
2Virtual Gerrit User Summit 2020 – On-line GerritForge.com 2
Gerrit v3.2 in numbers
Source: analytics.gerrithub.io
3Virtual Gerrit User Summit 2020 – On-line GerritForge.com 3
Gerrit v3.3 in numbers
Source: analytics.gerrithub.io
4Virtual Gerrit User Summit 2020 – On-line GerritForge.com 4
Gerrit v3.2/v3.3 vs. previous releases
5Virtual Gerrit User Summit 2020 – On-line GerritForge.com 5
Gerrit 3.2: Java 11
Gerrit officially supported on Java 11 runtime
• Both Java 8 and Java 11 support
• gerrit.war and plugin API distributed on Java 8 bytecode
• This is the last Gerrit distributed for Java 8
Stats of the first 3 months of adoption of Gerrit v3.2
(source: gerrit-ci.gerritforge.com):
72% on Java 11 / 38% on Java 8
6Virtual Gerrit User Summit 2020 – On-line GerritForge.com 6
Gerrit 3.3: Java 11
Gerrit officially distributed for Java 11
• gerrit.war and plugin API distributed on Java 11 bytecode
• Does NOT work out-of-the-box for Java 8 (needs rebuild)
• Incoming changes on stable-3.3 and master: validated for Java 8
• Gerrit plugins have to target Java 11
(Gerrit plugin API distributed on Java 8 only)
7Virtual Gerrit User Summit 2020 – On-line GerritForge.com 7
Gerrit 3.2: Performance
Shawn (RIP) always said:
“performance is a feature, and a very important one”
Mergeability computation behavior
• NEVER
No mergeability flag computation
• REF_UPDATED_AND_CHANGE_REINDEX
(is:mergeable)
• API_REF_UPDATED_AND_CHANGE_REINDEX
(is:mergeable and mergeable in ChangeInfo)
FASTER
SLOWER
8Virtual Gerrit User Summit 2020 – On-line GerritForge.com 8
Gerrit 3.2: Performance
New accounts cache
• External IDs + user name (cached in
ExternalIdCache)
• CachedAccountDetails (newly cached)
• Gerrit’s default settings CachedAccountDetails
(with account-id sharding)
9Virtual Gerrit User Summit 2020 – On-line GerritForge.com 9
Gerrit 3.2: Performance
New external groups cache
• groups_external
Caches all the external groups available to Gerrit
• groups_external_persisted
Caches all external groups available to Gerrit at some
point in history
10Virtual Gerrit User Summit 2020 – On-line GerritForge.com 10
Gerrit 3.2: InstanceId
Optional config for HA and Multi-Site setup
• ServerId <> InstanceId
• Background: why do you need it?
• Use-cases
• Troubleshooting of events across the cluster
• Avoiding double-notifications (e.g. Jira plugin)
• Avoid loops of events (e.g. HA)
Contributed by GerritForge
11Virtual Gerrit User Summit 2020 – On-line GerritForge.com 11
Gerrit 3.2: zero-downtime upgrade
Allow upgrading from v3.1.6+ without downtime
• Requires HA setup with shared repositories
• Flagged as “experimental”
• Successfully test on GerritHub.io upgrade
Contributed by GerritForge
12Virtual Gerrit User Summit 2020 – On-line GerritForge.com 12
Gerrit 3.2: PolyGerrit Polymer 3
Major milestone in front-end modernization
UI improvements
• cherry pick entire topics
• display names (first name or username as default)
• show the entire comment thread in reply dialog
• “Start Review” button added to change view
• in-product reminder to keep discussions respectful
• “Edit” button to the diff view
• editing the commit message as part of a change edit
13Virtual Gerrit User Summit 2020 – On-line GerritForge.com 13
Gerrit 3.2: Permissions
New Revert permission
allow/deny the ability to revert a change through the Gerrit
UI.
The permission is automatically added to the
Registered Users as part of the schema upgradet
14Virtual Gerrit User Summit 2020 – On-line GerritForge.com 14
Gerrit 3.2: PolyGerrit File uploads
Contributed by Wikimedia
15Virtual Gerrit User Summit 2020 – On-line GerritForge.com 15
Gerrit 3.2: is:merge
new is:merge operator for allowing to find changes
that are merge commits.
NOTE: Requires a full reindex of the changes, which may take
quite a long time to compute for large-sized installations.
Contributed by SAP
16Virtual Gerrit User Summit 2020 – On-line GerritForge.com 16
Gerrit 3.2: SSH commands
gerrit set-topic:
set the topic of a change (existing REST-API surfaced via SSH)
gerrit sequence show:
show the current sequences value from All-Projects.git or All-Users.git
gerrit sequence set:
set the next value for sequences in All-Projects.git or All-Users.git
17Virtual Gerrit User Summit 2020 – On-line GerritForge.com 17
Gerrit 3.2: E2E tests
Gerrit source code now has /e2e-tests
• Based on GerritForge’s Gatling-Git plugin
• Framework for plugins’ E2E testing
• Real Gerrit setup with simulations of:
• Gerrit repositories and test-case setups
• REST-API interactions
• Git protocol interactions
Contributed by Ericsson
18Virtual Gerrit User Summit 2020 – On-line GerritForge.com 18
Gerrit 3.2: Native Packages updates
• RPMs for RedHat & CentOS 8.1
• Debs for Debian & Ubuntu 20.04
• Docker image: Java upgraded to OpenJDK 11
• Support for AWS with aws-gerrit
Contributed by GerritForge
19Virtual Gerrit User Summit 2020 – On-line GerritForge.com 19
Gerrit 3.3: Attention-set
Thanks to Ben + UX, PolyGerrit and Backend Teams !!
NOTE: It is enabled by default
20Virtual Gerrit User Summit 2020 – On-line GerritForge.com 20
Gerrit 3.3: Replication improvements
Stabilization of the replication tasks storage + fixes
• Ability to push changes to replicas
• Manage exceptions and NFS quirks for replication tasks storage
• Do not wait for pending replication events on startup
• Multi-server clustering replication (still experimental)
Contributed by Qualcomm
21Virtual Gerrit User Summit 2020 – On-line GerritForge.com 21
Gerrit 3.3: Native Packages updates
RPMs for RedHat & CentOS 8.2
22Virtual Gerrit User Summit 2020 – On-line GerritForge.com 22
Gerrit 3.0 and 2.16: EOL
Gerrit 3.0.x is EOL according to the support policy [1]
Gerrit 2.16 is EOL with exceptions:
receives updates for NoteDb migration, see v2.16.23:
• Huge performance improvement for large repos
• new option --force-state-change-with-skip in the NoteDb
• Fix contention on single database connection
• Update noteDb status in chunks
• Use multiple threads per project for improving the performance
[1] https://www.gerritcodereview.com/support.html
23Virtual Gerrit User Summit 2020 – On-line GerritForge.com 23
Q&A: excited about the future of Gerrit?
Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
24Virtual Gerrit User Summit 2020 – On-line GerritForge.com 24
Wants to know more?
GerritForge.com/contact

More Related Content

What's hot

What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020Noa Harel
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14msohn
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comB1 Systems GmbH
 
Using Git/Gerrit and Jenkins to Manage the Code Review Processord
Using Git/Gerrit and Jenkins to Manage the Code Review ProcessordUsing Git/Gerrit and Jenkins to Manage the Code Review Processord
Using Git/Gerrit and Jenkins to Manage the Code Review ProcessordMarc Karasek
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOpsAhmad Iqbal Ali
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review AnalyticsLuca Milanesio
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturasparkfabrik
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)Pedro Moreira da Silva
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOpsBrice Fernandes
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOpsNicola Baldi
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsNoa Harel
 
You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.Eryk Szymanski
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, futureLuca Milanesio
 
Bringing Pull Request to Gerrit
Bringing Pull Request to GerritBringing Pull Request to Gerrit
Bringing Pull Request to GerritEryk Szymanski
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryLuca Milanesio
 

What's hot (20)

What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020What's New for GitLab CI/CD February 2020
What's New for GitLab CI/CD February 2020
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 
GitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.comGitLab as an Alternative Development Platform for Github.com
GitLab as an Alternative Development Platform for Github.com
 
Using Git/Gerrit and Jenkins to Manage the Code Review Processord
Using Git/Gerrit and Jenkins to Manage the Code Review ProcessordUsing Git/Gerrit and Jenkins to Manage the Code Review Processord
Using Git/Gerrit and Jenkins to Manage the Code Review Processord
 
GitOps with Gitkube
GitOps with GitkubeGitOps with Gitkube
GitOps with Gitkube
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOps
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Introducing GitLab
Introducing GitLabIntroducing GitLab
Introducing GitLab
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastrutturaGitOps: Git come unica fonte di verità per applicazioni e infrastruttura
GitOps: Git come unica fonte di verità per applicazioni e infrastruttura
 
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
GitLab: One Tool for Software Development (2018-02-06 @ SEIUM, Braga, Portugal)
 
Speeding up your team with GitOps
Speeding up your team with GitOpsSpeeding up your team with GitOps
Speeding up your team with GitOps
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
What's New in GitLab and Software Development Trends
What's New in GitLab and Software Development TrendsWhat's New in GitLab and Software Development Trends
What's New in GitLab and Software Development Trends
 
You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.You shall not pass - Control your code quality gates with a wizard.
You shall not pass - Control your code quality gates with a wizard.
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
 
Bringing Pull Request to Gerrit
Bringing Pull Request to GerritBringing Pull Request to Gerrit
Bringing Pull Request to Gerrit
 
Gerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-delivery
 

Similar to Gerrit Code Review v3.2 and v3.3

What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondLuca Milanesio
 
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.3Luca Milanesio
 
git github PPT_GDSCIIITK.pptx
git github PPT_GDSCIIITK.pptxgit github PPT_GDSCIIITK.pptx
git github PPT_GDSCIIITK.pptxAbelPhilipJoseph
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForgeCollabNet
 
Version control git day02
Version control   git day02Version control   git day02
Version control git day02Gourav Varma
 
Presentation on Repository Control System
Presentation on Repository Control SystemPresentation on Repository Control System
Presentation on Repository Control SystemMd. Mujahid Islam
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Joel W. King
 
Version control git day03(amarnath dada)
Version control   git day03(amarnath dada)Version control   git day03(amarnath dada)
Version control git day03(amarnath dada)Gourav Varma
 
Version control git day03
Version control   git day03Version control   git day03
Version control git day03Gourav Varma
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeLuca Milanesio
 
Git And Git Hub.pptx
Git And Git Hub.pptxGit And Git Hub.pptx
Git And Git Hub.pptxMishalBibi
 
2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_finalMythri P K
 
GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15Luca Milanesio
 
Data science Git management
Data science Git managementData science Git management
Data science Git managementArindam Banerjee
 
What should you know about Net Core?
What should you know about Net Core?What should you know about Net Core?
What should you know about Net Core?Damir Dobric
 
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 DockerLuca Milanesio
 

Similar to Gerrit Code Review v3.2 and v3.3 (20)

What's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyondWhat's new in Gerrit Code Review v3.1 and beyond
What's new in Gerrit Code Review v3.1 and beyond
 
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
 
git github PPT_GDSCIIITK.pptx
git github PPT_GDSCIIITK.pptxgit github PPT_GDSCIIITK.pptx
git github PPT_GDSCIIITK.pptx
 
Git/Gerrit with TeamForge
Git/Gerrit with TeamForgeGit/Gerrit with TeamForge
Git/Gerrit with TeamForge
 
Version control git day02
Version control   git day02Version control   git day02
Version control git day02
 
Presentation on Repository Control System
Presentation on Repository Control SystemPresentation on Repository Control System
Presentation on Repository Control System
 
Using Qt under LGPLv3
Using Qt under LGPLv3Using Qt under LGPLv3
Using Qt under LGPLv3
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
Version control git day03(amarnath dada)
Version control   git day03(amarnath dada)Version control   git day03(amarnath dada)
Version control git day03(amarnath dada)
 
Version control git day03
Version control   git day03Version control   git day03
Version control git day03
 
Gerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
 
Gerrit tutorial
Gerrit tutorialGerrit tutorial
Gerrit tutorial
 
Git And Git Hub.pptx
Git And Git Hub.pptxGit And Git Hub.pptx
Git And Git Hub.pptx
 
2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final2015-ghci-presentation-git_gerritJenkins_final
2015-ghci-presentation-git_gerritJenkins_final
 
GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15GerritHub a true Gerrit migration story to v2.15
GerritHub a true Gerrit migration story to v2.15
 
Git presentation
Git presentationGit presentation
Git presentation
 
Data science Git management
Data science Git managementData science Git management
Data science Git management
 
What should you know about Net Core?
What should you know about Net Core?What should you know about Net Core?
What should you know about Net Core?
 
Git Basics
Git BasicsGit Basics
Git Basics
 
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
 

More from Luca Milanesio

Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewLuca Milanesio
 
Gerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-stepGerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-stepLuca Milanesio
 
Gerrit Code Review multi-site
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-siteLuca Milanesio
 
What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0Luca Milanesio
 
Gerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteLuca Milanesio
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubLuca Milanesio
 
Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Luca Milanesio
 
Gerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteLuca Milanesio
 
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 issuesLuca Milanesio
 
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 TimeLuca Milanesio
 
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 ReviewLuca Milanesio
 
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 ReviewLuca Milanesio
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 
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 AnalyticsLuca Milanesio
 
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 AnalyticsLuca Milanesio
 
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 GroovyLuca Milanesio
 
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 MobileLuca Milanesio
 
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 TeamForgeLuca Milanesio
 
GitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewGitBlit plugin for Gerrit Code Review
GitBlit plugin for Gerrit Code ReviewLuca Milanesio
 

More from Luca Milanesio (20)

Cloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code Review
 
Gerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-stepGerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-step
 
Gerrit Code Review multi-site
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-site
 
What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0What's new in Gerrit Code Review 3.0
What's new in Gerrit Code Review 3.0
 
Gerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 Keynote
 
Gerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHub
 
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
 
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
 
Is TDD dead or alive?
Is TDD dead or alive?Is TDD dead or alive?
Is TDD dead or alive?
 
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
 
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
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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...apidays
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
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 2024The Digital Insurer
 
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.pdfhans926745
 
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 educationjfdjdjcjdnsjd
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
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 productivityPrincipled Technologies
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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 StrategiesBoston Institute of Analytics
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 

Gerrit Code Review v3.2 and v3.3

  • 1. 0Virtual Gerrit User Summit 2020 – On-line GerritForge.com 0 What’s new in Gerrit 3.2/3.3 Luca Milanesio Gerrit Code Review Maintainer GerritForge
  • 2. 1Virtual Gerrit User Summit 2020 – On-line GerritForge.com 1 About GerritForge Founded in the UK HQ in London with presence in Europe and the USA (GerritForge Inc.) Committed to OpenSource and to Gerrit Code Review since 2009
  • 3. 2Virtual Gerrit User Summit 2020 – On-line GerritForge.com 2 Gerrit v3.2 in numbers Source: analytics.gerrithub.io
  • 4. 3Virtual Gerrit User Summit 2020 – On-line GerritForge.com 3 Gerrit v3.3 in numbers Source: analytics.gerrithub.io
  • 5. 4Virtual Gerrit User Summit 2020 – On-line GerritForge.com 4 Gerrit v3.2/v3.3 vs. previous releases
  • 6. 5Virtual Gerrit User Summit 2020 – On-line GerritForge.com 5 Gerrit 3.2: Java 11 Gerrit officially supported on Java 11 runtime • Both Java 8 and Java 11 support • gerrit.war and plugin API distributed on Java 8 bytecode • This is the last Gerrit distributed for Java 8 Stats of the first 3 months of adoption of Gerrit v3.2 (source: gerrit-ci.gerritforge.com): 72% on Java 11 / 38% on Java 8
  • 7. 6Virtual Gerrit User Summit 2020 – On-line GerritForge.com 6 Gerrit 3.3: Java 11 Gerrit officially distributed for Java 11 • gerrit.war and plugin API distributed on Java 11 bytecode • Does NOT work out-of-the-box for Java 8 (needs rebuild) • Incoming changes on stable-3.3 and master: validated for Java 8 • Gerrit plugins have to target Java 11 (Gerrit plugin API distributed on Java 8 only)
  • 8. 7Virtual Gerrit User Summit 2020 – On-line GerritForge.com 7 Gerrit 3.2: Performance Shawn (RIP) always said: “performance is a feature, and a very important one” Mergeability computation behavior • NEVER No mergeability flag computation • REF_UPDATED_AND_CHANGE_REINDEX (is:mergeable) • API_REF_UPDATED_AND_CHANGE_REINDEX (is:mergeable and mergeable in ChangeInfo) FASTER SLOWER
  • 9. 8Virtual Gerrit User Summit 2020 – On-line GerritForge.com 8 Gerrit 3.2: Performance New accounts cache • External IDs + user name (cached in ExternalIdCache) • CachedAccountDetails (newly cached) • Gerrit’s default settings CachedAccountDetails (with account-id sharding)
  • 10. 9Virtual Gerrit User Summit 2020 – On-line GerritForge.com 9 Gerrit 3.2: Performance New external groups cache • groups_external Caches all the external groups available to Gerrit • groups_external_persisted Caches all external groups available to Gerrit at some point in history
  • 11. 10Virtual Gerrit User Summit 2020 – On-line GerritForge.com 10 Gerrit 3.2: InstanceId Optional config for HA and Multi-Site setup • ServerId <> InstanceId • Background: why do you need it? • Use-cases • Troubleshooting of events across the cluster • Avoiding double-notifications (e.g. Jira plugin) • Avoid loops of events (e.g. HA) Contributed by GerritForge
  • 12. 11Virtual Gerrit User Summit 2020 – On-line GerritForge.com 11 Gerrit 3.2: zero-downtime upgrade Allow upgrading from v3.1.6+ without downtime • Requires HA setup with shared repositories • Flagged as “experimental” • Successfully test on GerritHub.io upgrade Contributed by GerritForge
  • 13. 12Virtual Gerrit User Summit 2020 – On-line GerritForge.com 12 Gerrit 3.2: PolyGerrit Polymer 3 Major milestone in front-end modernization UI improvements • cherry pick entire topics • display names (first name or username as default) • show the entire comment thread in reply dialog • “Start Review” button added to change view • in-product reminder to keep discussions respectful • “Edit” button to the diff view • editing the commit message as part of a change edit
  • 14. 13Virtual Gerrit User Summit 2020 – On-line GerritForge.com 13 Gerrit 3.2: Permissions New Revert permission allow/deny the ability to revert a change through the Gerrit UI. The permission is automatically added to the Registered Users as part of the schema upgradet
  • 15. 14Virtual Gerrit User Summit 2020 – On-line GerritForge.com 14 Gerrit 3.2: PolyGerrit File uploads Contributed by Wikimedia
  • 16. 15Virtual Gerrit User Summit 2020 – On-line GerritForge.com 15 Gerrit 3.2: is:merge new is:merge operator for allowing to find changes that are merge commits. NOTE: Requires a full reindex of the changes, which may take quite a long time to compute for large-sized installations. Contributed by SAP
  • 17. 16Virtual Gerrit User Summit 2020 – On-line GerritForge.com 16 Gerrit 3.2: SSH commands gerrit set-topic: set the topic of a change (existing REST-API surfaced via SSH) gerrit sequence show: show the current sequences value from All-Projects.git or All-Users.git gerrit sequence set: set the next value for sequences in All-Projects.git or All-Users.git
  • 18. 17Virtual Gerrit User Summit 2020 – On-line GerritForge.com 17 Gerrit 3.2: E2E tests Gerrit source code now has /e2e-tests • Based on GerritForge’s Gatling-Git plugin • Framework for plugins’ E2E testing • Real Gerrit setup with simulations of: • Gerrit repositories and test-case setups • REST-API interactions • Git protocol interactions Contributed by Ericsson
  • 19. 18Virtual Gerrit User Summit 2020 – On-line GerritForge.com 18 Gerrit 3.2: Native Packages updates • RPMs for RedHat & CentOS 8.1 • Debs for Debian & Ubuntu 20.04 • Docker image: Java upgraded to OpenJDK 11 • Support for AWS with aws-gerrit Contributed by GerritForge
  • 20. 19Virtual Gerrit User Summit 2020 – On-line GerritForge.com 19 Gerrit 3.3: Attention-set Thanks to Ben + UX, PolyGerrit and Backend Teams !! NOTE: It is enabled by default
  • 21. 20Virtual Gerrit User Summit 2020 – On-line GerritForge.com 20 Gerrit 3.3: Replication improvements Stabilization of the replication tasks storage + fixes • Ability to push changes to replicas • Manage exceptions and NFS quirks for replication tasks storage • Do not wait for pending replication events on startup • Multi-server clustering replication (still experimental) Contributed by Qualcomm
  • 22. 21Virtual Gerrit User Summit 2020 – On-line GerritForge.com 21 Gerrit 3.3: Native Packages updates RPMs for RedHat & CentOS 8.2
  • 23. 22Virtual Gerrit User Summit 2020 – On-line GerritForge.com 22 Gerrit 3.0 and 2.16: EOL Gerrit 3.0.x is EOL according to the support policy [1] Gerrit 2.16 is EOL with exceptions: receives updates for NoteDb migration, see v2.16.23: • Huge performance improvement for large repos • new option --force-state-change-with-skip in the NoteDb • Fix contention on single database connection • Update noteDb status in chunks • Use multiple threads per project for improving the performance [1] https://www.gerritcodereview.com/support.html
  • 24. 23Virtual Gerrit User Summit 2020 – On-line GerritForge.com 23 Q&A: excited about the future of Gerrit? Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
  • 25. 24Virtual Gerrit User Summit 2020 – On-line GerritForge.com 24 Wants to know more? GerritForge.com/contact