LibreOffice project has historically dezentralized CI infrastructure: dozens of donated tinderboxes are running at donators place and periodically build the master and stable branches. Build verify LibreOffice has number of challenges: it is very big project: 5 mil. LoC and supports quite number of platforms. Compilation is time consuming ca. 1 hours.

Once master is broken all consequent verifications are in vain. After migration to Gerrit Code Review the evaluation of existing CI bridges (Jenkins Trigger plugin & Zuul) showed that decentralized CI requires another approach. That why Gerrit buildbot plugin was created: [1],[2].

This talk shows the challenges, objectives and design of Gerrit buildbot plugin.

We present out experience (and lessons learned) of integrating Gerrit with GitHub trough replication and OAuth SSO using the GitHub plugin for Gerrit Code Review.

Open discussion on the Pull Request and branch review model vs. "the Gerrit way" of change-by-change review.

4

Gerrit plugins made easy with Scripting

Luca Milanesio

GerritForge

Plugins have revolutionised the way we evolve and integrate the Gerrit platform: however they still represent a significant obstacle for those administrators who have little or no development experience with Gerrit.

A new experimental support for popular scripting languages (e.g. Groovy, Python and even Scala) will allow system administrators to "glue" Gerrit with their internal ecosystem by leveraging the power of plugins and extensions by reusing their existing skills.

We expect the Gerrit plugin ecosystem to grow exponentially and attract more creative contributors to extend the platform.

See in practice the "state of the art" of scripting plugins and drive with your requirements the 3 days hackathon efforts on this topic.

5

Continuous Development with Gerrit

Tyler Jewell & Luca Milanesio

Codenvy

This session will introduce the philosophies of Continuous Development, which are being developed by agile experts from Vagrant, Codenvy, CircleCI, HeavyBit, and ThoughtWorks in a research collaboration along with prototyped implementation of GerritForge integrated with an on-demand workspace solution provided by Codenvy. We will demonstrate how the code edit, build, compile and review process can be done entirely online through a browser experience.

Agile practices increase the rate of change in development environments. The continuous delivery process treats infrastructure as code and applies automation to the code repository, build, test, and release process. But then contributing developers are left with a synchronization issue to merge continuous delivery outputs back to their own development and test environments. With nearly 10x as many contributing developers as power developers, it's no wonder that developers reported on an Electric Cloud study that they spend 13 hours / week administering their desktop.

Continuous Development is Continuous Delivery's little brother. It brings automation and infrastructure as code into the workbenches used to construct code. This includes automating the installation of workspaces, development tooling, plug-ins, and debuggers; associating workspaces dynamically with the entire continuous delivery process, and incorporating automation throughout the design and construction cycles of development. In essence, development workspaces become entirely dynamic, generated against a configuration and part of an agile workflow that eliminates the time developers spend administering a complicated environment.

This session will provide a short overview of our thinking around Continuous Development and a demo of the integrated code review process.

6

COLLABORATION AT SCALE: The Openstack CI toolbox

Khai Do

Hewlett Packard

The OpenStack project is developed by one of the largest open-source teams in the world. There are currently over 900 active contributors world wide producing 1,500 changes per day across more than 200 git projects. Every change that gets pushed to our openstack Gerrit triggers parallelized build and test jobs which run on multiple OS platforms and even multiple clouds infrastructures. At peak levels the system will run over 12,000 jobs per day. The openstack infra team utilizes many tools to successfully facilitate this large scale collaboration but at the hub of it all is Gerrit code review. This talk will discuss how we use Gerrit, our code review workflow and how we integrated other opens source tools into our system to help manage this scale. A few of the tools we use include: puppet, git-review, gerritbot, git, gearman, jenkins, zuul, jenkins job builder and logstash.

It started as a small experiment and quickly grew to now support 10K users around the world and 3500 repositories. New users are adopting Gerrit on a daily basis and new projects come aboard at a frightening pace, as major organizations are migrating from ClearCase to Git.

We want to share with you how we came to set up Gerrit to support such a high number of users and projects, with slaves located in each of our R&D centers, in a reliable and highly performing way. We will show the HA solution we have implemented to keep Gerrit on its feet. We will talk about the techniques we use for monitoring the servers load, we will share some usage statistics with you as well as our projections for the coming year.

We will also talk about the Gerrit features we are currently developing with the community.

8

Guiding Diffy to the Enterprise land

Dariusz Luksza, Eryk Szymanski

CollabNet

Come on and see what obstacles we meet during our trip with Gerrit to the Enterprise land with CollabNet TeamForge. How we develop, test and deploy our plugins. How we maintain new Gerrit releases. Learn more about server side plugin architecture, its missing parts and consequences of those.

9

Diffy gets Enterprise grade

Dariusz Luksza, Eryk Szymanski

CollabNet

Are you looking for Git or Gerrit service with Enterprise grade? Here it is! Gerrit integrated with CollabNet TeamForge. During the talk I’ll guide you through our unique features like: Repo Categories, History Protection and TeamForge Notifications. Will present how we hide some of Gerrit complex features from newcomers while also giving the possibility to tweak it for advanced users. We are constantly working on new features for Gerrit and TeamForge improving cooperation with Android OpenSource Project and adding some gamification features into code review flow.

10

Making lawyers happy: Integrating CLA and Origin checks with Gerrit

Denis Roy

Eclipse Foundation

The Eclipse Foundation prides itself on hosting code that is IP-clean, adopter-friendly and whose provenance is clearly defined. The first step in achieving this is making sure contributors acknowledge the origins of their contributions and make a few assertions that put the lawyers in a happy place, without annoying the contributor (too much). We'll show how Eclipse uses Gerrit, Committer License Agreements (CLA), Certificate of Origin (CoO) and a small plugin to balance the needs of all the parties involved.

11

Browsing Repository Content with Gerrit's REST API

Simon Kaegi

IBM

The truth is that Gerrit's REST API is not currently sufficient for browsing repository content. We wanted to give our users this capability (in the context of a Web IDE) but also did not want to have to wait or pay the disk storage cost for a local clone. We ended up writing a Gerrit plugin that exposed a repository content REST API and believe the lessons we learned will be useful towards formally adding this functionality to Gerrit and also helpful to other authors writing similar plugins.

12

Monitoring Gerrit

Doug Kelly

Garmin

Gerrit in the enterprise also demands some level of enterprise reliability. Developers sitting idle because they are unable to collaborate with others can be very costly, so proactive monitoring to ensure a reliable system is in everyone's best interest.

This will talk about some of the techniques used to gather usage statistics on Gerrit, determine server load, peak usage, and adequately plan for future growth. The results of monitoring in some cases even detects minor issues and allow for corrective action before they become a major outage. We will discuss using Munin and rrdtool for monitoring load, as well as ways to check overall system health, and determine pain points and usage trends.

13

Gerrit@SAP

Edwin Kempin

SAP AG

This talk will share some insights in how Gerrit is run at SAP for internal development and how Git/Gerrit services will be provided for SAP customers.

Development infrastructures at SAP must fulfill certain requirements in regards to security and traceability. It will be shown how we satisfy these requirements with Gerrit.

Development teams love to adjust development processes to their needs. Setting up Gerrit with decentralized project administration gives them the most freedom and keeps central administration efforts at a minimum. Having self services (e.g. for project creation and service user creation) makes the project setup fast and further reduces central operation efforts.

SAP is integrating Gerrit as Git service for SAP customers into the SAP HANA cloud. To support this we are working on multi tenancy support in Gerrit and we developed the quota plugin to limit the use of central resources.

14

The Angular revolution in Gerrit!

Dariusz Luksza

CollabNet

Are you tired by GWT or maybe frustrated with the time you waste during Gerrit GWT plugin development? Flow of compile-package-deploy-test is not for you? Or maybe GWT is just not your style?

Have you heard about AngularJS? Did you give it a try? What would you say if you could implement Gerrit Web UI plugin using AngularJS?

During this presentation I will show the new way of creating Gerrit Web UI plugins, the AngularJS way! Will present what leads us in CollabNet to invest our time in angular-gerrit module. What are the benefits of using Angular instead of GWT. Will show you some parts of Gerrit Web UI reimplemented in AngularJS based plugin. Sounds interesting? Then come and see the AngularJS revolution in Gerrit!

15

What's new in Gerrit 2.8

Gerrit Maintainers

Overview of new features in 2.8, looking at what is new since 2.5, 2.6, 2.7.