| --- |
| title: "Gerrit 2.16 Release (In Development)" |
| permalink: 2.16.html |
| hide_sidebar: true |
| hide_navtoggle: true |
| toc: true |
| --- |
| |
| ## Release Highlights |
| |
| * GWT UI is deprecated |
| |
| * PolyGerrit is now the default UI |
| |
| * Experimental Dark Mode in PolyGerrit. |
| |
| * Inline editing support in PolyGerrit UI. |
| |
| * Redesigned UI for PolyGerrit based on material. |
| |
| ## Important Notes |
| |
| ### Schema Changes |
| |
| This release contains schema changes. To upgrade: |
| |
| ``` sh |
| java -jar gerrit.war init -d site_path |
| ``` |
| |
| ### Reindex for new projects index and changed group index |
| |
| Gerrit 2.16 introduces a new secondary index for projects. The initial version |
| of this index must be created by running the offline reindex before starting |
| Gerrit: |
| |
| ``` sh |
| java -jar gerrit.war reindex --index projects -d site_path |
| ``` |
| |
| The group index got two new fields upon which Gerrit 2.16 depends. For this |
| reason, the following command to offline reindex the group index must be |
| executed as well: |
| |
| ``` sh |
| java -jar gerrit.war reindex --index groups -d site_path |
| ``` |
| |
| The offline reindex for groups should also be run on Gerrit slave hosts. |
| |
| Note that it is not necessary to reindex the changes and accounts indexes |
| offline. These will automatically be reindexed by the online reindexer after |
| starting Gerrit. |
| |
| ### Support for GWT UI is deprecated |
| |
| From 2.16 GWT UI is deprecated and will be removed in a future version. |
| |
| ### Support for Velocity templates removed |
| |
| In [version 2.14](2.14.md) support for Soy templates was added. For backwards |
| compatibility, support for Velocity templates (VTL) was kept. |
| |
| In version 2.16 support for VTL is completely removed. Site administrators must |
| replace any Velocity templates (`.vm` files in `$site/etc/mail/`) with the equivalent |
| Soy templates before upgrading to this version. |
| |
| ### Push to refs/changes is deprecated |
| |
| The possibility to push to `refs/changes` is now disabled by default. It is |
| still possible to enable it in the gerrit config by setting |
| [receive.allowPushToRefsChanges](https://gerrit-documentation.storage.googleapis.com/Documentation/2.16/config-gerrit.html#receive.allowPushToRefsChanges) |
| to true. |
| |
| ### DELETE requests with bodies are no longer recommended |
| |
| Some proxies, which are not under client control, prohibit DELETE requests with |
| bodies. DELETE requests with bodies could work on a first attempt, but could |
| fail afterwards because a server they have no control over was updated. In this |
| case, client users could be in trouble if they were not notified. |
| |
| Therefore, we have decided to no longer recommend sending DELETE requests with |
| bodies. They will continue to work in this release but should be considered as |
| deprecated and will be removed in the next release. |
| |
| ## New Features |
| |
| ### REST API |
| |
| ## ACL Changes |
| |
| ### ACLs: refs/for/ namespace is now deprecated |
| |
| The `refs/for` namespace is no longer used when evaluating access rights. |
| |
| #### Background |
| Removing the `refs/for` support in the ACLs intends to solve the following |
| issues: |
| |
| * Vast majority of permissions are defined on "real" branches. Forcing users to |
| define a small subset of the permissions on `refs/for/*` hinders readability and |
| the understanding of the applied ACLs. |
| |
| * For people using `refs/publish/` to upload reviews, it is confusing to force |
| Project Owners to set the push rules on `refs/for/` to allow creation of |
| changes. |
| |
| * Having `refs/for/` in the ACL UI makes it impossible to look at one single |
| ACL section and acknowledge with certainty which rules will be in effect for |
| that ref. |
| |
| #### Changes |
| |
| * Instead of defining push on `refs/for/*` a new `Create Review` permission is |
| introduced. Like other permissions, it should be defined on `refs/heads/*` (or |
| `refs/*`). |
| |
| * A new `Submit on Push` option for the `Submit` permission, which will enable |
| the %submit push parameter and remove the need to specify `Submit` on |
| `refs/for/*`. |
| |
| * `Add Patch Set` will work the same way, but should be specified on |
| `refs/heads/*` (just like the new `Create Review` permission). |
| |
| * `Push Merges` will work the same way, but should be specified on |
| `refs/heads/*` instead of `refs/for/*`. |
| |
| |
| #### Migration |
| |
| Any permission that could previously be applied to `refs/for` will |
| automatically be migrated to the new permission upon loading the ACLs. |
| |
| Note: The configuration is not automatically resaved, so the next time the |
| user edits the ACLs from the UI, the migrated ACLs will be shown and possibly |
| saved if the user chose to do so. |
| |
| ## Dependency Updates |
| |
| * Update Brics Automaton to 1.12-1 |
| |
| * Update commons-lang3 to 3.6 |
| |
| * Update Dropwizard metrics-core to 3.2.5 |
| |
| * Update elasticsearch to 2.4.6 |
| |
| * Update greenmail to 1.5.5 |
| |
| * Update gson to 2.8.2 |
| |
| * Update javax.mail to 1.6.0 |
| |
| * Update protobuf-java to 3.4.0 |
| |
| * Update soy to 2017-08-08 |
| |
| * Update tukaani-xz to 1.6 |
| |
| * Remove dependency on Velocity |
| |
| ## Plugin API changes |
| |
| * The class `com.google.gerrit.server.api.accounts.AccountExternalIdCreator` was |
| moved to `com.google.gerrit.server.account.AccountExternalIdCreator`. |