Download: 3.1.0
Documentation: 3.1.0
Support for git protocol v2
Polymer 2
Mandatory plugins
Performance logging and tracing
See the New Features section for further details.
This release contains schema changes. To upgrade:
java -jar gerrit.war init -d site_path
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
.
Id
and NameKey
classesPlugins 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()
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.
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.
The Gerrit frontend has been migrated from Polymer 1 to Polymer 2 and to using Shadow DOM. This may break JavaScript plugins, e.g. if they use document.getElementById()
to reach into the DOM. Instead, plugins will have to use dedicated plugin endpoints together with calling plugin.registerCustomComponent
.
Internet Explorer is not supported. Major browsers are supported for the following versions and newer: Firefox 68, Chrome 76, Safari 12.1.
refs/drafts/
is removedThe change.allowDrafts
configuration option is removed, and it is no longer possible to push new changes or patch sets to refs/drafts/<branch-name>
.
refs/changes/
is removedThe receive.allowPushToRefsChanges
configuration option is removed, and it is no longer possible to add a new patch set to a change by pushing to refs/changes/<change number>
.
.gitconfig
JGit's configuration options are now read from the $site/etc/jgit.config
file rather than the system level .gitconfig
.
Many NoteDb operations require walking the entire change meta ref and loading its contents into memory, so changes with arbitrarily many updates may cause high CPU usage, memory pressure, persistent cache bloat, and other problems.
A new configuration option change.maxUpdates
allows to set the maximum number of updates that are allowed.
container.slave
is renamed to container.replica
The container.slave
option is still recognized as an alias of container.replica
but is deprecated and will be removed in a future release.
Git protocol V2 is now enabled by default. A new permission-aware ref database ensures that Gerrit only ever returns refs that the calling user has access to.
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, but reloading of a mandatory plugin is still possible.
replication.config
The new option event.payload.listChangeOptions
allows to configure which options are used when rendering internal events. This can be used to reduce performance impact of rendering many options.
See the documentation for full details.
Accounts
DETAILS
query option on the query accounts endpoint now includes the status
and state
fields in the response.Changes
New SKIP_DIFFSTAT
option for the query changes endpoint.
Computation of the insertions
and deletions
fields may be expensive for large trees. The new SKIP_DIFFSTAT
option allows to omit it from the result.
New exclude-groups
option on the Suggest Reviewers endpoint.
New optional commit-message
field on the input for cherry-pick endpoints.
If the optional message is provided, it is used, otherwise the message from the cherry-picked change is used.
New optional topic
field on the input for the revert endpoint.
If the optional topic is provided, it is used, otherwise the topic from the reverted change is used.
Config
change.api.excludeMergeableInChangeInfo
is now included in the response from the Get Server Info endpoint.Projects
New endpoint: Update dashboard.
The new endpoint currently only works for the default dashboard.
Issue 5082: Fix internal server error when getting blame for removed/replaced file.
Issue 11918: Fix internal server error when deleting a ref by git push.
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-6
Upgrade jetty to 9.4.18.v20190429
Upgrade JGit to v5.5.1.201910021850-r-152-g63fc6970c
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