| = 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 |