SlideShare a Scribd company logo
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

More Related Content

What's hot (20)

PDF
Your own full blown Gerrit plugin
Dariusz Łuksza
 
PDF
Zabbixで学ぶ統計解析入門
Takeo Noda
 
PPTX
Github basics
Radoslav Georgiev
 
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
 
PPTX
A successful Git branching model
abodeltae
 
PDF
MongoDB Administration 101
MongoDB
 
PDF
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
 
PPTX
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
PPTX
Git 101 for Beginners
Anurag Upadhaya
 
PPT
LiquiBase
Mike Willbanks
 
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
PDF
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
 
PDF
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
Masahiko Sawada
 
PDF
Quarkus Technical Deep Dive - Japanese
Chihiro Ito
 
PDF
Git and git flow
Fran García
 
PDF
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Samir Hammoudi
 
PDF
Vacuum徹底解説
Masahiko Sawada
 
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Your own full blown Gerrit plugin
Dariusz Łuksza
 
Zabbixで学ぶ統計解析入門
Takeo Noda
 
Github basics
Radoslav Georgiev
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
 
A successful Git branching model
abodeltae
 
MongoDB Administration 101
MongoDB
 
なかったらINSERTしたいし、あるならロック取りたいやん?
ichirin2501
 
今こそ知りたいSpring Web(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
Git 101 for Beginners
Anurag Upadhaya
 
LiquiBase
Mike Willbanks
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
NTT DATA Technology & Innovation
 
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ
Masahiko Sawada
 
Quarkus Technical Deep Dive - Japanese
Chihiro Ito
 
Git and git flow
Fran García
 
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Samir Hammoudi
 
Vacuum徹底解説
Masahiko Sawada
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 

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

PDF
Gerrit Code Review multi-site
Luca Milanesio
 
PDF
Gerrit User Summit 2019 Keynote
Luca Milanesio
 
PDF
What's new in Gerrit Code Review v3.1 and beyond
Luca Milanesio
 
PDF
GerritHub a true Gerrit migration story to v2.15
Luca Milanesio
 
PDF
Cloud-native Gerrit Code Review
Luca Milanesio
 
PDF
Magento Commerce Global contribution day 2020
Slava Mankivski
 
PDF
Gerrit Analytics applied to Android source code
Luca Milanesio
 
PPTX
Gerrit Code Review migrations step-by-step
Luca Milanesio
 
PDF
Gerrit Code Review v3.2 and v3.3
Luca Milanesio
 
PDF
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
msohn
 
PPTX
Green IO Conference at apidays Paris 2024 - Track your ML and AI C02 Emission...
apidays
 
PPTX
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
BizTalk360
 
PPTX
Git - Boost Your DEV Team Speed and Productivity
KMS Technology
 
PDF
Comments on Multi-Agency Agreement Addendum.pdf
Brij Consulting, LLC
 
PDF
Using Qt under LGPLv3
Burkhard Stubert
 
PDF
Gerrit multi-master / multi-site at GerritHub
Luca Milanesio
 
PPTX
[HCM-August 13] Tech Talk on Git: Use Git to Boost Your Dev Team's Speed and ...
ITviec
 
PDF
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
Igalia
 
PDF
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
jazoon13
 
PDF
Quebec - 16 November 2022 - Canada CNCF Meetups.pdf
prune1
 
Gerrit Code Review multi-site
Luca Milanesio
 
Gerrit User Summit 2019 Keynote
Luca Milanesio
 
What's new in Gerrit Code Review v3.1 and beyond
Luca Milanesio
 
GerritHub a true Gerrit migration story to v2.15
Luca Milanesio
 
Cloud-native Gerrit Code Review
Luca Milanesio
 
Magento Commerce Global contribution day 2020
Slava Mankivski
 
Gerrit Analytics applied to Android source code
Luca Milanesio
 
Gerrit Code Review migrations step-by-step
Luca Milanesio
 
Gerrit Code Review v3.2 and v3.3
Luca Milanesio
 
Development with Git and Gerrit - Eclipse DemoCamp Stuttgart - 2010-11-23
msohn
 
Green IO Conference at apidays Paris 2024 - Track your ML and AI C02 Emission...
apidays
 
Building Enterprise Integration scenarios with the SAP Connector for Logic Apps
BizTalk360
 
Git - Boost Your DEV Team Speed and Productivity
KMS Technology
 
Comments on Multi-Agency Agreement Addendum.pdf
Brij Consulting, LLC
 
Using Qt under LGPLv3
Burkhard Stubert
 
Gerrit multi-master / multi-site at GerritHub
Luca Milanesio
 
[HCM-August 13] Tech Talk on Git: Use Git to Boost Your Dev Team's Speed and ...
ITviec
 
A Browser for the Automotive: Introduction to WebKit for Wayland (Automotive ...
Igalia
 
JAZOON'13 - Thomas Hug & Bartosz Majsak - Git Workshop -Essentials
jazoon13
 
Quebec - 16 November 2022 - Canada CNCF Meetups.pdf
prune1
 
Ad

More from Luca Milanesio (20)

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

Recently uploaded (20)

PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
July Patch Tuesday
Ivanti
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 

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