Download: 3.0.1 | 3.0.0

Documentation: 3.0.1 |3.0.0

Release Highlights

  • Removal of GWT UI

    The GWT UI is removed and PolyGerrit is now the only UI.

  • Removal of ReviewDb

    The database backend for changes, accounts, groups and projects (“ReviewDb”) is removed and this metadata is now stored in git (“NoteDb”).

    A database is still needed for account patch reviews, which stores the ‘reviewed’ flag for files in a review per user. The default backend is H2, but MySQL, PostgreSQL and MariaDb are also supported. See the documentation for details.

    It is also possible for plugins to provide another backend by implementing the AccountPatchReviewStore interface.

  • New quota enforcer extension point.

  • Issue 4040: Support for signed push with GPG subkeys.

  • New core plugins: delete-project, gitiles, plugin-manager, and webhooks.

Important Notes

Schema Changes

This release contains schema changes. To upgrade:

  java -jar gerrit.war init -d site_path

Breaking Changes

  • Reverse DNS lookup is now disabled by default

    The gerrit.disableReverseDnsLookup option with default value false is replaced by gerrit.enableReverseDnsLookp also with default value false. This means that reverse DNS lookup is now disabled by default.

New Features

  • New quota enforcer extension point.

    Plugins may implement the QuotaEnforcer interface to enforce quotas.

  • Issue 4040: Support for signed push with GPG subkeys.

    It is now possible to use a GPG subkey when pusing commits with signed push.

  • Issue 6053: Support for searching on mobile devices.

  • Issue 8535: Support for plugin config entries in the PolyGerrit UI.

    Configuration entries defined by server-side plugins are now displayed in the UI.

  • New method to get UI top menus in the config API.

  • New core plugins.

    The delete-project, gitiles, plugin-manager, and webhooks plugins are now core plugins bundled with the release, and can be installed during site initialization.

Dependency Updates

  • Add dependency on resemblejs

  • Remove dependency on apache derby

  • Remove dependency on gwtjsonrpc

  • Remove dependency on gwtorm

  • Remove dependency on postgresql

  • Upgrade asm to 7.0

  • Upgrade auto-value to 1.6.5

  • Upgrade codemirror-minified to 5.43.0

  • Upgrade commons-lang3 to 3.8.1

  • Upgrade gitiles-blame-cache and gitiles-servlet to 0.2-8

  • Upgrade guava to 27.0.1-jre

  • Upgrade guice to 4.2.2

  • Upgrade prolog-cafe to 1.4.4

  • Upgrade soy to 2019-03-11

  • Upgrade truth to 0.43

Native packaging

  • Upgrade the Docker/Ubuntu image to Ubuntu 18.04

  • Upgrade the Docker/CentOS image to CentOS 7.6.1810

  • RPM/Deb: Remove Gerrit service start upon package setup.

    Gerrit service is no longer started automatically after the package installation, but requires manual invocation of the /etc/init.d/gerrit start command, or the configuration of the service for auto-start and the reboot of the machine.

  • Docker: auto-init the Gerrit site during first start of the container.

    Simplify the configuration and management of Docker setups by automatically detecting if a $GERRIT_SITE/git/All-Projects.git exists and, if it doesn’t, invoke the Gerrit init step in batch mode.

Bugfix Releases

3.0.1

  • Upgrade JGit to 5.3.1.201904271842-r.

  • Issue 10858: Fix starting Gerrit under Tomcat 8.

  • Issue 10664: Fix duplicate key detection in MySQL patch review database.

  • Issue 11016: Fix failure to initialize on slave.

  • Issue 10763: Fix ACLs to allow regexes for tag and ref permissions.

    The documentation states that reference names can also be described with a regular expression by prefixing the reference name with ^, but the UI only showed the creation field when a non-regex name was used.

  • Issue 11082: Close changes oldest first when submitting on push.

  • Issue 11059: Fix setting BLOCK on partial label range in permissions.

  • Issue 10790: Avoid evaluating submit rules twice for open changes.

    Prolog submit rules were evaluated twice per page view for an open change, which caused performance degradation on projects defining complex rules.

  • Issue 10943: Set References: header on new change notification mail.

    GMail changed the way emails are grouped in conversation view, which, combined with the fact that Amazon SES changes the Message-ID header, resulted in the new change notification email not being grouped with subsequent emails related to the same change.

  • Issue 10952: Fix definition of PID in gerrit.sh.

  • Issue 10852: Replication plugin: Fix scheduling starvation.

  • Issue 10896: Fix eliding project name without slash in notification emails.

  • Show submit button with tooltip when not allowed to submit.

    The submit button was hidden when the user did not have permission to submit, or other conditions prevented submit (for example the change being WIP).

  • Don’t send “GPG keys added” notification when no GPG keys were added.

    A GPG key update can include both addition and removal of GPG keys. The notification email for addition of new keys was always sent, even if the update only removed keys.

  • Update email notifications on changing security related settings.

    Email notifications are now sent when a GPG or SSH key is removed, and when the HTTP password is deleted or changed.

    An email notification is now always sent when an SSH key is added to an account, even when it was added by an administrator.

    These notifications allow to alert the user if their account is compromised and keys or password are altered by the attacker.

  • Remove explicit dependency on protobuf_java.

    The protobuf_java library is now consumed from rules_closure.

  • Improve performance of migration of accounts to schema 146.

    • Migration of the accounts is parallelized. The default number of threads used is the number of available processors. This can be customized using the threadcount system property.

    • Before the migration, gc --prune=now is executed.

    • When hosted on FileRepository, refs are packed after migration of every 1000 accounts.

    • A progress indicator counts every 100 accounts migrated.

  • Allow commit validation listeners to ignore the skip-validation push option.

    Gerrit allows certain users to skip validation of new commits by passing the skip-validation push option.

    A new method shouldValidateAllCommits is added on the CommitValidationListener, to allow plugin implemented validators to override this option and always be invoked for new commits. The new method has a default implementation that returns false meaning that existing implementations don’t need to be modified and will behave the same as before.

  • Optimize commit and ref operation validation for non-ff push.

    On a non-ff push all the commits were validated before the ref operation was validated. On a push with many commits, validating all the commits is wasteful in the case where the ref operation is rejected. The logic is changed so that the ref operation validation is performed before the commit validation.

  • Disallow change index task duplication.

    It was possible for multiple index tasks to be queued for the same change.

  • Fix formatting issues and inconsistencies in soy email templates.

  • Use URL Formatter interface to generate URL in outgoing emails.

  • Fix error message when JRE is not found when starting Gerrit.

    The error message recommended to check for a JRE “>= 1.7”, but Gerrit requires Java 8 minimum.

  • Expose the createProject method of the CreateProject class to plugins.

    This allows plugins to directly invoke the project creation, avoiding the checks that are performed when invking via the apply method.

  • Expose the jsr305 library in the plugin API.

  • Upgrade gitiles to 0.2-10.

    Includes a fix for rendering of metalinks in the navigation bar.

  • Elasticsearch fixes

    • Issue 10499: Set default number of shards according to Elasticsearch version.

      In Elasticsearch version 7.0 the default number of shards was reduced from 5 to 1.

      See the Elasticsearch documentation for details.

    • Issue 10496 and Issue 10844: Fix usage of include_type_name in index creation.

    • Add support for Elasticsearch 7.1.

    • Upgrade elasticsearch-rest-client to 7.1.1.

  • PolyGerrit UI fixes:

    • Only display 404 page on initial load.

    • Don’t reload when viewing dashboard.

    • Fix hiding the HTTP password screen.

      It was possible for the HTTP password to be un-hidden using CSS.

    • Add an extension point to allow adding links to the user header.

  • Documentation updates

    • Issue 10897: Update links to Google individual and corporate CLA pages.

    • Clarify that account must have a username to be able to set HTTP password.

    • Fix formatting in project config documentation.