| --- | |
| title: "Gerrit User Summit 2026 - Talks" | |
| permalink: /talks.html | |
| page_css: talks | |
| --- | |
| # Gerrit User Summit 2026 - Talks | |
| Abstracts of the talks at the Gerrit User Summit 2026, in running order. See the | |
| [schedule]({{ site.baseurl }}/schedule.html) for the full agenda and the | |
| [speakers]({{ site.baseurl }}/speakers.html) page for the people behind them. | |
| <div class="talks-list"> | |
| <article class="talk-card" id="whats-new-in-gerrit-v3-15"> | |
| <h3 class="talk-title">What's new in Gerrit v3.15</h3> | |
| <p class="talk-meta">Monday 9th November, 09:30 AM · <a href="{{ site.baseurl }}/speakers.html#luca-milanesio">Luca Milanesio</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Gerrit v3.15 contains a lot of interesting additions, this talks presents all | |
| the highlights of the new releases, include the AI improvements and stability | |
| and security fixes. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="improvements-to-the-push-replication-plugin"> | |
| <h3 class="talk-title">Improvements to the Push Replication Plugin</h3> | |
| <p class="talk-meta">Monday 9th November, 10:15 AM · <a href="{{ site.baseurl }}/speakers.html#kaushik-lingarkar">Kaushik Lingarkar</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| - Replicating large (>500k refs) repositories often triggers severe latency | |
| bottlenecks when destinations scan all refs to evaluate incoming pushes. By | |
| introducing intelligent ref filtering, the plugin evaluates only a subset of | |
| refs resulting in same data being replicated, but faster! | |
| - Repairs can now fire automatically (or manually via SSH) when replication | |
| encounters missing objects making recovery far less manual than before. | |
| - Single URL failures can no longer break replication. If an endpoint goes down, | |
| replication automatically falls back to secondary URLs using a new RoundRobin | |
| mode which provides automatic failovers and distributes traffic. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="from-cgit-to-gitiles-building-repository-search-for-everyone"> | |
| <h3 class="talk-title">From cgit to Gitiles: Building Repository Search for Everyone</h3> | |
| <p class="talk-meta">Monday 9th November, 10:45 AM · <a href="{{ site.baseurl }}/speakers.html#devansh-varshney">Devansh Varshney</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| When LibreOffice contributors shifted from the old cgit Core browser to Gitiles, | |
| they lost search capabilities they had relied on while browsing the repository. | |
| Finding commits or searching repository contents increasingly meant switching | |
| between Gerrit and local Git commands. | |
| This session follows how that practical LibreOffice problem became an upstream | |
| Gitiles contribution. I will cover the incremental path from documenting and | |
| testing existing author and committer filters, through git log --grep support, | |
| to bounded JGit-backed content search with JSON and HTML interfaces. | |
| I will explain the main design decisions, how Gerrit review shaped the | |
| implementation, and how repository traversal is kept manageable for large | |
| projects. The session will include a short demonstration and discuss how this | |
| work can benefit other Gitiles deployments. | |
| <https://gerrit-review.googlesource.com/q/topic:%22gitiles-log-search%22> | |
| </div> | |
| </article> | |
| <article class="talk-card" id="gerrit-zuul-and-openclaw-safe-agentic-coding-via-human-collaboration-tools"> | |
| <h3 class="talk-title">Gerrit, Zuul and OpenClaw, Safe Agentic coding via Human Collaboration Tools</h3> | |
| <p class="talk-meta">Monday 9th November, 11:20 AM · <a href="{{ site.baseurl }}/speakers.html#monty-taylor">Monty Taylor</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| OpenClaw isn't normally used side by side with "safe". But it turns out, for the | |
| past 15 years OpenDev has been building tools and processes based on Gerrit and | |
| Zuul to support safe collaboration between thousands of unknown parties. These | |
| tools turn out to be AMAZING at unleashing the potential of systems like | |
| OpenClaw, all you have to do is treat your AI agents like untrusted people. What | |
| could possibly go wrong? | |
| Using work on the WanderTracks project as an example, we'll walk through the | |
| architecture and approach, showing examples of separate long-lived coding and | |
| review agents interacting via the same Gerrit review and Zuul gating system we | |
| use for everyone else. We'll look at the gerrit and zuul plugins for OpenClaw | |
| that allow using code review as a communication channels. | |
| It's not just OpenClaw! Sometimes you want to do the same things with other | |
| Agent harnesses, maybe so you can use your Claude Pro Max subscription. We'll | |
| discuss the new spren.bot service that manages agent identities and exposes them | |
| to gerrit and zuul via authenticated MCP to allow interacting with them from | |
| places like claude.ai safely. Spoiler alert, this works with | |
| https://gerrit-review.googlesource.com/ and gerritforge too. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="multipack-index-in-jgit"> | |
| <h3 class="talk-title">Multipack index in JGit</h3> | |
| <p class="talk-meta">Monday 9th November, 01:15 PM · <a href="{{ site.baseurl }}/speakers.html#ivan-frade">Ivan Frade</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Git introduced few releases ago the multipack index (midx) to maintain | |
| performance as the repacking cost grows. We have been implementing multipack | |
| index in JGit in fits and starts for a while, but only involved developers seem | |
| to know where it stands. | |
| I'll introduce what are midx and geometric repacking and how do we intend to use | |
| them. I'll explain how did we fit midx in the JGit code, what is currently | |
| implemented and how to use it, giving some hints on how development could go | |
| from here. | |
| This could be interesting for jgit/gerrit operators interested in enabling midx | |
| in their installations and for potential contributors looking for reasonably | |
| sized coding opportunities. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="scaling-gerrit-and-jgit-for-the-ai-era-a-cassandra-backed-object-storage-revolution"> | |
| <h3 class="talk-title">Scaling Gerrit and JGit for the AI Era: A Cassandra-Backed Object Storage Revolution</h3> | |
| <p class="talk-meta">Monday 9th November, 01:45 PM · <a href="{{ site.baseurl }}/speakers.html#luca-milanesio">Luca Milanesio</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Over a decade ago at Google, GerritForge demoed a prototype that demonstrated | |
| the immense potential of distributed storage for Git repositories. Today, that | |
| vision becomes a reality. This talk introduces a groundbreaking new JGit storage | |
| backend built on Apache Cassandra, designed to propel Gerrit and all JGit-based | |
| forges firmly into the AI era. | |
| By leveraging JGit's proven multi-storage capabilities, we have architected a | |
| system that decouples repository data to maximise both speed and scale. The | |
| solution utilises Cassandra's flexibility and ultra-fast data transfer rates to | |
| handle BLOBs and Packfiles at unprecedented volumes. For pointer management, it | |
| seamlessly integrates with our battle-tested global-refdb infrastructure to | |
| store Git refs, guaranteeing a highly reliable, multi-primary consistent | |
| environment (HA and Multi-Site). | |
| Join this session to explore how this modernised backend solves the massive data | |
| and scalability demands of modern machine learning and AI workloads, unlocking | |
| the next generation of performance for the Gerrit ecosystem. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="hrts-gerrit-improvements"> | |
| <h3 class="talk-title">HRT’s Gerrit Improvements</h3> | |
| <p class="talk-meta">Monday 9th November, 02:30 PM · <a href="{{ site.baseurl }}/speakers.html#kamen-yotov">Kamen Yotov</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| The session will demonstrate HRT's custom enhancements to Gerrit as of the time | |
| of the session. The content will change based on things that happen between now | |
| and then. | |
| As of September 18, 2026\. HRT has extended Gerrit across the review UI, CLI, | |
| CI, ownership, metadata, and developer tooling to support migration from | |
| Phabricator. | |
| **Delivered** | |
| * **Review UI:** Stijl, a React frontend with PolyGerrit fallback, adds | |
| configurable dashboards, stack visualization, file navigation, | |
| comments/suggestions, and integrated checks. Core patches add sticky actions, | |
| full-width/auto-expanded diffs, Markdown, syntax highlighting, moved-code | |
| detection, Phabricator colors, and review safeguards. | |
| * **Review rules:** Group reviewers/subscribers, Code Owners views and | |
| auto-assignment, plus deployed blocking-reviewer APIs, submit requirements, | |
| and UI support. | |
| * **CLI:** Rust-based gr succeeds cr with arc-compatible | |
| diff/land/patch/work/lint workflows, squashed or per-commit uploads, stacked | |
| branches, reviewer integration, and paste support. | |
| * **CI:** Gerrkins replaces key Herald/Harbormaster workflows with event-driven | |
| Jenkins jobs, persistent checks, inline lint, patchset reporting, and multiple | |
| Jenkins backends. BAT Queue runs directly from Gerrit and Stijl. | |
| * **Integrations:** Jira, Git-notes APIs, Sourcegraph, custom menus/checker | |
| configuration, and Pastes uploads/attachments. Gerrbot is released. | |
| * **Platform:** Production adoption across DevX and Systems, Phabricator | |
| coexistence, faster mirror/ref synchronization, internal build/deployment | |
| pipelines, UI CI checks, and the Gerrit 3.14 upgrade with HRT patches | |
| preserved. | |
| **Ongoing** | |
| Gerald’s modular rules engine has a limited cutover; broader Herald-rule | |
| migration continues. VS Code review is implemented, with v0 rollout and | |
| AI-context integration pending. Other work includes explicit group approvals, | |
| muting, auto-submit/auto-queue, release-cadence integration, server-side Jira | |
| extraction, and production HA. A unified configuration dashboard is proposed. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="do-i-have-to-approve-this-again-sticky-owners-in-gerrit"> | |
| <h3 class="talk-title">Do I Have to approve this Again!? Sticky Owners in Gerrit</h3> | |
| <p class="talk-meta">Monday 9th November, 03:40 PM · <a href="{{ site.baseurl }}/speakers.html#antonio-barone">Antonio Barone</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| An owner’s approval should not become meaningless just because a new patch set | |
| arrives. But when does keeping that approval save reviewers from needless | |
| repetition, and when does it leave a gap in the ownership policy? | |
| This session is about Sticky Owners: making ownership-based review less | |
| mechanical without weakening the checks that matter. | |
| We'll look at the real questions behind approvals that survive across patch sets | |
| and the trade-offs involved in this feature. | |
| If you run OWNERS rules and are tired of asking people to re-approve work they | |
| have already reviewed, this should give you practical ideas you can take back to | |
| your own Gerrit setup. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="task-quotas-in-the-age-of-ai"> | |
| <h3 class="talk-title">Task Quotas in the age of AI</h3> | |
| <p class="talk-meta">Monday 9th November, 04:10 PM · <a href="{{ site.baseurl }}/speakers.html#adithya-chakilam">Adithya Chakilam</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Two years ago, the quota plugin was mostly about static namespace limits — | |
| capping how many projects or how much disk space a team could use. Today it's | |
| evolved into a full admission-control system for Gerrit's task queues, built in | |
| direct response to a new kind of load: AI coding agents, CI bots, and automation | |
| tools (like repo sync -j64) that don't behave like a human clicking around a UI. | |
| They fire concurrent, bursty, high-volume requests that can starve interactive | |
| users and even take down a Gerrit instance. | |
| This is as much a case study in incremental, incident-driven system design as it | |
| is a feature tour — a small Gerrit plugin quietly becoming critical | |
| infrastructure as automated/AI-driven traffic became the dominant load pattern | |
| on the server. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="large-object-promisors-handling-large-files-natively-in-git"> | |
| <h3 class="talk-title">Large Object Promisors: handling large files natively in Git</h3> | |
| <p class="talk-meta">Monday 9th November, 04:40 PM · <a href="{{ site.baseurl }}/speakers.html#christian-couder">Christian Couder</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Large binary files are a long-standing pain point for Git hosting. Git LFS | |
| helps, but it's a separate tool outside Git, with its own configuration and | |
| pitfalls. Over the last few years, upstream Git has gained native building | |
| blocks for a different approach: Large Object Promisors. This talk explains how | |
| it works and how to use it in practice. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="version-control-and-code-formatting"> | |
| <h3 class="talk-title">Version control and code formatting</h3> | |
| <p class="talk-meta">Tuesday 10th November, 09:45 AM · <a href="{{ site.baseurl }}/speakers.html#danny-hooper">Danny Hooper</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| There are many approaches to managing indentation and such in a code base over | |
| time. How can a version control system help? | |
| </div> | |
| </article> | |
| <article class="talk-card" id="where-does-your-metadata-live"> | |
| <h3 class="talk-title">Where does your metadata live?</h3> | |
| <p class="talk-meta">Tuesday 10th November, 10:15 AM · <a href="{{ site.baseurl }}/speakers.html#patrick-hiesel">Patrick Hiesel</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Code review comments, approvals, repo permissions and now agent trajectories and | |
| provenance data. All relate to source code and have to be stored somewhere. | |
| Ten years ago, the Gerrit contributors invented NoteDb and pioneered storing | |
| metadata alongside source code offering atomic updates, a free audit log as well | |
| as easier backup and sync options. | |
| With the SDLC shifting from from human-first to agent-first, new use cases for | |
| storing code related metadata have emerged: Provenance and trajectories are just | |
| two of many. | |
| In this talk, we’ll go over options that are available today, problems we are | |
| thinking about at Google and what lessons we can learn from past design | |
| decisions as we evolve our metadata storages. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="bridging-the-gap-adding-native-jj-support-to-a-git-based-scm"> | |
| <h3 class="talk-title">Bridging the Gap: Adding native JJ support to a Git-based SCM</h3> | |
| <p class="talk-meta">Tuesday 10th November, 11:00 AM · <a href="{{ site.baseurl }}/speakers.html#daniele-sassoli">Daniele Sassoli</a>, <a href="{{ site.baseurl }}/speakers.html#emily-shaffer">Emily Shaffer</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| In this talk, we'll walk through the philosophy behind JJ, why it works the way | |
| it does and the core concepts behind it, we'll also walk through what it | |
| actually took to add native support for JJ change-id headers to Gerrit Code | |
| Review. We'll look at the architectural considerations a modern, Git-based SCM | |
| faces when adopting JJ, and how to ensure that JJ and Git users can collaborate | |
| seamlessly without stepping on each other's toes. | |
| Gerrit makes for a great testing ground since it already embraces the patch-set | |
| workflow that JJ naturally enables. Even so, bridging the two systems threw some | |
| interesting design challenges our way. I'll share the practical pitfalls we hit | |
| and the lessons we learned while making sure we didn't cause regressions for | |
| either user base. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="cloud-jj-open-source-commit-cloud-for-jj"> | |
| <h3 class="talk-title">cloud-jj: Open-Source Commit Cloud for jj</h3> | |
| <p class="talk-meta">Tuesday 10th November, 11:30 AM · <a href="{{ site.baseurl }}/speakers.html#daniel-sperry">Daniel Sperry</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| cloud-jj will bring Google's cloud-backed Commit Cloud server architecture to | |
| open source under the Apache 2.0 license. We are planning to develop cloud-jj in | |
| public repositories and deliver usable open-source versions by Q3 2027, | |
| providing a self-managed Commit Cloud backed by Google Cloud Spanner and Google | |
| Cloud Storage that organizations can deploy to handle large repositories, | |
| multi-gigabyte binary files, globally distributed teams, and high-concurrency | |
| agent workloads. | |
| This talk covers the architecture, components, migration paths, and open-source | |
| roadmap of cloud-jj: | |
| - jj Commit Cloud Server: Storing transactional commit graph metadata in Cloud | |
| Spanner and bulk content-addressed file and chunk storage in Google Cloud | |
| Storage, paired with pluggable authentication, authorization, and | |
| per-directory access controls. | |
| - Early and Independent Replication: Streaming modified file contents and tree | |
| objects from the workspace to cloud storage in the background before commits | |
| are finalized or sent for review, minimizing cross-region replication delays | |
| and enabling roaming workspaces across machines. | |
| - Integration and Migration Paths (Native, jj-on-Git, and jj-on-Perforce): Using | |
| Commit Cloud exclusively for new projects, or running Commit Cloud on top of | |
| existing Git, Gerrit, or Perforce repositories via continuous Git and Perforce | |
| indexers that mirror repository history into Commit Cloud with 1:1 Git hash | |
| compatibility and push changes back for code review and submission. | |
| - Cross-Platform Virtual File System (jj-vfs): As part of the full cloud-jj | |
| stack, mounting writable workspaces in under 200ms across Linux (FUSE3 | |
| passthrough), macOS (user-space NFSv4 via Fuse-T), and Windows (ProjFS) to | |
| fetch files lazily on demand from Commit Cloud and the local daemon without | |
| waiting for large downloads. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="ai-development-at-scale-with-gerrit-and-zuul"> | |
| <h3 class="talk-title">AI Development at Scale with Gerrit and Zuul</h3> | |
| <p class="talk-meta">Tuesday 10th November, 01:00 PM · <a href="{{ site.baseurl }}/speakers.html#luca-milanesio">Luca Milanesio</a>, <a href="{{ site.baseurl }}/speakers.html#james-blair">James Blair</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| The AI revolutionised the way we write software and introduced a new level of | |
| workload to the existing CI/CD infrastructure. | |
| The bottleneck is the infrastructure that was built in the past 10 years: how do | |
| we ensure that it is able to scale at the same AI pace? | |
| Luca and Jim presents a well-test combination of Gerrit Code Review and Zuul for | |
| providing an unprecedented level of scalability and performance that can make | |
| your CI/CD infrastructure resilient to the spikes generated by AI agents on a | |
| 24/7 basis. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="pimp-your-gerrit-upgrade-tune-measure-and-repeat"> | |
| <h3 class="talk-title">Pimp Your Gerrit: Upgrade, Tune, Measure and repeat</h3> | |
| <p class="talk-meta">Tuesday 10th November, 01:45 PM · <a href="{{ site.baseurl }}/speakers.html#fabio-ponciroli">Fabio Ponciroli</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Gerrit performance is not one magic setting. It is the combined effect of | |
| version upgrades, hardware choices, plugins, and operational discipline. | |
| This talk presents a practical performance playbook for Gerrit administrators. | |
| We will look at what changes when upgrading to Gerrit 3.14. | |
| We will also walk through real tuning examples, including the impact of moving | |
| Gerrit workloads from Intel to ARM hardware. | |
| The plugin section focuses on practical tools: Cached RefDB to speed up ref | |
| access, git-refs-filter to reduce expensive ref advertisement, and Prometheus | |
| metrics to prove whether the changes actually helped. | |
| Attendees will leave with a checklist for making Gerrit faster, measuring the | |
| result, and avoiding performance tuning by "gut feeling". | |
| </div> | |
| </article> | |
| <article class="talk-card" id="ghs-sustaining-git-performance-under-production-workloads"> | |
| <h3 class="talk-title">GHS: Sustaining Git Performance Under Production Workloads</h3> | |
| <p class="talk-meta">Tuesday 10th November, 02:35 PM · <a href="{{ site.baseurl }}/speakers.html#shane-mcintosh">Shane McIntosh</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Although decentralized Version Control Systems (VCSs) like Git support several | |
| organizational structures, a central copy of the repository is typically where | |
| development activity is coalesced and where official software releases are cut. | |
| Popular practices like AI-accelerated and trunk-based development strain central | |
| repositories. Remedial actions, such as performing garbage collection routines, | |
| can backfire because they are computationally expensive and if run at an | |
| inopportune moment, may degrade repository performance or cause the host to | |
| crash. | |
| In this talk, we propose GHS---an automated approach that can take remedial | |
| actions to sustain VCS performance. We compare the performance that a VCS can | |
| sustain when GHS is applied against a schedule-based garbage collection policy | |
| and a no-action baseline. For example, we observe that GHS leads to 64 to | |
| 82-fold improvements in the Area Under the Curve (AUC) that plots repository | |
| performance over time. | |
| </div> | |
| </article> | |
| <article class="talk-card" id="how-to-stack-changes-like-a-pro"> | |
| <h3 class="talk-title">How to Stack Changes like a Pro</h3> | |
| <p class="talk-meta">Tuesday 10th November, 03:05 PM · <a href="{{ site.baseurl }}/speakers.html#jacek-centkowski">Jacek Centkowski</a></p> | |
| <div class="talk-abstract" markdown="1"> | |
| Last year the message was: focus the diff. Small, single-concern changes get | |
| better, faster reviews. In the meantime coding agents became the industry | |
| standard - and they produce Mega-PRs faster than anyone can review them. The | |
| GitHub world is catching up: stacked diffs at Meta, Graphite, Sapling, now | |
| GitHub's own stacked pull requests. Gerrit shipped this model years ago: one | |
| concern per change, chained for review. What's missing is the agent part. Agent | |
| Skills already teach Claude Code and Codex to plan atomic steps, budget diff | |
| size, split branches. All of them PR-shaped. None of them speaks Change-Id. This | |
| talk surveys what they converge on, then proposes gerrit-stack: a skill that | |
| makes relation chains the agent's default. Not a cleanup after the fact - the | |
| default. Sequel to How to do Code Review like a Pro | |
| (https://www.youtube.com/watch?v=7pcb1p3hTtg&t=42s) | |
| </div> | |
| </article> | |
| <article class="talk-card" id="q-a-with-the-maintainers"> | |
| <h3 class="talk-title">Q&A with the maintainers</h3> | |
| <p class="talk-meta">Tuesday 10th November, 03:20 PM</p> | |
| <div class="talk-abstract" markdown="1"> | |
| Join us for what has become a staple session of the Gerrit User Summit where the | |
| maintainers will take questions from the audience! Nothing is off the table, | |
| anything from the why a certain features works in a certain way, to where the | |
| project is heading next are valid topics! | |
| The maintainers joining in person: | |
| - [Adithya Chakilam]({{ site.baseurl }}/speakers.html#adithya-chakilam) | |
| - [Antonio Barone]({{ site.baseurl }}/speakers.html#antonio-barone) | |
| - [Fabio Ponciroli]({{ site.baseurl }}/speakers.html#fabio-ponciroli) | |
| - [Jacek Centkowski]({{ site.baseurl }}/speakers.html#jacek-centkowski) | |
| - [Kaushik Lingarkar]({{ site.baseurl }}/speakers.html#kaushik-lingarkar) | |
| - Laura Hamelin-Owens | |
| - [Luca Milanesio]({{ site.baseurl }}/speakers.html#luca-milanesio) | |
| - Martin Fick | |
| - Nasser Grainawi | |
| - [Patrick Hiesel]({{ site.baseurl }}/speakers.html#patrick-hiesel) | |
| </div> | |
| </article> | |
| </div> |