| # Gerrit 2.14 |
| |
| Download: **[2.14](https://gerrit-releases.storage.googleapis.com/gerrit-2.14.war)** |
| |
| Documentation: **[2.14](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/index.html)** |
| |
| [TOC] |
| |
| ## Release Highlights |
| |
| * Changes can be assigned to specific users |
| * Open and Abandoned changes can be deleted |
| * HTML emails and new templating framework |
| * Support for receiving review comments by email |
| * New [Polymer](https://www.polymer-project.org/) based user interface |
| * Support for elliptic curve/ed25519 SSH keys |
| * Secondary index with Elastic Search (experimental) |
| |
| ## Important Notes |
| |
| ### Schema Changes |
| |
| This release contains schema changes. To upgrade: |
| |
| ``` sh |
| java -jar gerrit.war init -d site_path |
| ``` |
| |
| ### Java 8 |
| |
| Gerrit now requires Java Runtime Environment (JRE) version 8. It is no longer |
| possible to run Gerrit on JRE 7. |
| |
| ### Bouncy Castle Libraries |
| |
| The [Bouncy Castle Crypto API libraries](https://www.bouncycastle.org/) are now |
| distributed in the Gerrit `.war` file rather than being downloaded during site |
| initialization. When upgrading from a previous version of Gerrit, previously |
| downloaded Bouncy Castle `.jar` files remaining in the site's `/lib` folder will |
| be disabled by appending `.disabled` to the file name. |
| |
| ### HTTP Digest Authentication Removed |
| |
| Support for HTTP Digest Authentiation is removed. |
| |
| With the move to NoteDB, the per-account data (including the HTTP password) will |
| be stored in a branch in the `All-Users` repo, where it is subject to Gerrit ACLs. |
| Since these are notoriously hard to setup correctly, we want to avoid storing the |
| password in plaintext. |
| |
| Existing passwords will be migrated to a hashed password during site initialization |
| when upgrading from an earlier version of Gerrit. |
| |
| ### Deprecation of Velocity Email Templates |
| |
| This release deprecates the use of Velocity mail templates. In a future release |
| support will be removed and it will be necessary to upgrade custom mail templates |
| to Soy files. |
| |
| ### Tag Permissions |
| |
| The permissions "Push Annotated Tag" and "Push Signed Tag" are renamed to |
| "Create Annotated Tag" and "Create Signed Tag". Existing project configurations |
| using the old permission names will be migrated during site initialization. |
| |
| ## New Features |
| |
| ### Change Assignee |
| |
| Changes may be assigned to a specific user. This allows a workflow where the |
| user that is assigned to a change is responsible for reviewing the change and/or |
| passing the assignment on to another user. |
| |
| In the UI, changes assigned to the currently logged in user are highlighted. |
| |
| A new `assignee:` search predicate allows to find changes assigned to a given |
| user. |
| |
| ### Delete Changes |
| |
| * [Issue 4509](https://bugs.chromium.org/p/gerrit/issues/detail?id=4509): |
| Open and Abandoned changes can be deleted by administrators and by users who have |
| the |
| [Delete Own Changes](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/access-control.html#category_delete_own_changes) |
| permission. |
| |
| ### Emails |
| |
| #### HTML Emails |
| |
| Gerrit email messages are made easier to read by sending HTML content parts in |
| addition to the existing text email content. This is enabled by default, and |
| can be disabled by setting |
| [`sendemail.html`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/config-gerrit.html#sendemail.html) |
| to `false`. |
| |
| Users can opt to always receive plaintext emails by setting the |
| [Email Format preference](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/intro-user.html#email-format). |
| |
| #### Closure Templates |
| |
| Mail templates can now be written using |
| [Closure Templates (Soy)](https://developers.google.com/closure/templates/). Mail |
| templates written in Velocity (VTL) are deprecated but still supported. Support |
| for VTL will be dropped in the next release. |
| |
| #### Review Comments by Email |
| |
| Gerrit now supports |
| [receiving review comments by email](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/intro-user.html#reply-by-email). |
| |
| ### Secondary Index with Elastic Search |
| |
| It is possible to enable Elastic Search as a secondary index by setting |
| [`index.type`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/config-gerrit.html#index.type) |
| to `ELASTICSEARCH` and configuring the |
| [Elastic Search specific configuration parameters](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/config-gerrit.html#elasticsearch). |
| |
| Note that the Elastic Search implementation is still considered experimental |
| and it is not advised to use it for production systems. |
| |
| ### User Interface |
| |
| * Tags can be created and deleted via the Tags screen in the UI. |
| |
| * For merge commits, the list of commits that will be merged into the destination |
| branch is included as the `/MERGE_LIST` magic file which is shown as `Merge List` |
| in the UI. |
| |
| ### REST API |
| |
| #### Accounts |
| |
| * [Get Account Status](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-accounts.html#get-account-status) |
| * [Set Account Status](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-accounts.html#set-account-status) |
| * [Get Account External IDs](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-accounts.html#get-account-external-ids) |
| * [Delete Account External IDs](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-accounts.html#delete-account-external-ids) |
| |
| #### Changes |
| |
| * [Get Assignee](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#get-assignee) |
| * [Get Past Assignees](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#get-past-assignees) |
| * [Set Assignee](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#set-assignee) |
| * [Delete Assignee](https://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#delete-assignee) |
| * [List Change Robot Comments](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#list-change-robot-comments) |
| * [Create Merge Patch Set](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#create-merge-patch-set-for-change) |
| * [Get Description](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#get-description) |
| * [Set Description](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#set-description) |
| * [Get Merge List](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#get-merge-list) |
| * [Get Submit Preview](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#submit-preview) |
| * [List Revision Reviewers](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#list-revision-reviewers) |
| * [List Revision Votes](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#list-revision-votes) |
| * [Delete Revision Vote](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#delete-revision-vote) |
| |
| #### Groups |
| |
| * [Query Groups](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-groups.html#query-groups) |
| * [Index Group](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-groups.html#index-group) |
| |
| #### Projects |
| |
| * [Delete Tag](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-projects.html#delete-tag) |
| * [Delete Tags](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-projects.html#delete-tags) |
| |
| #### Revisions |
| |
| * [List Robot Comments](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#list-robot-comments) |
| * [Get Robot Comment](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14/rest-api-changes.html#get-robot-comment) |
| |
| ### New User Interface ("PolyGerrit") |
| |
| Gerrit now includes a new user interface, referred to as "PolyGerrit", based on |
| [Polymer](https://www.polymer-project.org/). |
| |
| The UI can be switched between PolyGerrit and GWT by clicking the "New UI" and |
| "Old UI" links in the site footer. Alternatively, the UI can be switched by |
| adding `?polygerrit=1` or `?polygerrit=0` to the URL. |
| |
| Note that PolyGerrit is still under development. Most use cases are supported, |
| but there are still some missing features compared to the GWT UI. |
| |
| ### SSHD |
| |
| * [Issue 4507](https://bugs.chromium.org/p/gerrit/issues/detail?id=4507): |
| Add support for elliptic curve/ed25519 SSH keys. |
| |
| ## Bugfixes |
| |
| * [Issue 5234](https://bugs.chromium.org/p/gerrit/issues/detail?id=5234): |
| Fix SSH GSSAPI authentication. |
| |
| ## Dependency Updates |
| |
| * Update auto-value to 1.4 |
| |
| * Update Bouncy Castle to 1.56 |
| |
| * Update codemirror to 5.25.0 |
| |
| * Update commons-compress to 1.12 |
| |
| * Update Guava to 21.0 |
| |
| * Update Guice to 4.1.0 |
| |
| * Update GWT to 2.8.0 |
| |
| * Update gwtjsonrpc to 1.11 |
| |
| * Update gwtorm to 1.17 |
| |
| * Update JavaEWAH to 1.1.6 |
| |
| * Update JGit to 4.7.0.201704051617-r |
| |
| * Update jsch to 0.54 |
| |
| * Update Lucene to 5.5.2 |
| |
| * Update mina to 2.0.16 |
| |
| * Update ow2-asm to 5.1 |
| |
| * Update prolog-cafe to 1.4.2 |
| |
| * Update SSHD to 1.4.0 |
| |
| |
| ## Bugfix Releases |
| |
| ### 2.14.1 *(In development)* {#2.14.1} |
| |
| * Allow multiple Servlet filters on Jetty HTTPD. |
| |
| It is now possible to specify multiple values for |
| [`httpd.filterClass`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#httpd.filterClass). |
| |
| * Add a `group indexed` extension point. |
| |
| Similar to the existing `change indexed` and `account indexed `extension points, |
| this allows plugins to be notified when a group has been indexed. |
| |
| * Extend upload validation interface to allow listening to negotiation start. |
| |
| This can be used to check rate limits for fetch requests. Rate limits |
| should be checked before git transport negotation starts to avoid |
| unnecessary work in case the limit is already reached. |
| |
| * Fix support for ECDSA and ED25519 SSH keys. |
| |
| ECDSA and ED25519 SSH host keys were not generated during site initialization |
| and were not loaded if they existed. |
| |
| * Fix initialization failure when removing old Bouncy Castle library fails. |
| |
| During initialization, old Bouncy Castle libraries are renamed with a `.backup` |
| suffix, but if the destination file already existed the initialization would |
| fail with a fatal error. Now a warning is printed and the initialization |
| continues. |
| |
| * [Issue 5393](https://bugs.chromium.org/p/gerrit/issues/detail?id=5393): |
| Improve the performance of reviewer suggestion. |
| |
| * [Issue 6173](https://bugs.chromium.org/p/gerrit/issues/detail?id=6173): |
| Fix setting |
| [`sshd.idleTimeout`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#sshd.idleTimeout) |
| for nio2 backend. |
| |
| The idle timeout was not properly set for the nio2 backend, so connections |
| would always time out with the default value (10 minutes). |
| |
| * Fix ref visibility checks in dashboards. |
| |
| * Replication plugin: Fix replication retries when `maxRetries` is set to 0. |
| |
| * Fix autocomplete for Firefox on LDAP login screen. |
| |
| * Add support for mariadb in AccountPatchReviewStore. |
| |
| * Fix notifications for comments on draft patch sets. |
| |
| * Fix internal server error when deleting current patch set and previous patch |
| set doesn't exist. |
| |
| * Always use SSL implicitly for POP3 and IMAP. |
| |
| If `receiveemail.encryption` is set to TLS/SSL, we always want to use the |
| implicit mode to execute the TLS/SSL command right after establishing |
| the conection with the mail server. Strict mail servers like Gmail would |
| close the connection prematurely otherwise. |
| |
| * Allow plugins to non-transitively depend on prolog rules. |
| |
| * PolyGerrit UI |
| |
| * [Issue 6096](https://bugs.chromium.org/p/gerrit/issues/detail?id=6096): |
| Add an "up" button to the diff screen. |
| |
| * [Issue 6041](https://bugs.chromium.org/p/gerrit/issues/detail?id=6041): |
| Display `/MERGE_LIST` and `/COMMIT_MESSAGE` as `Merge List` and |
| `Commit Message`. |
| |
| * [Issue 6080](https://bugs.chromium.org/p/gerrit/issues/detail?id=6080): |
| Allow editing status when full name is not editable. |
| |
| * [Issue 6176](https://bugs.chromium.org/p/gerrit/issues/detail?id=6176): |
| Fix internal server error when old patch set is not found. |
| |
| * [Issue 6166](https://bugs.chromium.org/p/gerrit/issues/detail?id=6166): |
| Fix loading favicon on a prefixed URL. |
| |
| * Make sure 'Merge Conflict' displays on change view. |