blob: 144c0dcdfe48ecb8b07188674ca2ad88d8c25455 [file] [view]
---
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`.