0ef04a5b60
Change-Id: I277311042588398e235ffd1e74228a65562841e1
472 lines
17 KiB
Plaintext
472 lines
17 KiB
Plaintext
= Release notes for Gerrit 2.13
|
|
|
|
|
|
Gerrit 2.13 is now available:
|
|
|
|
link:https://www.gerritcodereview.com/download/gerrit-2.13.war[
|
|
https://www.gerritcodereview.com/download/gerrit-2.13.war]
|
|
|
|
|
|
== Important Notes
|
|
|
|
*WARNING:* This release contains schema changes. To upgrade:
|
|
----
|
|
java -jar gerrit.war init -d site_path
|
|
----
|
|
|
|
*WARNING:* To use online reindexing for `changes` secondary index when upgrading
|
|
to 2.13.x, the server must first be upgraded to 2.8 (or 2.9) and then through
|
|
2.10, 2.11 and 2.12. Skipping a version will prevent the online reindexer from
|
|
working.
|
|
|
|
Gerrit 2.13 introduces a new secondary index for accounts, and this must be
|
|
indexed offline before starting Gerrit:
|
|
----
|
|
java -jar gerrit.war reindex --index accounts -d site_path
|
|
----
|
|
|
|
If reindexing will be done offline, you may ignore these warnings and upgrade
|
|
directly to 2.13.x using the following command that will reindex both `changes`
|
|
and `accounts` secondary indexes:
|
|
----
|
|
java -jar gerrit.war reindex -d site_path
|
|
----
|
|
|
|
*WARNING:* The server side hooks functionality is moved to a core plugin. Sites
|
|
that make use of server side hooks must install this plugin during site init.
|
|
|
|
|
|
== Release Highlights
|
|
|
|
* Support for Large File Storage (LFS).
|
|
|
|
* Metrics interface.
|
|
|
|
* Hooks plugin.
|
|
|
|
* Secondary index for accounts.
|
|
|
|
* File annotations (blame) in side-by-side diff.
|
|
|
|
== New Features
|
|
|
|
=== Large File Storage (LFS)
|
|
|
|
Gerrit provides an
|
|
link:https://gerrit-review.googlesource.com/Documentation/2.13/dev-plugins.html#lfs-extension[
|
|
extension point] that enables development of plugins implementing the
|
|
link:https://github.com/github/git-lfs/blob/master/docs/api/v1/http-v1-batch.md[
|
|
LFS protocol].
|
|
|
|
By setting
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#lfs.plugin[
|
|
`lfs.plugin`] the administrator can configure the name of the plugin
|
|
which handles LFS requests.
|
|
|
|
=== Access control for git submodule subscriptions
|
|
|
|
To prevent potential security breaches as described in
|
|
link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3311[issue 3311],
|
|
it is now only possible for a project to subscribe to a submodule if the
|
|
submodule explicitly allows itself to be subscribed.
|
|
|
|
Please see the
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-submodules.html[
|
|
submodules user guide] for details.
|
|
|
|
Note that when upgrading from an earlier version of Gerrit, permissions for
|
|
any existing subscriptions will be automatically added during the database
|
|
schema migration.
|
|
|
|
=== Metrics
|
|
|
|
Metrics about Gerrit's internal state can be sent to external
|
|
monitoring systems.
|
|
|
|
Plugins can provide implementations of the metrics interface to
|
|
report metrics to different monitoring systems. The following
|
|
plugins are available:
|
|
|
|
* link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-jmx[
|
|
JMX]
|
|
|
|
* link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-graphite[
|
|
Graphite]
|
|
|
|
* link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-elasticsearch[
|
|
Elasticsearch]
|
|
|
|
Plugins can also provide their own metrics.
|
|
|
|
See the link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/metrics.html[
|
|
metrics documentation] for further details.
|
|
|
|
=== Hooks
|
|
|
|
Server side hooks are moved to the
|
|
link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/hooks[
|
|
hooks plugin]. Sites that make use of server side hooks should install this
|
|
plugin. After installing the plugin, no additional configuration is needed.
|
|
The plugin uses the same configuration settings in `gerrit.config`.
|
|
|
|
=== Secondary Index
|
|
|
|
* The secondary index now supports indexing of accounts.
|
|
+
|
|
The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/pgm-reindex.html[
|
|
reindex program] by default reindexes all changes and accounts. A new
|
|
option allows to explicitly specify whether to reindex changes or accounts.
|
|
+
|
|
The `suggest.fullTextSearch`, `suggest.fullTextSearchMaxMatches` and
|
|
`suggest.fullTextSearchRefresh` configuration options are removed. Full text
|
|
search is supported by default with the account secondary index.
|
|
|
|
* New ssh command to
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/cmd-index-changes.html[
|
|
reindex changes].
|
|
|
|
|
|
=== UI
|
|
|
|
* The UI can now be loaded in an iFrame by enabling
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#gerrit.canLoadInIFrame[
|
|
gerrit.canLoadInIFrame] in the site configuration.
|
|
|
|
==== Change Screen
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=106[Issue 106]:
|
|
Allow to select merge commit's parent for diff base in change screen.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3035[Issue 3035]:
|
|
Allow to remove specific votes from a change, while leaving the reviewer on the
|
|
change.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3487[Issue 3487]:
|
|
Use 'Ctrl-Alt-e' instead of 'e' to open edit mode.
|
|
|
|
==== Diff Screens
|
|
|
|
* Add all syntax highlighting available in CodeMirror.
|
|
|
|
* Improve search experience in diff screen
|
|
+
|
|
Ctrl-F, Ctrl-G and Shift-Ctrl-G now bind to the search dialog box provided by
|
|
CodeMirror's search add-on. Enter and Shift-Enter navigate among the search
|
|
results from the CodeMirror search, just like they do in a normal browser
|
|
search. Esc now clears the search result.
|
|
+
|
|
If the user sets `Render` to `Slow` in the diff preferences and the file is less
|
|
than 4000 lines (huge), then Ctrl-F, Ctrl-G and Shift-Ctrl-G fall back to the
|
|
browser search.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=2968[Issue 2968]:
|
|
Allow to go back to change list by keyboard shortcut from diff screens.
|
|
|
|
==== Side-By-Side Diff Screen
|
|
|
|
* Blame annotations
|
|
+
|
|
By enabling
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#change.allowBlame[
|
|
`change.allowBlame`], blame annotations can be shown in the side-by-side diff
|
|
screen gutter. Clicking the annotation opens the relevant change.
|
|
|
|
==== User Preferences
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=989[Issue 989]:
|
|
New option to control email notifications.
|
|
+
|
|
Users can now choose between 'Enabled', 'Disabled' and 'CC Me on Comments I Write'.
|
|
|
|
* New option to control adding 'Signed-off-by' footer in commit message of new changes
|
|
created online.
|
|
|
|
* New option to control auto-indent width in inline editor.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=890[Issue 890]:
|
|
New diff option to control whether to skip unchanged files when navigating to
|
|
the previous or the next file.
|
|
|
|
=== Changes
|
|
|
|
In order to avoid potentially confusing behavior, when submitting changes in a
|
|
batch, submit type rules may not be used to mix submit types on a single branch,
|
|
and trying to submit such a batch will fail.
|
|
|
|
=== REST API
|
|
|
|
==== Accounts
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3766[Issue 3766]:
|
|
Allow users with the
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/access-control.html#capability_modifyAccount[
|
|
'ModifyAccount' capability] to get the preferences for other users via the
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-user-preferences[
|
|
Get User Preferences] endpoint.
|
|
|
|
* Rename 'Suggest Account' to
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#query-account[
|
|
'Query Account'] and add support for arbitrary account queries.
|
|
+
|
|
The `_more_accounts` flag is set on the last result when there are more results
|
|
than the limit. The `DETAILS` and `ALL_EMAILS` options may be set to control
|
|
whether the results should include details (full name, email, username, avatars)
|
|
and all emails, respectively.
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-watched-projects[
|
|
Get Watched Projects].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#set-watched-projects[
|
|
Set Watched Projects].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#delete-watched-projects[
|
|
Delete Watched Projects].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-stars[
|
|
Get Star Labels from Change].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#set-stars[
|
|
Update Star Labels on Change].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-oauth-token[
|
|
Get OAuth Access Token].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#list-contributor-agreements[
|
|
List Contributor Agreements].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#sign-contributor-agreement[
|
|
Sign Contributor Agreement].
|
|
|
|
==== Changes
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3579[Issue 3579]:
|
|
Append submitted info to ChangeInfo.
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-changes.html#move-change[
|
|
Move Change].
|
|
|
|
==== Groups
|
|
|
|
* Add `-s` as an alias for `--suggest` on the
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-groups.html#suggest-group[
|
|
Suggest Group] endpoint.
|
|
|
|
==== Projects
|
|
|
|
* Add `async` option to the
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#run-gc[
|
|
Run GC] endpoint to allow garbage collection to run asynchronously.
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#get-access[
|
|
List Access Rights].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#set-access[
|
|
Add, Update and Delete Access Rights].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#create-tag[
|
|
Create Tag].
|
|
|
|
* New endpoint:
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#get-mergeable-info[
|
|
Get Mergeable Information].
|
|
|
|
=== Plugins
|
|
|
|
* Secure settings
|
|
+
|
|
Plugins may now store secure settings in `etc/$PLUGIN.secure.config` where they
|
|
will be decoded by the Secure Store implementation.
|
|
|
|
* Exported dependencies
|
|
+
|
|
Gson is now an exported dependency. Plugins no longer need to explicitly add
|
|
a dependency on it.
|
|
|
|
=== Misc
|
|
|
|
* New project option to reject implicit merge commits.
|
|
+
|
|
The 'Reject Implicit Merges' option can be enabled to prevent non-merge commits
|
|
from implicitly bringing unwanted changes into a branch. This can happen for
|
|
example when a commit is made based on one branch but is mistakenly pushed to
|
|
another, for example based on `refs/heads/master` but pushed to `refs/for/stable`.
|
|
|
|
* New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/access-control.html#category_add_patch_set[
|
|
Add Patch Set capability] to control who is allowed to upload a new patch
|
|
set to an existing change.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4015[Issue 4015]:
|
|
Allow setting a
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-upload.html#message[
|
|
comment message] when uploading a change.
|
|
|
|
* Allow to specify
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-upload.html#notify[
|
|
who should be notified by email] when uploading a change.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3220[Issue 3220]:
|
|
Append approval info to every comment-added stream event and hook.
|
|
|
|
* The `administrateServer` capability can be assigned to groups by setting
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#capability.administrateServer[
|
|
capability.administrateServer] in the site configuration.
|
|
+
|
|
Configuring this option can be a useful fail-safe to recover a server in the
|
|
event an administrator removed all groups from the `administrateServer`
|
|
capability, or to ensure that specific groups always have administration
|
|
capabilities.
|
|
|
|
* New configuration options to configure JGit repository cache parameters.
|
|
+
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#core.repositoryCacheCleanupDelay[
|
|
core.repositoryCacheCleanupDelay] and
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#core.repositoryCacheExpireAfter[
|
|
core.repositoryCacheExpireAfter] can be configured.
|
|
|
|
* Accept `-b` as an alias of `--batch` in the
|
|
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/pgm-init.html[
|
|
init program].
|
|
|
|
|
|
== Bug Fixes
|
|
|
|
* Don't add the same SSH key multiple times.
|
|
+
|
|
If an already existing SSH key was added, a duplicate entry was added to the
|
|
list of user's SSH keys.
|
|
|
|
* Respect the 'Require a valid contributor agreement to upload' setting
|
|
when creating changes via the UI.
|
|
+
|
|
If a user had not signed a CLA, it was still possible for them to create a new
|
|
change with the 'Revert' or 'Cherry Pick' button.
|
|
|
|
* Make Lucene index more stable when being interrupted.
|
|
|
|
* Don't show the `start` and `idle` columns in the `show-connections`
|
|
output when the ssh backend is NIO2.
|
|
+
|
|
The NIO2 backend doesn't provide the start and idle times, and the
|
|
values being displayed were just dummy values. Now these values are
|
|
only displayed for the MINA backend.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4150[Issue 4150]:
|
|
Deleting a draft inline comment no longer causes the change's `Updated` field to
|
|
be bumped.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4099[Issue 4099]:
|
|
Fix SubmitWholeTopic does not update subscriptions.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3603[Issue 3603]:
|
|
Fix editing a submodule via inline edit.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4069[Issue 4069]:
|
|
Fix highlights in scrollbar overview ruler not moved when extending the
|
|
displayed area.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3446[Issue 3446]:
|
|
Respect the `Skip Deleted` diff preference.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3445[Issue 3445]:
|
|
Respect the `Skip Uncommented` diff preference.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4051[Issue 4051]:
|
|
Fix empty `From` email header.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3423[Issue 3423]:
|
|
Fix intraline diff for added spaces.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=1867[Issue 1867]:
|
|
Remove `no changes made` error case when the only difference between a new
|
|
commit and the previous patch set of the change is the committer.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3831[Issue 3831]:
|
|
Prevent creating groups with the same name as a system group.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3754[Issue 3754]:
|
|
Fix `View All Accounts` permission to allow accounts REST endpoint to access
|
|
email info.
|
|
|
|
* Make `gitweb.type` default to `disabled` when not explicitly set.
|
|
+
|
|
Previously the behavior was not documented and it would default to type
|
|
`gitweb`. In cases where there was no gitweb config at all, this would
|
|
result in broken links due to `null` being used as the URL.
|
|
|
|
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4488[Issue 4488]:
|
|
Improve error message when `Change-Id` line is missing in commit message.
|
|
+
|
|
The error message now includes the sha1 of the commit, so that it is
|
|
easier to track down which commit failed validation when multiple commits
|
|
are pushed at the same time.
|
|
|
|
* Don't check mergeability of draft changes.
|
|
+
|
|
Draft changes can be deleted but not abandoned so there is no way for
|
|
an administrator to get rid of the them on behalf of the users. This can
|
|
become a problem when there many draft changes because the mergeability
|
|
check can be costly.
|
|
+
|
|
The mergeability check is no longer done for draft changes, but will be
|
|
done when the draft change is published.
|
|
|
|
* Fix internal server error when plugin-provided file history weblink
|
|
is null.
|
|
+
|
|
It is valid for a plugin to provide a null weblink, but doing so resulted
|
|
in an internal server error.
|
|
|
|
== Dependency updates
|
|
|
|
* Add dependency on blame-cache 0.1-9
|
|
|
|
* Add dependency on guava-retrying 2.0.0
|
|
|
|
* Add dependency on jsr305 3.0.1
|
|
|
|
* Add dependency on metrics-core 3.1.2
|
|
|
|
* Upgrade auto-value to 1.3-rc1
|
|
|
|
* Upgrade commons-net to 3.5
|
|
|
|
* Upgrade CodeMirror to 5.17.0
|
|
|
|
* Upgrade Guava to 19.0
|
|
|
|
* Upgrade Gson to 2.7
|
|
|
|
* Upgrade Guice to 4.1.0
|
|
|
|
* Upgrade gwtjsonrpc to 1.9
|
|
|
|
* Upgrade gwtorm to 1.15
|
|
|
|
* Upgrade javassist to 3.20.0-GA
|
|
|
|
* Upgrade Jetty to 9.2.14.v20151106
|
|
|
|
* Upgrade JGit to 4.5.0.201609210915-r
|
|
|
|
* Upgrade joda-convert to 1.8.1
|
|
|
|
* Upgrade joda-time to 2.9.4
|
|
|
|
* Upgrade Lucene to 5.5.0
|
|
|
|
* Upgrade mina to 2.0.10
|
|
|
|
* Upgrade sshd-core to 1.2.0
|