Release notes for Gerrit 2.9 ============================ Gerrit 2.9 is now available: link:https://gerrit-releases.storage.googleapis.com/gerrit-2.9.war[ https://gerrit-releases.storage.googleapis.com/gerrit-2.9.war] *WARNING:* Support for Java 1.6 has been discontinued. As of Gerrit 2.9, Java 1.7 is required. Gerrit 2.9 includes the bug fixes done with link:ReleaseNotes-2.8.1.html[Gerrit 2.8.1], link:ReleaseNotes-2.8.2.html[Gerrit 2.8.2], link:ReleaseNotes-2.8.3.html[Gerrit 2.8.3], link:ReleaseNotes-2.8.4.html[Gerrit 2.8.4], and link:ReleaseNotes-2.8.5.html[Gerrit 2.8.5]. These bug fixes are *not* listed in these release notes. Schema Change ------------- *WARNING:* This release contains schema changes. To upgrade: ---- java -jar gerrit.war init -d site_path java -jar gerrit.war reindex --recheck-mergeable -d site_path ---- *WARNING* Support for query via the SQL index is removed. The usage of a secondary index is now mandatory. *WARNING:* Upgrading to 2.9.x requires the server be first upgraded to 2.1.7 (or a later 2.1.x version), and then to 2.9.x. If you are upgrading from 2.2.x.x or later, you may ignore this warning and upgrade directly to 2.9.x. Release Highlights ------------------ * The new change screen is now the default change screen. + The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-review-ui.html[ documentation of the new review UI] describes the new screens in detail and highlights the important functionality with screenshots. + Users that are accessing the new change screen for the first time are informed about the new change screen by a welcome popup. The welcome popup links to the review UI documentation and allows users to go back to the old change screen. New Features ------------ Secondary Index ~~~~~~~~~~~~~~~ * New `--recheck-mergeable` option on the link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/pgm-reindex.html[ reindex] program. ssh ~~~ * New `--notify` option on the link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-review.html[ review] command allowing to control when email notifications should be sent. * New `--branch` option on the link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-review.html[ review] command. * New `--all-reviewers` option on the link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-query.html[ query] command allowing query results to include information about all reviewers added on the change. * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-apropos.html[ apropos] command to search the Gerrit documentation. * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-create-branch.html[ create-branch] command. REST API ~~~~~~~~ Documentation ^^^^^^^^^^^^^ * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/rest-api-documentation.html#search-documentation.html[ Search documentation]. Access Rights ~~~~~~~~~~~~~ * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/access-control.html#capability_viewAllAccounts[ global capability for viewing all accounts]. * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/access-control.html#capability_viewPlugins[ global capability for viewing the list of installed plugins]. * New `Change Owner` group that allows to assign label permissions to the change owner. * Support link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/access-control.html#category_submit_on_behalf_of[ on behalf of for submit]. * Allow service users to access REST API if `auth.gitBasicAuth = true`. + If link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-gerrit.html#auth.gitBasicAuth[ auth.gitBasicAuth] is set to `true` in the `gerrit.config` file all HTTP traffic is authenticated using standard `BasicAuth` and the credentials are validated using the same auth method as configured for the Gerrit Web UI. E.g. for LDAP this means that users must use their LDAP password for Git over HTTP and for accessing the REST API. + Service users are technical users that were created by the `create-account` SSH command. These users only exist in Gerrit and hence they do not have any LDAP password. This is why service users were not able to make use of the REST API if `auth.gitBasicAuth` was set to `true`. + Now if `auth.gitBasicAuth` is set to `true` users that exist only in Gerrit but not in LDAP are authenticated with their HTTP password from the Gerrit database. Search ~~~~~~ * Support for query via the SQL index is removed. The usage of a secondary index is now mandatory. * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#mergeable[ is:mergeable] search operator + Finds changes that have no merge conflicts and can be merged into the destination branch. * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#parentproject[ parentproject] search operator + Finds changes in the specified project or in one of its child projects. * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#conflicts[ conflicts] search operator + Finds changes that conflict with the specified change. * New operators for absolute last-updated-on search ** link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#before_until[ before / until] ** link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#after_since[ after / since] * Support exact match on file parts in link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#file[ file] operator * Query shortcuts ** `o` = `owner` ** `r` = `reviewer` ** `p` = `project` ** `f` = `file` Daemon ~~~~~~ * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-inspector.html[ Gerrit Inspector]: interactive Jython shell. + New `-s` option is added to the Daemon to start an interactive Jython shell for inspection and troubleshooting of live data of the Gerrit instance. Documentation ~~~~~~~~~~~~~ * The documentation is now https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/rest-api-documentation.html#search-documentation.html[ searchable]: + On each documentation page there is search box in the right top corner that allows to search in the documentation. * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-review-ui.html[ Documentation of the new review UI] * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/intro-project-owner.html[ New Project Owner Guide] * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/index.html[ Newly structured documentation index] Plugins ~~~~~~~ Issue Tracker System plugins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *WARNING:* There are new plugins for the integration with Bugzilla, Jira and IBM Rational Team Concert: * link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-bugzilla[plugins/its-bugzilla] * link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-jira[plugins/its-jira] * link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-rtc[plugins/its-rtc] The old plugins (`plugins/hooks-bugzilla`, `plugins/hooks-jira` and `plugins/hooks-rtc`) are deprecated with Gerrit 2.9. The new issue tracker system plugins have a common base which is link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-base[plugins/its-base]. The configuration of the new plugins is slightly different than the configuration of the old plugins because they use different section names in the Gerrit configuration. For easy migration the new plugins have an init step that allows to take over the configuration from the old plugins during the Gerrit initialization phase. New Features: * The issue tracker integration can be enabled/disabled per project. * Parent projects can enforce the issue tracker integration for their child projects. * It can be configured for which branches of a project the issue tracker integration is enabled. * Whether the issue tracker integration is enabled/disabled for a project can be changed from the ProjectInfoScreen in the Gerrit WebUI. Bug Fixes --------- Upgrades -------- * Update gwtjsonrpc to 1.5 * Update gwtorm to 1.8 Plugins ------- Replication ~~~~~~~~~~~ * The default push refSpec for the replication plugin has changed from `forced` to `non-forced` push (was `+refs/*:refs/*` and now is `refs/*:refs/*`). This change should not impact typical replication topologies where the slaves are read-only and can be pushed by their masters only. If you wanted explicitly to overwrite all changes on the slaves, you need to add a `push=+refs/*:refs/*` configuration entry for each replication target.