title: “Gerrit 3.1.0 Release (release candidate)” permalink: 3.1.html hide_sidebar: true hide_navtoggle: true toc: true

Release Highlights

  • Support for git protocol v2

  • Polymer 2

  • Mandatory plugins

    It is possible to configure which plugins are mandatory.

    Gerrit will fail to start if a mandatory plugin cannot be loaded.

    Disabling and restarting of a mandatory plugin is rejected.

    Reloading of a mandatory plugin is still possible.

Important Notes

Schema Changes

This release contains schema changes. To upgrade:

  java -jar gerrit.war init -d site_path

Breaking Changes

The reviewdb.client package is renamed to entities

Plugins or extensions that import classes from the com.google.gerrit.reviewdb.client package must change the imports to com.google.gerrit.entities.

Changed APIs for Id and NameKey classes

Plugins and extensions that instantiate and use classes such as Account.Id, Change.Id, Project.NameKey, Branch.NameKey, etc, must adapt to the following changes.

  • The classes can no longer be instantiated with the new operator. Instead they must be created with static factory methods.

    • new Account.Id(...) --> Account.id(...)
    • new AccountGroup.Id(...) --> AccountGroup.id(...)
    • new AccountGroup.UUID(...) --> AccountGroup.uuid(...)
    • new Branch.NameKey(...) --> BranchNameKey.create(...)
    • new Project.NameKey(...) --> Project.nameKey(...)
  • ‘Getter’ methods are now generated by the auto-value library and no longer have the get prefix.

    • Account.getName() -> Account.name()
    • ...etc

REST API endpoint implementations must return Response<T>

REST API endpoint implementations must now return a Response object that explicitly sets a status code. Plugins that currently only return an Object must be adapted to the new interface.

Powermock and Easymock are removed

The Powermock and Easymock libraries are no longer exported in the acceptance-framework artifact, and are replaced by Mockito. Plugins that use Powermock and/or Easymock in their tests should either add explicit dependencies, or migrate the tests to Mockito.

New Features

Replication plugin

  • Issue 11196: Latency metric is now recorded also at a project level, only when the latency was greater than a configured threshold, configurable in replication.config

Dependency Updates

  • Remove easymock, powermock and javassist from the acceptance framework

  • Remove promise-polyfill

  • Add mockito in the acceptance framework

  • Upgrade Apache sshd and mina-core to 2.3.0

  • Upgrade auto-value to 1.7

  • Upgrade bouncycastle to 1.61

  • Upgrade commons-compress to 1.18

  • Upgrade gitiles-servlet and blame-cache to 0.3-5

  • Upgrade jetty to 9.4.18.v20190429

  • Upgrade polymer to 2.7.2

    • Upgrade polymerelements/iron-autogrow-textarea to 2.2.0

    • Upgrade polymerelements/iron-dropdown to 2.2.1

    • Upgrade polymerelements/iron-icon to 2.1.0

    • Upgrade polymerelements/iron-iconset-svg to 2.2.1

    • Upgrade polymerelements/iron-input to 2.1.3

    • Upgrade polymerelements/iron-overlay-behavior to 2.3.4

    • Upgrade polymerelements/iron-selector to 2.1.0

    • Upgrade polymerelements/iron-test-helpers to 2.0.1

    • Upgrade polymerelements/test-fixture to 3.0.0

    • Upgrade polymerelements/paper-button to 2.1.3

    • Upgrade polymerelements/paper-input to 2.2.3

    • Upgrade polymerelements/paper-item to 2.1.1

    • Upgrade polymerelements/paper-listbox to 2.1.1

    • Upgrade polymerelements/paper-tabs to 2.1.1

    • Upgrade polymerelements/paper-toggle-button to 2.1.1

    • Upgrade visionmedia/page.js to 1.11.4

  • Upgrade truth to 1.0