Download: 3.3.0-rc3

Documentation: 3.3.0-rc3

Release highlights

Important notes

Default support for Java 11

The java language level is now set to Java 11 by default for Gerrit.

  • Issue 13494; Generate a Java 11 Eclipse project by default

  • Update dev-{eclipse,intellij} development for Java 11

Schema changes

This release contains schema changes. To upgrade:

  java -jar gerrit.war init -d site_path

Upgrading to this schema version (184) renames the Non-Interactive Users group to Service Users.

Breaking changes

  • New logs timestamp format:

    The new format supports both ISO-8601 and RFC3339, which means that if you are parsing it as general ISO-8601 it should work as before. However you will be affected if you are parsing the timestamp with a static format.

ChangeAttributeFactory deprecated and ChangePluginDefinedInfoFactory supported

Similar to the ChangeAttributeFactory, a ChangePluginDefinedInfoFactory allows plugins to provide additional data in change results. ChangePluginDefinedInfoFactory has the advantage that it allows plugins to know the full set of changes up front so that they can do bulk operations.

ChangeAttributeFactory will be removed in the next release.

Native packaging

New features

  • Attention Set:

    For every change Gerrit maintains an “Attention Set” with users that are currently expected to act on the change. Both on the dashboard and on the change page, this is expressed by an arrow icon before the user name.

    Disabled by default, enable by setting change.enableAttentionSet

REST API changes

  • Reject REST requests with invalid enum values as bad request

  • Expose ‘Service User’ tag on the REST API

  • Add endpoints to allow enhancement on submit requirements

  • Add parameter for added reviewers on reply-reviewers endpoint

  • Add an alternate CreateChange endpoint

  • Issue 13357; Add the work_in_progress option to the revert and revertSubmission endpoints

End-to-end tests

Plugin changes



  • New command: “Reset To”

    Add a new command that allows to reset the current branch to the commit that was fetched. This is useful in cases when the user is working on a local branch and the existing commands are not appropriate:

    • “Checkout” will check out the FETCH_HEAD, i.e. moving off the current branch and leaving the local repository in ‘detached head’ state.

    • “Cherry-Pick” will commit the fetched change again, resulting in a ‘new’ commit (i.e. changed sha1) which will result in a new patch set if the user creates any commits on top of it and pushes for review.

  • Issue 10021; Avoid quoting on basic strings


  • Add method to push changes directly to given replica

    This makes it possible to push changes directly to given replica instance without sending unnecessary requests to others.

    The method is intended to be used by other plugins that extend the replication plugin.

  • Issue 12769; Fix synopsis in replication start cmd documentation

    --url is usable with --all or projects and on its own. Updated the usage to reflect this.

  • Issue 12769; Don’t wait for pending events to process on startup

    Previously, on large Gerrit installations with many projects and/or many replication destinations, the replication plugin could take very long periods of time to startup. This was particularly a problem if the pending (persisted) event count was large as they all were rescheduled before the plugin finished initializing. Change this behavior so that startup merely begins the process of scheduling the pending events, but does not wait for them to complete.

  • Issue 11760; Make persistent task keys stable

  • Prevent persistent task listing interruptions on IOExceptions

    Improved the logging by differentiating between failures that are severe versus potentially related to other node actions since in a multi-primary scenario with shared storage, it is common for operations on one node to “interfere” with task listing operations on another node without causing a malfunction. Specifically, improve the exception handling so that the logging in these latter cases have a likely explanation of the listing error, and do not consider these specific filesystem errors operational errors.

    NOTE: The multi-primary replication is still experimental.

  • Issue 11745; Issue 12592; Fix firing pending “..all..” events on startup

  • Issue 12720; Fix extensibility of replication configuration parsing

    This situation was causing a regression for plugins that extend the replication plugin (e.g. pull-replication) because they are expecting a different remote configuration class.

  • Issue 12678; GerritRestApi: Fix logging of exceptions

  • Issue 12687; ReplicationTasksStorage: Handle DirectoryIteratorExceptions

  • Issue 12073; Don’t reset storage when rescheduling for collisions

Polygerrit UI changes

  • Add comment icon to CR column of the dashboard

  • Lock scroll for background when reply-dialog open

  • Fix use of registration dialog instead of overlay

  • A11y - Add meaningful label for Edit button on change page

  • Enable download dialog shortcut in diff page

  • Add title and shortcuts for some links and buttons

  • Fix titles for buttons

  • Add help icon to search bar with link to the doc

  • Fix first and last focusable elements in download and diff pref dialogs

  • Refine the UX on account chips

  • Add doc/bug icons to hovercard and change to help-outline icon

  • Re-use logic for opening up download dialog from ‘d’

  • Update hovercard text to say Your/their turn to take action

  • Offer an option to hide the file comment button

  • Update pg-plugin-dev document with polymer 3 examples

  • Fix broken link/icon to the master build status

  • Add link icon to messages in change log

  • A11y - Fix label and navigation for More Actions Button

  • Disable the ‘Send’ button when a comment is being edited

  • Fix the dangling comma after reviewer on dashboard

UI issues

Documentation changes

  • config-reverseproxy.txt: Document X-Forwarded-For header

  • Document possibility to resume reviews with meetings

  • Document how to mitigate the issue of broken Eclipse project on MacOS

  • Clarify documentation about parent project access right

JGit changes

Elasticsearch changes

  • ElasticContainer: Upgrade V6_8 to elasticsearch 6.8.12

  • ElasticContainer: Upgrade V7_8 to elasticsearch 7.8.1

  • Issue 12704; Simplify Init for Elasticsearch

Other dependency changes

  • Upgrade caffeine to 2.8.5

  • Upgrade jackson-core to 2.11.3

  • Upgrade metrics-core to

  • Upgrade soy to 2020-08-24

Other core changes

  • Limit graceful shutdown to SSH sessions serving git requests

  • NoteDbMigrator: Improve log message when saving ref updates

  • Explicitly check READ permission when processing a git push

  • Introduce sshd.gracefulStopTimeout

  • Fix eclipse project generation

  • Update instructions for running on Docker

  • Fix links and file name in emails for patchset-level comments

  • Add JavaScript style guide

Core issues

  • Issue 11637; Add a process to remove a core plugin

  • Issue 11774; Change filtering of messages in experimental ChangeLog

  • Issue 12707; Apply diff preferences immediately after clicking save

  • Issue 12934; Fix selection on diff with range comments

  • Issue 12994; Fix toggle on iOS

  • Issue 13014; Clean up disrespectful terms

  • Issue 13054; Restore keyboard shortcut for expand all diff context

  • Issue 13073; Fix highlight on multi-line range comments

  • Issue 13184; Respect log.textLogging and log.jsonLogging using –console-log

  • Issue 13266; Allow to use ‘Apply fix’ several times on the commit message

  • Issue 13349; When SSH is disabled, it should also be disabled on replica

  • Issue 13350; Decode group id before using it to add [cc-]reviewers

  • Issue 13376; Make sure that comment drafts are sorted to the end

Bugfix releases