SlideShare una empresa de Scribd logo
1 de 42
Descargar para leer sin conexión
Gerrit code review

   Thomas Koch
     www.koch.ro


   May 10, 2011
me



     Thomas Koch
     http://www.koch.ro
     finished music, physics
     5 years software developer: PHP (RIP!), Java, Hadoop, Search,
     Crawling, ERP, Groupware
     currently: finishing computer science bachelor, ETA: Q1/2012
     tags: quality, ATTAC, FSFE, FIfF, social responsability, Romania,
     Switzerland
Outline


   motivation


   workflow


   integration


   demo


   apendix
We are GIT - Resistance is futile

                                        GNU core utils
  Linux-Kernel
                                        Samba
  Apache Software Foundation
  (mirrors)                             Perl5
  freedesktop.org                       Maemo, QT
  Debian ( 3 of packages with           KDE
           4
  a VCS)                                Gnome
  DragonFly BSD                         VLC, XMMS2
  Fedora                                Prototype, YUI, jQuery
  Android                               Ruby on Rails
  Wine                                  Drupal, Mantis
  Erlang                        . . . and many morea . . .
  GStreamer                        a
                                       http://git.or.cz/gitwiki/GitProjects
Why GIT?




     fast
     merging is easy
     amazing toolset and features
     low entry barrier for new contributors
Subversion is irrelevant




   but you still need:
        repository server
        easy repository management
        access control
Subversion is irrelevant




   but you still need:
        repository server
        easy repository management
        access control
        and since we’re agile: code review
Subversion is irrelevant




   but you still need:
        repository server
        easy repository management
        access control
        and since we’re agile: code review
        and if you like it: CLA management
1
we are proud and seek review




     1
       CC BY-NC-ND 2.0
   http://lacrimarum-valle.blogspot.com/2009/11/wendys-cakes.html
enter Gerrit




       initially for Android by Google
       public since ca. oct 2008
       java rewrite of googles internal code review system
       by Shawn Pearce himself!
       tightly coupled to GIT
Gerrit users

         Eclipse
         Ebay2 , Intel, Red Hat, SAP
         Couchbase, WebM, Typo3
         Assembla (dev tools as a service)3
         openAFS
         Kitware (e.g. CMake)4
         Sandia National Laboratories
         Mobiles: Android, Qualcomm Innovation Center, MeeGo,
         Sony Ericsson


     2
        http://dj.riceweevil.com/2010/07/25-week/
     3
        http://blog.assembla.com/assemblablog/tabid/12618/bid/40871/
   Introducing-Gerrit-a-scalable-code-review-system.aspx
      4
        http://www.kitware.com/blog/home/post/70
current ASF workflow
Outline


   motivation


   workflow


   integration


   demo


   apendix
commit and push to gerrit



continuous integration (Jenkins)



          peer review



 jenkins OK, reviewer(s) OK?



  merge to integration branch
3 main views in Gerrit UI:
    changes list
    change overview
    diff (side by side / unified)
Gerrit Changes list
Gerrit Change overview
Gerrit Change side by side diff
mail notifications
   From: "Mike Peer (Code Review)" <mike@peer.de>
   To: Thomas Koch <thomas@koch.ro>
   Subject: Change in picture-gallery[master]: wrote
   add method and tests
   Mike Peer has posted comments on this change.
   Change subject: wrote add method and tests
   ...........................................................
   Patch Set 1: Looks good to me, but someone else must
   approve
   (2 inline comments)
   good enough.
   ....................................................
   File src/main/java/ro/koch/picturegallery/App.java
   Line 13:
   Could you please avoid unnecessary whitespace?
   Line 16: return a + b;
   Did you think about checking for overflows?
Outline


   motivation


   workflow


   integration


   demo


   apendix
Mylyn (eclipse) integration
Mylyn changes list
Mylyn change details
Mylyn change details - attributes
Mylyn change details - comments
Mylyn change details - reviewers
Mylyn change details - patch sets
Jenkins integration
Jenkins trigger and post result
Jenkins trigger and post result
Jenkins plugin




       fast (gerrit ssh stream)
       global configuration
more integration



       Mylyn (eclipse)
       Jenkins
       GitWeb
       Email notifications
       Auth: OpenID, LDAP, HTTP (Browser)
       build your own: hooks, streaming API
   e.g. parse Issuetracker IDs from commit messages and post to
   Jira/Mantis/Bugzilla
clickable Issuetracker IDs



   in gerrit.config:

   [commentlink "bugzilla"]
     match = "(bugs+#?)(d+)"
     link = http://bugs.example.com/show_bug.cgi?id=$2

   [commentlink "tracker"]
     match = ([Bb]ug:s+)(d+)
     html = $1<a href="http://trak.example.com/$2">$2</a>
Outline


   motivation


   workflow


   integration


   demo


   apendix
Questions?




   http://www.koch.ro
   http://identi.ca/thkoch
Outline


   motivation


   workflow


   integration


   demo


   apendix
multiple versions of a change




   Change-Id: I8596454156c4688abd1006cad8297d5aa7eb9331
   (There’s a hook for that.)
search (WebUI or cmdline)



   ssh -p 29418 t61 gerrit query --format=JSON 
   project:picture-gallery status:open owner:thomas@koch.ro


   Search for:
       age, owner, reviewer, project, branch, message, file, status,
       votes
       issue-tracker IDs: tr:ID / bug:ID
       topic
       starred (like bookmarked)
CLA and contact store
more goodies




      topic
      star changes
      hooks (after the fact)
      replication
commit policies / Change Submit Action



       Fast Forward Only
       Merge If Necessary
       Always Merge
       Cherry Pick
   Shawn Pearce: Under cherry-pick the dependency data in Gerrit
   means nothing. If a change is submitted and it cherry-picks clean
   onto the branch tip, it gets patched onto the branch and marked
   merged, even if one or more dependent changes is not ready for
   submission.
cmdline tools over SSH



                         admin:
 user:                       create-account
         ls-projects         create-group
         query               create-project
         review              gsql
         stream-events       suexec
                             ...

Más contenido relacionado

La actualidad más candente

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
 
Gerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI DemonstrationGerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI Demonstrationvanoorts
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginLuca Milanesio
 
The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution Perforce
 
Git Everyday
Git EverydayGit Everyday
Git EverydayPerforce
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab IntroductionKrunal Doshi
 
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
 
[Public] gerrit concepts and workflows
[Public] gerrit   concepts and workflows[Public] gerrit   concepts and workflows
[Public] gerrit concepts and workflowsYanbin Kong
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHubMichael Redlich
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016ManageIQ
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOpsAhmad Iqbal Ali
 
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012msohn
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeLuca Milanesio
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?Weaveworks
 

La actualidad más candente (20)

Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
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
 
Gerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI DemonstrationGerrit & Jenkins Workflow: An Integrated CI Demonstration
Gerrit & Jenkins Workflow: An Integrated CI Demonstration
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution The Road to Continuous Delivery: Evolution Not Revolution 
The Road to Continuous Delivery: Evolution Not Revolution 
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Gerrit Code Review
Gerrit Code ReviewGerrit Code Review
Gerrit Code Review
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
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
 
[Public] gerrit concepts and workflows
[Public] gerrit   concepts and workflows[Public] gerrit   concepts and workflows
[Public] gerrit concepts and workflows
 
Up GitLab Presentation 2015
Up GitLab Presentation 2015Up GitLab Presentation 2015
Up GitLab Presentation 2015
 
CI is dead, long live CI
CI is dead, long live CICI is dead, long live CI
CI is dead, long live CI
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
DevOps with OpenShift - Fabien Dupont - ManageIQ Design Summit 2016
 
Git strategies for DevOps
Git strategies for DevOpsGit strategies for DevOps
Git strategies for DevOps
 
Git & GitLab
Git & GitLabGit & GitLab
Git & GitLab
 
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
Large Scale Development with Git and Gerrit - EclipseCon Europe 2012
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?WTF is GitOps and Why You Should Care?
WTF is GitOps and Why You Should Care?
 

Similar a Gerrit linuxtag2011

The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOpsNicola Baldi
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsIan Walls
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersMartin Jinoch
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewelljwi11iams
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing selfChen-Tien Tsai
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdfAliaaTarek5
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Fabrice Bernhard
 
Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#Andrey Karpov
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and LingvokotLingvokot
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$Joe Ferguson
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community力 陈
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to MicroservicesAd van der Veer
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityNational Cheng Kung University
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM toolsLarry Cai
 

Similar a Gerrit linuxtag2011 (20)

빈스톡 첫인상 with Git
빈스톡 첫인상 with Git빈스톡 첫인상 with Git
빈스톡 첫인상 with Git
 
The journey to GitOps
The journey to GitOpsThe journey to GitOps
The journey to GitOps
 
Git 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizationsGit 101, or, how to sanely manage your Koha customizations
Git 101, or, how to sanely manage your Koha customizations
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewell
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Git_tutorial.pdf
Git_tutorial.pdfGit_tutorial.pdf
Git_tutorial.pdf
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#Analysis of merge requests in GitLab using PVS-Studio for C#
Analysis of merge requests in GitLab using PVS-Studio for C#
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$All the Laravel things: up and running to making $$
All the Laravel things: up and running to making $$
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Chenli linux-kerne-community
Chenli linux-kerne-communityChenli linux-kerne-community
Chenli linux-kerne-community
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
Build Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the QualityBuild Community Android Distribution and Ensure the Quality
Build Community Android Distribution and Ensure the Quality
 
Git best practices 2016
Git best practices 2016Git best practices 2016
Git best practices 2016
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 

Último

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 

Último (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 

Gerrit linuxtag2011

  • 1. Gerrit code review Thomas Koch www.koch.ro May 10, 2011
  • 2. me Thomas Koch http://www.koch.ro finished music, physics 5 years software developer: PHP (RIP!), Java, Hadoop, Search, Crawling, ERP, Groupware currently: finishing computer science bachelor, ETA: Q1/2012 tags: quality, ATTAC, FSFE, FIfF, social responsability, Romania, Switzerland
  • 3. Outline motivation workflow integration demo apendix
  • 4. We are GIT - Resistance is futile GNU core utils Linux-Kernel Samba Apache Software Foundation (mirrors) Perl5 freedesktop.org Maemo, QT Debian ( 3 of packages with KDE 4 a VCS) Gnome DragonFly BSD VLC, XMMS2 Fedora Prototype, YUI, jQuery Android Ruby on Rails Wine Drupal, Mantis Erlang . . . and many morea . . . GStreamer a http://git.or.cz/gitwiki/GitProjects
  • 5. Why GIT? fast merging is easy amazing toolset and features low entry barrier for new contributors
  • 6. Subversion is irrelevant but you still need: repository server easy repository management access control
  • 7. Subversion is irrelevant but you still need: repository server easy repository management access control and since we’re agile: code review
  • 8. Subversion is irrelevant but you still need: repository server easy repository management access control and since we’re agile: code review and if you like it: CLA management
  • 9. 1 we are proud and seek review 1 CC BY-NC-ND 2.0 http://lacrimarum-valle.blogspot.com/2009/11/wendys-cakes.html
  • 10. enter Gerrit initially for Android by Google public since ca. oct 2008 java rewrite of googles internal code review system by Shawn Pearce himself! tightly coupled to GIT
  • 11. Gerrit users Eclipse Ebay2 , Intel, Red Hat, SAP Couchbase, WebM, Typo3 Assembla (dev tools as a service)3 openAFS Kitware (e.g. CMake)4 Sandia National Laboratories Mobiles: Android, Qualcomm Innovation Center, MeeGo, Sony Ericsson 2 http://dj.riceweevil.com/2010/07/25-week/ 3 http://blog.assembla.com/assemblablog/tabid/12618/bid/40871/ Introducing-Gerrit-a-scalable-code-review-system.aspx 4 http://www.kitware.com/blog/home/post/70
  • 13. Outline motivation workflow integration demo apendix
  • 14. commit and push to gerrit continuous integration (Jenkins) peer review jenkins OK, reviewer(s) OK? merge to integration branch
  • 15. 3 main views in Gerrit UI: changes list change overview diff (side by side / unified)
  • 18. Gerrit Change side by side diff
  • 19. mail notifications From: "Mike Peer (Code Review)" <mike@peer.de> To: Thomas Koch <thomas@koch.ro> Subject: Change in picture-gallery[master]: wrote add method and tests Mike Peer has posted comments on this change. Change subject: wrote add method and tests ........................................................... Patch Set 1: Looks good to me, but someone else must approve (2 inline comments) good enough. .................................................... File src/main/java/ro/koch/picturegallery/App.java Line 13: Could you please avoid unnecessary whitespace? Line 16: return a + b; Did you think about checking for overflows?
  • 20. Outline motivation workflow integration demo apendix
  • 24. Mylyn change details - attributes
  • 25. Mylyn change details - comments
  • 26. Mylyn change details - reviewers
  • 27. Mylyn change details - patch sets
  • 29. Jenkins trigger and post result
  • 30. Jenkins trigger and post result
  • 31. Jenkins plugin fast (gerrit ssh stream) global configuration
  • 32. more integration Mylyn (eclipse) Jenkins GitWeb Email notifications Auth: OpenID, LDAP, HTTP (Browser) build your own: hooks, streaming API e.g. parse Issuetracker IDs from commit messages and post to Jira/Mantis/Bugzilla
  • 33. clickable Issuetracker IDs in gerrit.config: [commentlink "bugzilla"] match = "(bugs+#?)(d+)" link = http://bugs.example.com/show_bug.cgi?id=$2 [commentlink "tracker"] match = ([Bb]ug:s+)(d+) html = $1<a href="http://trak.example.com/$2">$2</a>
  • 34. Outline motivation workflow integration demo apendix
  • 35. Questions? http://www.koch.ro http://identi.ca/thkoch
  • 36. Outline motivation workflow integration demo apendix
  • 37. multiple versions of a change Change-Id: I8596454156c4688abd1006cad8297d5aa7eb9331 (There’s a hook for that.)
  • 38. search (WebUI or cmdline) ssh -p 29418 t61 gerrit query --format=JSON project:picture-gallery status:open owner:thomas@koch.ro Search for: age, owner, reviewer, project, branch, message, file, status, votes issue-tracker IDs: tr:ID / bug:ID topic starred (like bookmarked)
  • 40. more goodies topic star changes hooks (after the fact) replication
  • 41. commit policies / Change Submit Action Fast Forward Only Merge If Necessary Always Merge Cherry Pick Shawn Pearce: Under cherry-pick the dependency data in Gerrit means nothing. If a change is submitted and it cherry-picks clean onto the branch tip, it gets patched onto the branch and marked merged, even if one or more dependent changes is not ready for submission.
  • 42. cmdline tools over SSH admin: user: create-account ls-projects create-group query create-project review gsql stream-events suexec ...