What's new in Gerrit Code Review 3.0

Luca Milanesio
Luca MilanesioDirector at GerritForge Ltd
0Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 0
What’s new in Gerrit 3.0
… and beyond
Luca Milanesio
Gerrit Code Review Maintainer
GerritForge
1Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 1
About GerritForge
Founded in the
UK
HQ in London Committed to
OpenSource
2Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 2
New features PolyGerrit is THE Gerrit UI
GWT is gone
FOREVER
3Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 3
PolyGerrit in-line Edit
Codemirror
Syntax highlight
4Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 4
PolyGerrit goodies
Dark Mode
Custom Themes
5Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 5
PolyGerrit Mobile / Tablet view
Fluid Layout
6Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 6
PolyGerrit JavaScript plugins (e.g. Checks)
UI
extension
points for
plugins
7Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 7
PolyGerrit out of the box experience
First steps
Help for new
users
8Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 8
Notedb happened
NoteDB = NO(te) DB
9Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 9
The journey to v3.0
Dave Borowitz – Gerrit User Summit 2017
10Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 10
The journey to v3.0
Dave Borowitz – Gerrit User Summit 2017
Gerrit 2.16
Gerrit 3.0
2019
11Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 11
Migration path v3.0
• v2.14 / ReviewDb
• v2.15 / ReviewDb
• v2.16 / ReviewDb
• v2.16 / NoteDb
•v3.0
https://www.workeastren.co.uk/case-studies/paul-steps-to-success-case-study/
12Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 12
NoteDb the most innovative feature of Gerrit
Commits + Reviews + Meta-data
Accounts + Groups
è ALL stored in Git
13Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 13
NoteDb fully consistent backups
Online backups
100% consistency
14Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 14
NoteDb remove single-point-of-failure
ONE LESS
point of failure (DBMS)
15Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 15
NoteDb on-line migrations
NO MORE Schema Migration
zero-downtime upgrade
16Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 16
NoteDb disaster recovery
Replication
to DR site
of ALL Gerrit data
17Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 17
NoteDb full audit and compliance
Account history
Groups history
Review history
ALL in Git repo as JSON
18Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 18
NoteDb full security
ALL objects protected
with uniform ACLs
And Group-based access
19Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 19
NoteDb allow data insight and analytics
Expose ALL reviews
Data as JSON
for analytics
20Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 20
NoteDb increased performance and low latency
Read code and reviews
In the same JGit access
and cache
21Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 21
NoteDb example
$ git fetch origin refs/changes/95/218095/meta && git log -p FETCH_HEAD
commit ac3c2780a9737356e3a494f772570608ca5fb66b
Author: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153>
Date: Mon Mar 18 17:54:15 2019 +0000
Update patch set 1
Change has been successfully merged by Luca Milanesio
Patch-set: 1
Status: merged
Tag: autogenerated:gerrit:merged
Reviewer: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153>
Label: SUBM=+1
Submission-id: 18095-1552931655231-726b23a
Submitted-with: OK
Submitted-with: OK: Verified: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153>
Submitted-with: OK: Code-Review: Gerrit User 1029953 <1029953@173816e5-2b9a-37c3-8a2e-48639d4f1153>
commit 92b2da48565dc807cb88a8df190452add9b150b2
Author: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153>
Date: Mon Mar 18 17:54:11 2019 +0000
Update patch set 1
Patch Set 1: Verified+1
22Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 22
Submit Rules bye bye PROLOG
Submit rules extension point
In ANY language
(also PROLOG)
23Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 23
Submit Rules PROLOG
submit_rule(submit(R)) :-
gerrit:unresolved_comments_count(0),
!,
gerrit:uploader(U),
R = label('All-Comments-Resolved', ok(U)).
submit_rule(submit(R)) :-
gerrit:unresolved_comments_count(U),
U > 0,
R = label('All-Comments-Resolved', need(_)).
24Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 24
Submit Rules Java
public class NoUnresolvedCommentsRule implements SubmitRule {
private static final SubmitRequirement REQUIREMENT =
SubmitRequirement.builder()
.setType("unresolved_comments")
.setFallbackText("Resolve all comments")
.build();
@Override
public Collection<SubmitRecord> evaluate(ChangeData cd, SubmitRuleOptions options) {
Integer unresolvedComments = cd.unresolvedCommentCount();
SubmitRecord sr = new SubmitRecord();
sr.requirements = Collections.singletonList(REQUIREMENT);
sr.status =
unresolvedComments == null || unresolvedComments > 0
? SubmitRecord.Status.NOT_READY
: SubmitRecord.Status.OK;
return ImmutableList.of(sr);
}
}
25Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 25
Core plugins plugin manager
Discover and install with one click
26Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 26
More core plugins
Gitiles (!)
Delete-project (finally !!)
WebHooks (yeah !)
27Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 27
Native Packages updates
RPMs for RedHat & CentOS 7.6
Debs for Debian & Ubuntu 18.04
Support for Docker in production
28Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 28
What’s coming in v3.1
Polymer 2.0
Git Protocol v2 (secured)
Performance
Stability and Fixes
More CI integration
29Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 29
Q&A: excited about the future of Gerrit?
Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
30Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 30
Wants to know more?
GerritForge.com/contact
1 of 31

Recommended

Gerrit Code Review multi-site by
Gerrit Code Review multi-siteGerrit Code Review multi-site
Gerrit Code Review multi-siteLuca Milanesio
1.1K views16 slides
Gerrit multi-master / multi-site at GerritHub by
Gerrit multi-master / multi-site at GerritHubGerrit multi-master / multi-site at GerritHub
Gerrit multi-master / multi-site at GerritHubLuca Milanesio
908 views17 slides
Gerrit: how to cook a plugin in only 10 mins by
Gerrit: how to cook a plugin in only 10 minsGerrit: how to cook a plugin in only 10 mins
Gerrit: how to cook a plugin in only 10 minsLuca Milanesio
10.9K views26 slides
Gitlab, GitOps & ArgoCD by
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDHaggai Philip Zagury
325 views37 slides
GitLab.pptx by
GitLab.pptxGitLab.pptx
GitLab.pptxLeoulZewelde1
323 views16 slides
Dependency injection using Google guice by
Dependency injection using Google guiceDependency injection using Google guice
Dependency injection using Google guiceAman Verma
177 views37 slides

More Related Content

What's hot

Introduction to Gitlab by
Introduction to GitlabIntroduction to Gitlab
Introduction to GitlabJulien Pivotto
20.7K views22 slides
Gerrit Code Review by
Gerrit Code ReviewGerrit Code Review
Gerrit Code ReviewLuca Milanesio
23K views45 slides
Git training v10 by
Git training v10Git training v10
Git training v10Skander Hamza
920 views64 slides
Git Branching Model by
Git Branching ModelGit Branching Model
Git Branching ModelLemi Orhan Ergin
138.9K views34 slides
Intro to Git and GitHub by
Intro to Git and GitHubIntro to Git and GitHub
Intro to Git and GitHubPanagiotis Papadopoulos
2.7K views31 slides
5 things you didn't know nginx could do by
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could dosarahnovotny
8.9K views31 slides

What's hot(20)

Introduction to Gitlab by Julien Pivotto
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
Julien Pivotto20.7K views
5 things you didn't know nginx could do by sarahnovotny
5 things you didn't know nginx could do5 things you didn't know nginx could do
5 things you didn't know nginx could do
sarahnovotny8.9K views
Introducing GitLab (June 2018) by Noa Harel
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
Noa Harel5.9K views
Solr Exchange: Introduction to SolrCloud by thelabdude
Solr Exchange: Introduction to SolrCloudSolr Exchange: Introduction to SolrCloud
Solr Exchange: Introduction to SolrCloud
thelabdude6.9K views
Operator SDK for K8s using Go by CloudOps2005
Operator SDK for K8s using GoOperator SDK for K8s using Go
Operator SDK for K8s using Go
CloudOps20051.6K views
Git tutorial by Elli Kanal
Git tutorialGit tutorial
Git tutorial
Elli Kanal4.8K views
What is jenkins by linuxdady
What is jenkinsWhat is jenkins
What is jenkins
linuxdady451 views
Introducing GitLab (September 2018) by Noa Harel
Introducing GitLab (September 2018)Introducing GitLab (September 2018)
Introducing GitLab (September 2018)
Noa Harel223 views
Introduction to Google Guice by Knoldus Inc.
Introduction to Google GuiceIntroduction to Google Guice
Introduction to Google Guice
Knoldus Inc.4.4K views
Introduction to git flow by Knoldus Inc.
Introduction to git flowIntroduction to git flow
Introduction to git flow
Knoldus Inc.281 views
如何與 Git 優雅地在樹上唱歌 by Mu Chun Wang
如何與 Git 優雅地在樹上唱歌如何與 Git 優雅地在樹上唱歌
如何與 Git 優雅地在樹上唱歌
Mu Chun Wang4.5K views

Similar to What's new in Gerrit Code Review 3.0

Gerrit User Summit 2019 Keynote by
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 KeynoteLuca Milanesio
296 views7 slides
What's new in Gerrit Code Review v3.1 and beyond by
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
231 views18 slides
GerritHub a true Gerrit migration story to v2.15 by
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
438 views18 slides
Cloud-native Gerrit Code Review by
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code ReviewLuca Milanesio
229 views24 slides
Magento Commerce Global contribution day 2020 by
Magento Commerce Global contribution day 2020Magento Commerce Global contribution day 2020
Magento Commerce Global contribution day 2020Slava Mankivski
129 views23 slides
Gerrit Analytics applied to Android source code by
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source codeLuca Milanesio
241 views26 slides

Similar to What's new in Gerrit Code Review 3.0(20)

Gerrit User Summit 2019 Keynote by Luca Milanesio
Gerrit User Summit 2019 KeynoteGerrit User Summit 2019 Keynote
Gerrit User Summit 2019 Keynote
Luca Milanesio296 views
What's new in Gerrit Code Review v3.1 and beyond by Luca Milanesio
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
Luca Milanesio231 views
GerritHub a true Gerrit migration story to v2.15 by Luca Milanesio
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
Luca Milanesio438 views
Cloud-native Gerrit Code Review by Luca Milanesio
Cloud-native Gerrit Code ReviewCloud-native Gerrit Code Review
Cloud-native Gerrit Code Review
Luca Milanesio229 views
Magento Commerce Global contribution day 2020 by Slava Mankivski
Magento Commerce Global contribution day 2020Magento Commerce Global contribution day 2020
Magento Commerce Global contribution day 2020
Slava Mankivski129 views
Gerrit Analytics applied to Android source code by Luca Milanesio
Gerrit Analytics applied to Android source codeGerrit Analytics applied to Android source code
Gerrit Analytics applied to Android source code
Luca Milanesio241 views
Gerrit Code Review migrations step-by-step by Luca Milanesio
Gerrit Code Review migrations step-by-stepGerrit Code Review migrations step-by-step
Gerrit Code Review migrations step-by-step
Luca Milanesio311 views
Gerrit Code Review v3.2 and v3.3 by Luca Milanesio
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
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23 by msohn
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
msohn848 views
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps by BizTalk360
Building Enterprise Integration scenarios with the SAP Connector for Logic AppsBuilding Enterprise Integration scenarios with the SAP Connector for Logic Apps
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
BizTalk3601.3K views
Git - Boost Your DEV Team Speed and Productivity by KMS Technology
Git - Boost Your DEV Team Speed and ProductivityGit - Boost Your DEV Team Speed and Productivity
Git - Boost Your DEV Team Speed and Productivity
KMS Technology1.6K views
[HCM-August 13] Tech Talk on Git: Use Git to Boost Your Dev Team's Speed and ... by ITviec
[HCM-August 13] Tech Talk on Git: Use Git to Boost Your Dev Team's Speed and ...[HCM-August 13] Tech Talk on Git: Use Git to Boost Your Dev Team's Speed and ...
[HCM-August 13] Tech Talk on Git: Use Git to Boost Your Dev Team's Speed and ...
ITviec3.7K views
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ... by Igalia
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
Igalia1.5K views
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials by jazoon13
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -EssentialsJAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
jazoon133.3K views
Quebec - 16 November 2022 - Canada CNCF Meetups.pdf by prune1
Quebec - 16 November 2022 - Canada CNCF Meetups.pdfQuebec - 16 November 2022 - Canada CNCF Meetups.pdf
Quebec - 16 November 2022 - Canada CNCF Meetups.pdf
prune129 views
Reporting Server_Reporting Server Domains - OpenbravoWiki.pdf by Abul Khayer
Reporting Server_Reporting Server Domains - OpenbravoWiki.pdfReporting Server_Reporting Server Domains - OpenbravoWiki.pdf
Reporting Server_Reporting Server Domains - OpenbravoWiki.pdf
Abul Khayer5 views
gitopsthekubernetesway-201026090439.pdf by saraichiba2
gitopsthekubernetesway-201026090439.pdfgitopsthekubernetesway-201026090439.pdf
gitopsthekubernetesway-201026090439.pdf
saraichiba23 views
Gitops: the kubernetes way by sparkfabrik
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
sparkfabrik2.1K views
Meetup #7 Voiture Connectée et Autonome à Paris by Laurent Dunys
Meetup #7 Voiture Connectée et Autonome à ParisMeetup #7 Voiture Connectée et Autonome à Paris
Meetup #7 Voiture Connectée et Autonome à Paris
Laurent Dunys1.3K views

More from Luca Milanesio

ChronicleMap non-blocking cache for Gerrit v3.3 by
ChronicleMap non-blocking cache for Gerrit v3.3ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3Luca Milanesio
85 views17 slides
Gerrit User Summit 2018 - Keynote by
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote Luca Milanesio
588 views14 slides
Jenkins plugin for Gerrit Code Review pipelines by
Jenkins plugin for Gerrit Code Review pipelinesJenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelinesLuca Milanesio
1K views14 slides
Gerrit User Summit 2017 Keynote by
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 KeynoteLuca Milanesio
495 views17 slides
How to keep Jenkins logs forever without performance issues by
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
1.1K views18 slides
Jenkins Pipeline on your Local Box to Reduce Cycle Time by
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
498 views20 slides

More from Luca Milanesio(20)

ChronicleMap non-blocking cache for Gerrit v3.3 by Luca Milanesio
ChronicleMap non-blocking cache for Gerrit v3.3ChronicleMap non-blocking cache for Gerrit v3.3
ChronicleMap non-blocking cache for Gerrit v3.3
Luca Milanesio85 views
Gerrit User Summit 2018 - Keynote by Luca Milanesio
Gerrit User Summit 2018 - Keynote Gerrit User Summit 2018 - Keynote
Gerrit User Summit 2018 - Keynote
Luca Milanesio588 views
Jenkins plugin for Gerrit Code Review pipelines by Luca Milanesio
Jenkins plugin for Gerrit Code Review pipelinesJenkins plugin for Gerrit Code Review pipelines
Jenkins plugin for Gerrit Code Review pipelines
Luca Milanesio1K views
Gerrit User Summit 2017 Keynote by Luca Milanesio
Gerrit User Summit 2017 KeynoteGerrit User Summit 2017 Keynote
Gerrit User Summit 2017 Keynote
Luca Milanesio495 views
How to keep Jenkins logs forever without performance issues by Luca Milanesio
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
Luca Milanesio1.1K views
Jenkins Pipeline on your Local Box to Reduce Cycle Time by Luca Milanesio
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
Luca Milanesio498 views
Jenkins world 2017 - Data-Driven CI Pipeline with Gerrit Code Review by Luca Milanesio
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
Luca Milanesio1.1K views
Stable master workflow with Gerrit Code Review by Luca Milanesio
Stable master workflow with Gerrit Code ReviewStable master workflow with Gerrit Code Review
Stable master workflow with Gerrit Code Review
Luca Milanesio1.9K views
Gerrit Code Review Analytics by Luca Milanesio
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
Luca Milanesio3.9K views
Zero-Downtime Gerrit Code Review Upgrade by Luca Milanesio
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
Luca Milanesio3.4K views
Speed up Continuous Delivery with BigData Analytics by Luca Milanesio
Speed up Continuous Delivery with BigData AnalyticsSpeed up Continuous Delivery with BigData Analytics
Speed up Continuous Delivery with BigData Analytics
Luca Milanesio1.1K views
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics by Luca Milanesio
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
Luca Milanesio1.3K views
Gerrit is Getting Native with RPM, Deb and Docker by Luca Milanesio
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
Luca Milanesio3.2K views
GerritHub.io - present, past, future by Luca Milanesio
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
Luca Milanesio8.2K views
Gerrit jenkins-big data-continuous-delivery by Luca Milanesio
Gerrit jenkins-big data-continuous-deliveryGerrit jenkins-big data-continuous-delivery
Gerrit jenkins-big data-continuous-delivery
Luca Milanesio1.7K views
Gerrit Code Review with GitHub plugin by Luca Milanesio
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
Luca Milanesio15K views
Gerrit Code Review: how to script a plugin with Scala and Groovy by Luca Milanesio
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
Luca Milanesio3.5K views
Jenkins User Conference - Continuous Delivery on Mobile by Luca Milanesio
Jenkins User Conference - Continuous Delivery on MobileJenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on Mobile
Luca Milanesio2.9K views
Mobile Application Lifecycle with Jekins, Trello and CollabNet TeamForge by Luca Milanesio
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
Luca Milanesio7.6K views

Recently uploaded

How the World's Leading Independent Automotive Distributor is Reinventing Its... by
How the World's Leading Independent Automotive Distributor is Reinventing Its...How the World's Leading Independent Automotive Distributor is Reinventing Its...
How the World's Leading Independent Automotive Distributor is Reinventing Its...NUS-ISS
15 views25 slides
Throughput by
ThroughputThroughput
ThroughputMoisés Armani Ramírez
36 views11 slides
STPI OctaNE CoE Brochure.pdf by
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
12 views1 slide
Perth MeetUp November 2023 by
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023 Michael Price
15 views44 slides
Web Dev - 1 PPT.pdf by
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdfgdsczhcet
55 views45 slides
Attacking IoT Devices from a Web Perspective - Linux Day by
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day Simone Onofri
15 views68 slides

Recently uploaded(20)

How the World's Leading Independent Automotive Distributor is Reinventing Its... by NUS-ISS
How the World's Leading Independent Automotive Distributor is Reinventing Its...How the World's Leading Independent Automotive Distributor is Reinventing Its...
How the World's Leading Independent Automotive Distributor is Reinventing Its...
NUS-ISS15 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb12 views
Perth MeetUp November 2023 by Michael Price
Perth MeetUp November 2023 Perth MeetUp November 2023
Perth MeetUp November 2023
Michael Price15 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet55 views
Attacking IoT Devices from a Web Perspective - Linux Day by Simone Onofri
Attacking IoT Devices from a Web Perspective - Linux Day Attacking IoT Devices from a Web Perspective - Linux Day
Attacking IoT Devices from a Web Perspective - Linux Day
Simone Onofri15 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
RADIUS-Omnichannel Interaction System by RADIUS
RADIUS-Omnichannel Interaction SystemRADIUS-Omnichannel Interaction System
RADIUS-Omnichannel Interaction System
RADIUS15 views
DALI Basics Course 2023 by Ivory Egg
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023
Ivory Egg14 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada121 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin75 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi120 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS37 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software225 views
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica... by NUS-ISS
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
NUS-ISS16 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk88 views

What's new in Gerrit Code Review 3.0

  • 1. 0Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 0 What’s new in Gerrit 3.0 … and beyond Luca Milanesio Gerrit Code Review Maintainer GerritForge
  • 2. 1Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 1 About GerritForge Founded in the UK HQ in London Committed to OpenSource
  • 3. 2Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 2 New features PolyGerrit is THE Gerrit UI GWT is gone FOREVER
  • 4. 3Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 3 PolyGerrit in-line Edit Codemirror Syntax highlight
  • 5. 4Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 4 PolyGerrit goodies Dark Mode Custom Themes
  • 6. 5Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 5 PolyGerrit Mobile / Tablet view Fluid Layout
  • 7. 6Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 6 PolyGerrit JavaScript plugins (e.g. Checks) UI extension points for plugins
  • 8. 7Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 7 PolyGerrit out of the box experience First steps Help for new users
  • 9. 8Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 8 Notedb happened NoteDB = NO(te) DB
  • 10. 9Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 9 The journey to v3.0 Dave Borowitz – Gerrit User Summit 2017
  • 11. 10Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 10 The journey to v3.0 Dave Borowitz – Gerrit User Summit 2017 Gerrit 2.16 Gerrit 3.0 2019
  • 12. 11Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 11 Migration path v3.0 • v2.14 / ReviewDb • v2.15 / ReviewDb • v2.16 / ReviewDb • v2.16 / NoteDb •v3.0 https://www.workeastren.co.uk/case-studies/paul-steps-to-success-case-study/
  • 13. 12Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 12 NoteDb the most innovative feature of Gerrit Commits + Reviews + Meta-data Accounts + Groups è ALL stored in Git
  • 14. 13Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 13 NoteDb fully consistent backups Online backups 100% consistency
  • 15. 14Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 14 NoteDb remove single-point-of-failure ONE LESS point of failure (DBMS)
  • 16. 15Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 15 NoteDb on-line migrations NO MORE Schema Migration zero-downtime upgrade
  • 17. 16Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 16 NoteDb disaster recovery Replication to DR site of ALL Gerrit data
  • 18. 17Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 17 NoteDb full audit and compliance Account history Groups history Review history ALL in Git repo as JSON
  • 19. 18Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 18 NoteDb full security ALL objects protected with uniform ACLs And Group-based access
  • 20. 19Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 19 NoteDb allow data insight and analytics Expose ALL reviews Data as JSON for analytics
  • 21. 20Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 20 NoteDb increased performance and low latency Read code and reviews In the same JGit access and cache
  • 22. 21Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 21 NoteDb example $ git fetch origin refs/changes/95/218095/meta && git log -p FETCH_HEAD commit ac3c2780a9737356e3a494f772570608ca5fb66b Author: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153> Date: Mon Mar 18 17:54:15 2019 +0000 Update patch set 1 Change has been successfully merged by Luca Milanesio Patch-set: 1 Status: merged Tag: autogenerated:gerrit:merged Reviewer: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153> Label: SUBM=+1 Submission-id: 18095-1552931655231-726b23a Submitted-with: OK Submitted-with: OK: Verified: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153> Submitted-with: OK: Code-Review: Gerrit User 1029953 <1029953@173816e5-2b9a-37c3-8a2e-48639d4f1153> commit 92b2da48565dc807cb88a8df190452add9b150b2 Author: Gerrit User 1006192 <1006192@173816e5-2b9a-37c3-8a2e-48639d4f1153> Date: Mon Mar 18 17:54:11 2019 +0000 Update patch set 1 Patch Set 1: Verified+1
  • 23. 22Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 22 Submit Rules bye bye PROLOG Submit rules extension point In ANY language (also PROLOG)
  • 24. 23Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 23 Submit Rules PROLOG submit_rule(submit(R)) :- gerrit:unresolved_comments_count(0), !, gerrit:uploader(U), R = label('All-Comments-Resolved', ok(U)). submit_rule(submit(R)) :- gerrit:unresolved_comments_count(U), U > 0, R = label('All-Comments-Resolved', need(_)).
  • 25. 24Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 24 Submit Rules Java public class NoUnresolvedCommentsRule implements SubmitRule { private static final SubmitRequirement REQUIREMENT = SubmitRequirement.builder() .setType("unresolved_comments") .setFallbackText("Resolve all comments") .build(); @Override public Collection<SubmitRecord> evaluate(ChangeData cd, SubmitRuleOptions options) { Integer unresolvedComments = cd.unresolvedCommentCount(); SubmitRecord sr = new SubmitRecord(); sr.requirements = Collections.singletonList(REQUIREMENT); sr.status = unresolvedComments == null || unresolvedComments > 0 ? SubmitRecord.Status.NOT_READY : SubmitRecord.Status.OK; return ImmutableList.of(sr); } }
  • 26. 25Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 25 Core plugins plugin manager Discover and install with one click
  • 27. 26Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 26 More core plugins Gitiles (!) Delete-project (finally !!) WebHooks (yeah !)
  • 28. 27Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 27 Native Packages updates RPMs for RedHat & CentOS 7.6 Debs for Debian & Ubuntu 18.04 Support for Docker in production
  • 29. 28Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 28 What’s coming in v3.1 Polymer 2.0 Git Protocol v2 (secured) Performance Stability and Fixes More CI integration
  • 30. 29Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 29 Q&A: excited about the future of Gerrit? Image from: http://cypp.rutgers.edu/ru-voting/political-information/public-opinion-polls/
  • 31. 30Gerrit User Summit 2019 – Volvo Cars – Gothenburg - Sweden GerritForge.com 30 Wants to know more? GerritForge.com/contact