|  | Release notes for Gerrit 2.11 | 
|  | ============================= | 
|  |  | 
|  |  | 
|  | Gerrit 2.11 is now available: | 
|  |  | 
|  | link:https://www.gerritcodereview.com/download/gerrit-2.11.war[ | 
|  | https://www.gerritcodereview.com/download/gerrit-2.11.war] | 
|  |  | 
|  | Gerrit 2.11 includes the bug fixes done with | 
|  | link:ReleaseNotes-2.10.1.html[Gerrit 2.10.1], | 
|  | link:ReleaseNotes-2.10.2.html[Gerrit 2.10.2] and | 
|  | link:ReleaseNotes-2.10.3.html[Gerrit 2.10.3]. | 
|  | These bug fixes are *not* listed in these release notes. | 
|  |  | 
|  |  | 
|  | Important Notes | 
|  | --------------- | 
|  |  | 
|  |  | 
|  | *WARNING:* This release contains schema changes.  To upgrade: | 
|  | ---- | 
|  | java -jar gerrit.war init -d site_path | 
|  | ---- | 
|  |  | 
|  | Gerrit 2.11 requires a secondary index, which can be created offline | 
|  | by running the `reindex` program: | 
|  |  | 
|  | ---- | 
|  | java -jar gerrit.war reindex -d site_path | 
|  | ---- | 
|  |  | 
|  | If the site that is upgraded already has a secondary index, the | 
|  | secondary index can be upgraded online. This is important for large | 
|  | sites since running the `reindex` program can take a long time and | 
|  | contributes significantly to the downtime that is required for the | 
|  | upgrade. | 
|  |  | 
|  | Gerrit 2.11 supports online reindexing only from the index version `11` | 
|  | which is the index version of Gerrit 2.10. This means if you come from | 
|  | an older release it makes sense to first upgrade to 2.10 and then do | 
|  | the upgrade to 2.11 so that you can profit from online reindexing. | 
|  |  | 
|  | In case you are upgrading from 2.10 it is *important* to check *before* | 
|  | the upgrade to 2.11 that the index version of your Gerrit 2.10 site is | 
|  | `11`. You can check the index version in | 
|  | `$site_path/index/gerrit_index.config`. Your Gerrit 2.10 site may run | 
|  | with an older index version (e.g. if online reindexing to index version | 
|  | `11` is still running or if online reindexing to version `11` has | 
|  | failed). In this case you first need to successfully migrate your index | 
|  | version of your Gerrit 2.10 site to `11` and only then start with the | 
|  | 2.11 upgrade. If you start the 2.11 upgrade when the schema version of | 
|  | your Gerrit 2.10 site is older than `11`, online reindexing is no longer | 
|  | possible and you need to reindex offline by using the `reindex` program. | 
|  |  | 
|  | *WARNING:* Upgrading to 2.11.x requires the server be first upgraded to 2.8 (or | 
|  | 2.9) and then to 2.11.x. If you are upgrading from 2.8.x or later, you may ignore | 
|  | this warning and upgrade directly to 2.11.x. | 
|  |  | 
|  | *WARNING:* When upgrading from version 2.8.4 or older with a site that uses | 
|  | Bouncy Castle Crypto, new versions of the libraries will be downloaded. The old | 
|  | libraries should be manually removed from site's `lib` folder to prevent the | 
|  | startup failure described in | 
|  | link:https://code.google.com/p/gerrit/issues/detail?id=3084[Issue 3084]. | 
|  |  | 
|  | *WARNING:* The 'Generate HTTP Password' capability has been | 
|  | link:#remove-generate-http-password-capability[removed]. | 
|  |  | 
|  | *WARNING:* Google will | 
|  | link:https://developers.google.com/+/api/auth-migration[shut down their OpenID | 
|  | service on 20th April 2015]. Administrators of sites whose users are registered | 
|  | with Google OpenID accounts should encourage the users to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-sso.html#_multiple_identities[ | 
|  | add an alternative identity to their account] before this date. Users who do | 
|  | not add an alternative identity before this date will need to create a new | 
|  | account and ask the site administrator to | 
|  | link:https://code.google.com/p/gerrit/wiki/SqlMergeUserAccounts[merge it]. | 
|  |  | 
|  | *WARNING:* The | 
|  | link:https://gerrit-review.googlesource.com/Documentation/2.10/rest-api-changes.html#message[ | 
|  | Edit Commit Message] REST API endpoint is removed | 
|  |  | 
|  | *WARNING:* The deprecated '/query' URL is removed and will now return `Not Found`. | 
|  |  | 
|  | Release Highlights | 
|  | ------------------ | 
|  |  | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=505[Issue 505]: | 
|  | Changes can be created and edited directly in the browser. See the | 
|  | link:#inline-editing[Inline editing] section for more details. | 
|  |  | 
|  | * Many improvements in the new change screen. | 
|  |  | 
|  | * The old change screen is removed. | 
|  |  | 
|  |  | 
|  | New Features | 
|  | ------------ | 
|  |  | 
|  |  | 
|  | Web UI | 
|  | ~~~~~~ | 
|  |  | 
|  | [[inline-editing]] | 
|  | Inline Editing | 
|  | ^^^^^^^^^^^^^^ | 
|  |  | 
|  | Refer to the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/user-inline-edit.html[ | 
|  | inline editing user guide] for detailed instructions. | 
|  |  | 
|  | * New changes can be created directly in the browser via a 'Create Change' | 
|  | button on the project info screen. | 
|  |  | 
|  | * New follow-up changes can be created via a 'Follow-Up' button on the change | 
|  | screen. | 
|  |  | 
|  | * File content can be edited in a full screen CodeMirror editor with support for | 
|  | themes and syntax highlighting. | 
|  |  | 
|  | * The CodeMirror screen can be configured in the same way as the side-by-side | 
|  | diff screen. | 
|  |  | 
|  | * The file table in the change screen supports seamless navigation to the | 
|  | CodeMirror editor. | 
|  |  | 
|  | * Edit mode can be started from the side-by-side diff screen with seamless | 
|  | navigation to the CodeMirror editor. | 
|  |  | 
|  | * The commit message must now be changed in the context of a change edit. The | 
|  | 'Edit Message' button is removed from the change screen. | 
|  |  | 
|  | * Files can be added, deleted, restored and modified directly in browser. | 
|  |  | 
|  | Change Screen | 
|  | ^^^^^^^^^^^^^ | 
|  |  | 
|  | * Remove the 'Edit Message' button from the change screen. | 
|  | + | 
|  | The commit message is now edited using the inline edit feature. | 
|  |  | 
|  | * Add support for changing parent revision with the 'Rebase' button. | 
|  | + | 
|  | Using the 'Rebase' button it is now possible to rebase a change onto a | 
|  | different change (on the same destination branch), rather than only onto the | 
|  | head of the destination branch or the latest patch set of the predecessor change. | 
|  |  | 
|  | * Show the parent commit's subject as a tooltip. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=2541[Issue 2541], | 
|  | link:http://code.google.com/p/gerrit/issues/detail?id=2974[Issue 2974]: | 
|  | Allow the 'Reply' button's | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#change.replyLabel[ | 
|  | label and tooltip] to be configured. | 
|  |  | 
|  | * Improve file sorting for C and C++ files. | 
|  | + | 
|  | Header files are now listed before implementation files. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3148[Issue 3148]: | 
|  | Allow display of colored size bars to be enabled or disabled per user. | 
|  | + | 
|  | The 'Show Change Sizes As Colored Bars In Changes Table' setting is renamed to | 
|  | 'Show Change Sizes As Colored Bars' and is now used to also control how the | 
|  | change size is shown per file in the file table. | 
|  | + | 
|  | When enabled (which is the default), the change size per file is shown as a sum | 
|  | of lines added/removed, and also representated by a colored bar showing the | 
|  | proportion of added/removed lines. | 
|  | + | 
|  | When disabled, the colored bar is not shown and the change size per file is shown | 
|  | in the same way as it used to be in the old change screen. | 
|  |  | 
|  | * Show changes across all projects and branches in the `Same Topic` tab. | 
|  |  | 
|  |  | 
|  | Side-By-Side Diff | 
|  | ^^^^^^^^^^^^^^^^^ | 
|  |  | 
|  | * New button to switch between side-by-side diff and unified diff. | 
|  |  | 
|  | * New preference setting to toggle auto-hiding of the diff table header. | 
|  | + | 
|  | The setting determines whether or not the diff table header with the patch set | 
|  | selection should be automatically hidden when scrolling down more than half of | 
|  | a page. | 
|  |  | 
|  | * Highlight search results on scrollbar. | 
|  | + | 
|  | Search results in vim mode are highlighted in the scrollbar with gold | 
|  | colored annotations. | 
|  |  | 
|  | * Set line length to 72 characters for commit messages. | 
|  |  | 
|  | * Add syntax highlighting for several new modes: | 
|  |  | 
|  | ** link:https://code.google.com/p/gerrit/issues/detail?id=2848[Issue 2848]: CSharp | 
|  | ** Dart | 
|  | ** Dockerfile | 
|  | ** GLSL shader | 
|  | ** Go | 
|  | ** Objective C | 
|  | ** RELAX NG | 
|  | ** link:http://code.google.com/p/gerrit/issues/detail?id=2779[Issue 2779]: reStructured text | 
|  | ** Soy | 
|  |  | 
|  |  | 
|  | Projects Screen | 
|  | ^^^^^^^^^^^^^^^ | 
|  |  | 
|  | * Add pagination and filtering on the branch list page. | 
|  |  | 
|  | * Add an 'Edit Config' button on the project info page. | 
|  | + | 
|  | The button creates a new change on the `refs/meta/config` branch and opens the | 
|  | `project.config` file in the inline editor. | 
|  | + | 
|  | This allows project owners to easily edit the `project.config` file from the | 
|  | browser, which is useful since it is possible that not all configuration options | 
|  | are available in the UI. | 
|  |  | 
|  | REST | 
|  | ~~~~ | 
|  |  | 
|  | Accounts | 
|  | ^^^^^^^^ | 
|  |  | 
|  | * Add new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#suggest-account[ | 
|  | Suggest Account endpoint]. | 
|  |  | 
|  | Changes | 
|  | ^^^^^^^ | 
|  |  | 
|  | * The link:https://gerrit-review.googlesource.com/Documentation/2.10/rest-api-changes.html#message[ | 
|  | Edit Commit Message] endpoint is removed in favor of the new | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[ | 
|  | Change commit message in Change Edit] and | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[ | 
|  | Publish Change Edit] endpoints. | 
|  |  | 
|  | * Add new | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#check-change[ | 
|  | Check Change endpoint]. | 
|  | + | 
|  | In the past, Gerrit bugs, lack of transactions, and unreliable NoSQL backends | 
|  | have at various times produced a bewildering variety of corrupt states. | 
|  | + | 
|  | This endpoint can be used to detect, explain, and repair some of these possible | 
|  | states of a change. | 
|  |  | 
|  | * Add new | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-revision-actions[ | 
|  | Get Revision Actions endpoint]. | 
|  |  | 
|  | * Add | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#change-actions[ | 
|  | `CHANGE_ACTIONS`] option on the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-change-detail[ | 
|  | Get Change Detail] endpoint. | 
|  |  | 
|  |  | 
|  | Change Edits | 
|  | ^^^^^^^^^^^^ | 
|  |  | 
|  | Several new endpoints are added to support the inline edit feature. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-detail[ | 
|  | Get Edit Detail]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-edit-file[ | 
|  | Change file content in Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#post-edit[ | 
|  | Restore file content in Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[ | 
|  | Change commit message in Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit-file[ | 
|  | Delete file in Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-file[ | 
|  | Retrieve file content from Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-message[ | 
|  | Retrieve commit message from Change Edit or current patch set of the change]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[ | 
|  | Publish Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#rebase-edit[ | 
|  | Rebase Change Edit]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit[ | 
|  | Delete Change Edit]. | 
|  |  | 
|  |  | 
|  | Projects | 
|  | ^^^^^^^^ | 
|  |  | 
|  | * Add new | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#delete-branches[ | 
|  | Delete Branches] endpoint. | 
|  |  | 
|  | * Add filtering and pagination options on the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-branches[ | 
|  | List Branches] endpoint. | 
|  |  | 
|  | * Add new | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-tags[ | 
|  | List Tags] endpoint. | 
|  |  | 
|  | * Add new | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#get-tag[ | 
|  | Get Tag] endpoint. | 
|  |  | 
|  |  | 
|  | Configuration | 
|  | ~~~~~~~~~~~~~ | 
|  |  | 
|  | * Add support for | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#auth.httpExternalIdHeader[ | 
|  | HTTP external ID header]. | 
|  | + | 
|  | This can be used when authenticating with a federated identity token from | 
|  | an external system, e.g. GitHub's OAuth 2.0 authentication. | 
|  |  | 
|  | * Add | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-labels.html#label_copyAllScoresIfNoChange[ | 
|  | `copyAllScoresIfNoChange`] setting for labels. | 
|  | + | 
|  | Allows to copy scores forward when a new patch set is uploaded that has the same | 
|  | parent tree, code delta, and commit message as the previous patch set. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2786[Issue 2786]: | 
|  | Allow non-administrators to modify user accounts. | 
|  | + | 
|  | A new global capability, | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_modifyAccount[ | 
|  | 'Modify Account'], which allows the granted group members to modify user account | 
|  | settings via the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[ | 
|  | `set-account` SSH command]. | 
|  | + | 
|  | Modification of users' SSH keys is still restricted to administrators. | 
|  |  | 
|  | * Add support for | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#ldap.useConnectionPooling[ | 
|  | LDAP connection pooling]. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=699[Issue 699]: Allow to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#receive.maxBatchChanges[ | 
|  | limit max number of changes pushed in a batch]. | 
|  | + | 
|  | Can be overridden by members of groups that are granted the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_batchChangesLimit[ | 
|  | Batch Changes Limit] capability. | 
|  |  | 
|  | * Allow to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.disableReverseDnsLookup[ | 
|  | disable reverse DNS lookup]. | 
|  | + | 
|  | This option can be set to improve push time from hosts without a reverse DNS | 
|  | entry. | 
|  |  | 
|  | * Allow to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#cache.projects.loadOnStartup[ | 
|  | load the project cache at server startup]. | 
|  |  | 
|  | * Allow members of groups granted the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_accessDatabase[ | 
|  | AccessDatabase capability] to view metadata refs. | 
|  |  | 
|  | * Allow to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#http.addUserAsRequestAttribute[ | 
|  | add the user to the http request attributes]. | 
|  |  | 
|  | * Allow to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearch[ | 
|  | enable full text search in memory for review suggestions]. | 
|  | + | 
|  | The maximum number of reviewers evaluated can be limited with | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearchMaxMatches[ | 
|  | suggest.fullTextSearchMaxMatches]. | 
|  |  | 
|  | * Allow to provide an alternative | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.secureStoreClass[ | 
|  | secure store implementation]. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=1195[Issue 1195]: | 
|  | Allow projects to be configured to create a new change for every uploaded commit that is not in the target branch. | 
|  |  | 
|  | * Allow to configure | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#container.daemonOpt[ | 
|  | options to pass to the daemon]. | 
|  |  | 
|  | Daemon | 
|  | ~~~~~~ | 
|  |  | 
|  | * Allow to enable the http daemon when running in slave mode. | 
|  | + | 
|  | The `--enable-httpd` option can be used in conjunction with the `--slave` option | 
|  | to allow clients to fetch from the slave over the http protocol. | 
|  | + | 
|  | HTTP Authentication may also be used when running in slave mode. | 
|  |  | 
|  | * Include the submitter's name in the change message when a change is submitted. | 
|  |  | 
|  | * Add a message to changes created via cherry pick. | 
|  | + | 
|  | When a change is cherry-picked to another branch using the cherry-pick action, | 
|  | the message 'Patch Set <number>: Cherry Picked from branch <name>.' is added as | 
|  | a change message on the created change. | 
|  |  | 
|  | * Don't send 'new patch set' notification emails for trivial rebases. | 
|  |  | 
|  |  | 
|  | SSH | 
|  | ~~~ | 
|  |  | 
|  | * Add new commands | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-ls-level.html[ | 
|  | `logging ls-level`] and | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-set-level.html[ | 
|  | `logging set-level`] to show and set the logging level at runtime. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=602[Issue 602]: | 
|  | Add `--json` option to the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[ | 
|  | `review` SSH command]. | 
|  | + | 
|  | Review input can be given to the `review` command in JSON format corresponding | 
|  | to the REST API's | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#review-input[ | 
|  | ReviewInput] entity. | 
|  |  | 
|  | *  link:https://code.google.com/p/gerrit/issues/detail?id=2824[Issue 2824]: | 
|  | Add `--rebase` option to the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[ | 
|  | `review` SSH command]. | 
|  |  | 
|  | * Add `--clear-http-password` option to the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[ | 
|  | `set-account` SSH command]. | 
|  |  | 
|  | * Add `--preferred-email` option to the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[ | 
|  | `set-account` SSH command]. | 
|  |  | 
|  | Email | 
|  | ~~~~~ | 
|  |  | 
|  | * Add `$change.originalSubject` field for email templates. | 
|  | + | 
|  | GMail threads messages together by subject and ignores the list headers included | 
|  | by Gerrit. | 
|  | + | 
|  | Site administrators that run servers whose end-user base is mostly on GMail can | 
|  | modify the site's `ChangeSubject.vm` template to use `$change.originalSubject` to | 
|  | improve threading for GMail inboxes. | 
|  | + | 
|  | The `originalSubject` field is automatically taken from the existing subject | 
|  | field during first use. | 
|  |  | 
|  |  | 
|  | Plugins | 
|  | ~~~~~~~ | 
|  |  | 
|  | General | 
|  | ^^^^^^^ | 
|  |  | 
|  | * Plugins can listen to account group membership changes. | 
|  | + | 
|  | The audit log service allows to register listeners to group member added and | 
|  | group member deleted events. A default listener logs these events to the database | 
|  | as before, but additional listeners may now be registered for these events using | 
|  | the `GroupMemberAuditListener` interface. | 
|  |  | 
|  | * Plugins can validate ref operations. | 
|  | + | 
|  | Plugins implementing the `RefOperationValidationListener` interface can | 
|  | perform additional validation checks against ref creation/deletion operations | 
|  | before they are applied to the git repository. | 
|  |  | 
|  | * Plugins can provide project-aware top menu extensions | 
|  | + | 
|  | Plugins can provide sub-menu items within the 'Projects' context. The | 
|  | '$\{projectName\}' placeholder is replaced by the project name. | 
|  |  | 
|  | * Auto register static/init.js as JavaScript plugin. | 
|  | + | 
|  | When a plugin does not expose Guice Modules explicitly, auto discover and | 
|  | register static/init.js as WebUi extension if found by the plugin content | 
|  | scanner. | 
|  |  | 
|  | * Plugins can validate outgoing emails. | 
|  | + | 
|  | Plugins implementing `OutgoingEmailValidationListener` interface can filter | 
|  | and modify outgoing emails before they are sent. | 
|  |  | 
|  | * Plugins that provide initialization steps may now use functionality | 
|  | from InitUtil in core Gerrit. | 
|  |  | 
|  | * Plugins can post change reviews with historic timestamps. | 
|  | + | 
|  | This allows, for example, to write a plugin that can import a project including | 
|  | review information from another Gerrit server. | 
|  |  | 
|  | * New extensions in the Java Plugin API: | 
|  |  | 
|  | ** Set/Put topic. | 
|  | ** Get mergeable status. | 
|  | ** link:https://code.google.com/p/gerrit/issues/detail?id=461[Issue 461]: | 
|  | Get current user. | 
|  | ** Get file content. | 
|  | ** Get file diff. | 
|  | ** Get comments and drafts. | 
|  | ** Get change edit. | 
|  |  | 
|  | Replication | 
|  | ^^^^^^^^^^^ | 
|  |  | 
|  | * Projects can be specified with wildcard in the `start` command. | 
|  |  | 
|  |  | 
|  | Bug Fixes | 
|  | --------- | 
|  |  | 
|  | Daemon | 
|  | ~~~~~~ | 
|  |  | 
|  | * Change 'Merge topic' to 'Merge changes from topic'. | 
|  | + | 
|  | When multiple changes from a topic are submitted resulting in a merge commit, | 
|  | the title of the merge commit is now 'Merge changes from topic' instead of | 
|  | 'Merge topic'. | 
|  |  | 
|  | * Fix visibility checks for `refs/meta/config`. | 
|  | + | 
|  | Under some conditions it was possible for the `refs/meta/config` branch to be | 
|  | erroneously considered not visible to the user. | 
|  |  | 
|  | * Sort list of updated changes in output from push. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2940[Issue 2940]: | 
|  | Improve warning messages when `Change-Id` is missing in the commit message. | 
|  |  | 
|  | ** Add a hint to amend the commit after installing the commit-msg hook. | 
|  | ** Don't show 'Suggestion for commit message' when `Change-Id` is missing. | 
|  |  | 
|  | * Allow to publish draft patch sets even when `allowDrafts` is false. | 
|  | + | 
|  | If a user uploaded a change while `allowDrafts` was enabled, and then it was | 
|  | disabled by the administrator, the uploaded change could not be published and | 
|  | was stuck in the draft state. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=3249[Issue 3249]: | 
|  | Fix server error when checking mergeability of a change. | 
|  |  | 
|  | * Workaround Guice bug "getPathInfo not decoded". | 
|  | + | 
|  | Due to link:https://github.com/google/guice/issues/745[Guice issue 745], cloning | 
|  | of a repository with a space in its name was impossible. | 
|  |  | 
|  |  | 
|  | Secondary Index / Search | 
|  | ~~~~~~~~~~~~~~~~~~~~~~~~ | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2822[Issue 2822]: | 
|  | Improve Lucene analysis of words linked with underscore or dot. | 
|  | + | 
|  | Instead of treating words linked with underscore or dot as one word, Lucene now | 
|  | treats them as separate words. | 
|  |  | 
|  | * Fix support for `change~branch~id` in query syntax. | 
|  |  | 
|  |  | 
|  | Configuration | 
|  | ~~~~~~~~~~~~~ | 
|  |  | 
|  | [[remove-generate-http-password-capability]] | 
|  | * Remove the 'Generate HTTP Password' capability. | 
|  | + | 
|  | The 'Generate HTTP Password' capability has been removed to close a security | 
|  | vulnerability.  Now only administrators are allowed to generate and delete other | 
|  | users' http passwords via the REST or SSH interface. | 
|  | + | 
|  | It is encouraged to clean up your `project.config` settings after upgrading. | 
|  |  | 
|  | * Fix support for multiple `footer` tokens in tracking ID config. | 
|  | + | 
|  | Contrary to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#trackingid[ | 
|  | the documentation], if more than one `footer` token was specified in the | 
|  | `trackingid` section, only the first was used. | 
|  |  | 
|  | * Treat empty | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#hooks[ | 
|  | `hooks.*`] values as missing, rather than trying to execute the hooks | 
|  | directory. | 
|  |  | 
|  | * Fix `changed-merged` hook configuration. | 
|  | + | 
|  | Contrary to the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#hooks[ | 
|  | documentation], the changed-merged hook configuration value was being | 
|  | read from `hooks.changeMerged`. Fix to use `hooks.changeMergedHook` as | 
|  | documented. | 
|  |  | 
|  | Web UI | 
|  | ~~~~~~ | 
|  |  | 
|  | Change List | 
|  | ^^^^^^^^^^^ | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3304[Issue 3304]: | 
|  | Always show a tooltip on the label column entries. | 
|  |  | 
|  | Change Screen | 
|  | ^^^^^^^^^^^^^ | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3147[Issue 3147]: | 
|  | Allow to disable muting of common path prefixes in the file list. | 
|  | + | 
|  | In the file table, parts of the file path that are common to the file previously | 
|  | listed are muted. The purpose of this is to make it easier to see files that all | 
|  | belong under the same path, but some users find it annoying. | 
|  | + | 
|  | This feature can now be enabled or disabled, per user, with the 'Mute Common | 
|  | Path Prefixes In File List' setting. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3130[Issue 3130]: | 
|  | Remove special handling of 'LGTM' in review comments | 
|  | + | 
|  | Typing 'LGTM' in the review cover message no longer automatically selects the | 
|  | highest available Code-Review score. | 
|  |  | 
|  | * Show a confirmation dialog before deleting a draft change or patch set. | 
|  | + | 
|  | Previously there was no confirmation and a draft change or revision patch | 
|  | set would be lost if the button was accidentally clicked. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2533[Issue 2533]: | 
|  | Improve the layout and color scheme of buttons. | 
|  | + | 
|  | Several improvements have been made: | 
|  | + | 
|  | ** Move 'Publish' and 'Delete Change/Revision' buttons into header. | 
|  | + | 
|  | If a change/revision is a draft the natural next step is to publish (or delete) | 
|  | it, hence these buttons should be displayed in a more prominent place. | 
|  |  | 
|  | ** Highlight the 'Publish' button in blue. | 
|  | + | 
|  | If a change is a draft the natural next step is to publish it, hence | 
|  | the 'Publish' button should be highlighted similar to the quick | 
|  | approve button. | 
|  |  | 
|  | ** Fix the border color of buttons on the reply popup. | 
|  | + | 
|  | The buttons are blue but had white borders, which was inconsistent with the | 
|  | buttons on the change screen. | 
|  |  | 
|  | ** Remove red color for 'Abandon' and 'Restore' buttons. | 
|  | + | 
|  | There is nothing dangerous about these operations that justifies | 
|  | highlighting the buttons in red color. When the buttons are clicked | 
|  | there is a popup where the user must confirm the operation, so it can | 
|  | still be canceled. | 
|  |  | 
|  | ** Hide quick approve button for draft changes. | 
|  | + | 
|  | A draft change cannot be submitted, hence quick approving it is not that | 
|  | important. Hiding the quick approve button on draft changes makes space in the | 
|  | header for displaying more important actions such as 'Publish'. | 
|  |  | 
|  | * Differentiate between conflicts and already merged errors in cherry-pick | 
|  | + | 
|  | When a cherry-pick operation failed with 'Cherry pick failed' error, there was no | 
|  | way to know the reason for the failure: merge conflict or the commit is already | 
|  | on the target branch.  These failures are now differentiated and an appropriate | 
|  | error is reported. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2837[Issue 2837]: | 
|  | Improve display of long user names for collapsed comments in history. | 
|  | + | 
|  | If there were several users with long user names with the same prefix, e.g. | 
|  | 'AutomaticGerritVoterLinux' and 'AutomaticGerritVoterWindows', they would both | 
|  | be shown as 'AutomaticGerritVo...' and users had to expand the comment to see | 
|  | the full user name. | 
|  | + | 
|  | The ellipsis is now inserted in the middle of the user name so that the start | 
|  | and end of the user name are always visible, e.g. 'AutomaticG...VoterLinux' and | 
|  | 'AutomaticG...terWindows'. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2992[Issue 2992]: | 
|  | Fix display of review comments for Chrome on Android. | 
|  | + | 
|  | Chrome for Android has Font Boosting, which caused the review comments to | 
|  | be displayed too large. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2909[Issue 2909]: | 
|  | Make change owner votes removable. | 
|  | + | 
|  | If a change owner voted on a change, it was not possible for anyone other | 
|  | than the owner to remove the vote. | 
|  |  | 
|  | * Preserve topic when cherry-picking. | 
|  | + | 
|  | When a change is cherry-picked, the topic from the source change is preserved | 
|  | on the newly created change. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3007[Issue 3007]: | 
|  | Make the selected tab persistent. | 
|  | + | 
|  | If a change from the 'Same Topic' tab was clicked, the selected tab would reset | 
|  | to the default tab ('Related Changes'). | 
|  |  | 
|  | * Left-align column titles in the file list. | 
|  |  | 
|  | * Increase right margin of download box to make space for scrollbar. | 
|  | + | 
|  | Under some circumstances the browser's scrollbar would be shown over the | 
|  | copy-to-clipboard icons in the download dropdown. | 
|  |  | 
|  | * Display +1 score's text next to the checkbox for simple boolean labels. | 
|  | + | 
|  | In the reply box, the text of the label score is displayed on the right hand | 
|  | side when a score is selected, but this was missing for simple boolean labels. | 
|  |  | 
|  | * Don't show missing accounts as reviewer suggestions. | 
|  |  | 
|  | * Show the email address that matched the search in reviewer suggestions. | 
|  | + | 
|  | When matching accounts by email address against an external account, results | 
|  | now show the email address that matched, not the preferred email address. | 
|  |  | 
|  | * Fix accidental reviewer selection on slow networks. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3120[Issue 3120]: | 
|  | Align parent weblinks with parent commits in the commit box. | 
|  |  | 
|  |  | 
|  | Side-By-Side Diff | 
|  | ^^^^^^^^^^^^^^^^^ | 
|  |  | 
|  | * Return to normal mode after editing a draft comment. | 
|  | + | 
|  | Previously it would remain in visual mode. | 
|  |  | 
|  | * Fix C++ header and source syntax highlighting | 
|  | + | 
|  | cpp and hpp files were sometimes rendered with C mode and not the extended C++ | 
|  | mode.  This prevented keywords like `class` from being colored by the | 
|  | highlighter. | 
|  |  | 
|  |  | 
|  | Project Screen | 
|  | ^^^^^^^^^^^^^^ | 
|  |  | 
|  | * Fix alignment of checkboxes on project access screen. | 
|  | + | 
|  | The 'Exclusive' checkbox was not aligned with the other checkboxes. | 
|  |  | 
|  | REST API | 
|  | ~~~~~~~~ | 
|  |  | 
|  | Changes | 
|  | ^^^^^^^ | 
|  |  | 
|  | * Remove the administrator restriction on the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#index-change[ | 
|  | index change] endpoint. | 
|  | + | 
|  | The endpoint can now be used by any user who has visibility of the change. | 
|  |  | 
|  | * Only include account ID in responses unless `DETAILED_ACCOUNTS` option is set. | 
|  | + | 
|  | The behavior was inconsistent with the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#account-info[ | 
|  | documentation]. In the default case it was including only the account name, | 
|  | rather than only the account ID. | 
|  |  | 
|  | * Include revision's ref in responses. | 
|  | + | 
|  | The ref of a revision was only returned as part of the fetch info, which is only | 
|  | available if the download commands are installed. | 
|  |  | 
|  | * Correctly set the limit to the default when no limit is given in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#suggest-reviewers[ | 
|  | suggest reviewers] endpoint. | 
|  |  | 
|  | * Return correct response from 'delete draft' endpoints. | 
|  | + | 
|  | When the `change.allowDrafts` setting is False, it is not allowed to delete | 
|  | draft changes or patch sets. | 
|  | + | 
|  | In this case the response `405 Method Not Allowed` is now returned, instead of | 
|  | `409 Conflict`. | 
|  |  | 
|  |  | 
|  | Projects | 
|  | ^^^^^^^^ | 
|  |  | 
|  | * Make it mandatory to specify at least one of the `--prefix`, `--match` or `--regex` | 
|  | options in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-projects[ | 
|  | list projects] endpoint. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2706[Issue 2706]: | 
|  | Do not delete branches concurrently. | 
|  | + | 
|  | Deleting multiple branches from the UI was resulting in a server error when | 
|  | branches were in the packed-refs. | 
|  |  | 
|  | * Add retry logic for lock failure when deleting a branch. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=3153[Issue 3153]: | 
|  | Fix handling of project names ending with `.git`. | 
|  | + | 
|  | The projects REST API documentation states that the `.git` suffix will be | 
|  | stripped off the input project name, if present. | 
|  | + | 
|  | This was working for the 'Create Project' endpoint, but not for any of the | 
|  | others. | 
|  |  | 
|  |  | 
|  | Plugins | 
|  | ~~~~~~~ | 
|  |  | 
|  | Replication | 
|  | ^^^^^^^^^^^ | 
|  |  | 
|  | * Create missing repositories on the remote when replicating with the git | 
|  | protocol. | 
|  |  | 
|  | * Make `createMissingRepositories = false` take effect on `project-created` event. | 
|  | + | 
|  | Previously `createMissingRepositories = false` would prevent the replication | 
|  | plugin from trying to create a new project when a `ref-updated` event was fired, | 
|  | but when a `project-created` event was fired the replication plugin would try to | 
|  | create a project on the remote. | 
|  |  | 
|  |  | 
|  | Upgrades | 
|  | -------- | 
|  |  | 
|  | * Update Antlr to 3.5.2. | 
|  |  | 
|  | * Update ASM to 5.0.3. | 
|  |  | 
|  | * Update CodeMirror to 4.10.0-6-gd0a2dda. | 
|  |  | 
|  | * Update Guava to 18.0. | 
|  |  | 
|  | * Update Guice to 4.0-beta5. | 
|  |  | 
|  | * Update GWT to 2.7. | 
|  |  | 
|  | * Update gwtjsonrpc to 1.7-2-g272ca32. | 
|  |  | 
|  | * Update gwtorm to 1.14-14-gf54f1f1. | 
|  |  | 
|  | * Update Jetty to 9.2.9.v20150224. | 
|  |  | 
|  | * Update JGit to 3.7.0.201502260915-r.58-g65c379e. | 
|  |  | 
|  | * Update Lucene to 4.10.2. | 
|  |  | 
|  | * Update Parboiled to 1.1.7. | 
|  |  | 
|  | * Update Pegdown to 1.4.2. |