Release notes for Gerrit 2.12
=============================


Gerrit 2.12 is now available:

link:https://www.gerritcodereview.com/download/gerrit-2.12.war[
https://www.gerritcodereview.com/download/gerrit-2.12.war]

Important Notes
---------------

*WARNING:* This release contains schema changes.  To upgrade:
----
  java -jar gerrit.war init -d site_path
----

*WARNING:* To use online reindexing when upgrading to 2.12.x, the server must
first be upgraded to 2.8 (or 2.9) and then through 2.10 and 2.11 to 2.12.x. If
reindexing will be done offline, you may ignore this warning and upgrade directly
to 2.12.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 Solr secondary index is no longer supported. With this release
the only supported secondary index is Lucene.

*WARNING:* The format of the `ref-updated` event has changed. Users of the
link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger[
Jenkins Gerrit Trigger plugin] with jobs triggering on `ref-updated` should
upgrade to at least
link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger#GerritTrigger-Version2.15.1%28releasedSept142015%29[
version 2.15.1]. If an upgrade of the plugin is not possible, a workaround is
to change the branch configuration to type `Path` with a pattern like
`refs/*/master` instead of `Plain` and `master`.


Release Highlights
------------------

This release includes the following new features. See the sections below for
further details.

* New change submission workflows: 'Submit Whole Topic' and 'Submitted Together'.

* Support for GPG Keys and signed pushes.


New Features
------------

New Change Submission Workflows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* New 'Submit Whole Topic' setting.
+
When the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#change.submitWholeTopic[
`change.submitWholeTopic`] setting is enabled, all changes belonging to the same
topic will be submitted at the same time.
+
This setting should be considered experimental, and is disabled by default.

* Submission of changes may include ancestors.
+
If a change is submitted that has submittable ancestor changes, those changes
will also be submitted.

* The merge queue is removed.
+
Changes that cannot be submitted due to missing dependencies will no longer
enter the 'Submitted, Merge Pending' state.


GPG Keys and Signed Pushes
~~~~~~~~~~~~~~~~~~~~~~~~~~

* Signed push can be enabled by setting
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#receive.enableSignedPush[
`receive.enableSignedPush`] to true.
+
When a client pushes with `git push --signed`, Gerrit ensures that the push
certificate is valid and signed with a valid public key stored in the
`refs/meta/gpg-keys` branch of the `All-Users` repository.

* When signed push is enabled, and
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#gerrit.editGpgKeys[
`gerrit.editGpgKeys`] is set to true, users may upload their public GPG
key via the REST API or UI.
+
If this setting is not enabled, GPG keys may only be added by administrators
with direct access to the `All-Users` repository.

* Administrators may also configure
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#receive.certNonceSeed[
`receive.certNonceSeed`] and
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#receive.certNonceSlop[
`receive.certNonceSlop`].


Secondary Index
~~~~~~~~~~~~~~~

* link:http://code.google.com/p/gerrit/issues/detail?id=3333[Issue 3333]:
Support searching for changes by author and committer.
+
Changes are indexed by the git author and committer of the latest patch set,
and can be searched with the `author:` and `committer:` operators.
+
Changes are matched on either the exact whole email address, or on parts of the
name or email address.

* Add `from:` search operator to match by owner of change or author of comments.

* Add `commentby:` search operator to search by author of comments.

* Change the `topic:` search operator to search by the exact topic name.

* Add `intopic:` search operator to search by topics containing the search term.

* link:http://code.google.com/p/gerrit/issues/detail?id=3291[Issue 3291]:
Add `has:edit` search operator to match changes that have edit revisions on them.

* Allow configuration of maximum query size.
+
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#index.maxTerms[
`index.maxTerms`] can be set to limit the number of leaf index terms.

* Expose Lucene index writers for plugins.
+
Plugins can now reconfigure various Lucene performance related parameters
at runtime.

* Make Lucene index writers auto-commit writers.
+
Plugins can now temporarily turn on auto-committing in situations where it makes
sense to enforce all changes to be written to disk ASAP.


UI
~~

General
^^^^^^^

* Edit and diff preferences can be modified from the user preferences screen.
+
Previously it was only possible to edit these preferences from the actual
diff and edit screens.

* Add 'Edits' to the 'My' dashboard menu to list changes on which the user
has an unpublished edit revision.

* Support for URL aliases.
+
Administrators may define
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#urlAlias[
URL aliases] to map plugin screens into the Gerrit URL namespace.
+
Plugins may use user-specific URL aliases to replace certain screens for certain
users.


Project Screen
^^^^^^^^^^^^^^

* New tab to list the project's tags, similar to the branch list.


Inline Editor
^^^^^^^^^^^^^

* Store and load edit preferences in git.
+
Edit preferences are stored and loaded to/from the `All-Users` repository.

* Add 'auto close brackets' feature.

* Add 'match brackets' feature.

* Make the cursor blink rate customizable.

* Add support for Emacs and Vim key maps.


Change Screen
^^^^^^^^^^^^^

* link:http://code.google.com/p/gerrit/issues/detail?id=3318[Issue 3318]:
Highlight 'Reply' button if there are draft comments on any patch set.
+
If any patch set of the change has a draft comment by the current user,
the 'Reply' button is highlighted.
+
The icons depicting draft comments are removed from the revisions drop-down
list.

* link:http://code.google.com/p/gerrit/issues/detail?id=1100[Issue 1100]:
Publish all draft comments when replying to a change.
+
All draft comments, including those on older patch sets, are published when
replying to a change.

* Show file size increase/decrease for binary files.

* Show uploader if different from change owner.

* Show push certificate status.

* Show change subject as tooltip on related changes list.
+
This helps to identify changes when the subject is truncated in the list.


Side-By-Side Diff
^^^^^^^^^^^^^^^^^

* link:http://code.google.com/p/gerrit/issues/detail?id=3293[Issue 3293]:
Add syntax highlighting for Puppet.

* link:http://code.google.com/p/gerrit/issues/detail?id=3447[Issue 3447]:
Add syntax highlighting for VHDL.


Group Screen
^^^^^^^^^^^^

* link:http://code.google.com/p/gerrit/issues/detail?id=1479[Issue 1479]:
The group screen now includes an 'Audit Log' panel showing member additions,
removals, and the user who made the change.


API
~~~

Several new APIs are added.

Accounts
^^^^^^^^

* Suggest accounts.

Tags
^^^^

* List tags.

* Get tag.


REST API
~~~~~~~~

New REST API endpoints and new options on existing endpoints.


Accounts
^^^^^^^^

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#set-username[
Set Username]: Set the username of an account.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#get-detail[
Get Account Details]: Get the details of an account.
+
In addition to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#account-info[
AccountInfo] fields returned by the existing
 link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#get-account[
Get Account] endpoint, the new REST endpoint returns the registration date of
the account and the timestamp of when contact information was filed for this
account.


Changes
^^^^^^^

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#set-review[
Set Review]: Add an option to omit duplicate comments.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#get-safe-content[
Download Content]: Download the content of a file from a certain revision, in a
safe format that poses no risk for inadvertent execution of untrusted code.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#submitted-together[
Get Submitted Together]: Get the list of all changes that will be submitted at
the same time as the change.

* link:http://code.google.com/p/gerrit/issues/detail?id=1100[Issue 1100]:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#set-review[
Set Review]: Add an option to publish draft comments on all revisions.

Config
^^^^^^

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-config.html#get-info[
Get Server Info]: Return information about the Gerrit server configuration.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-config.html#confirm-email[
Confirm Email]: Confirm that the user owns an email address.


Groups
^^^^^^

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-groups.html#list-group[
List Groups]: Add option to suggest groups.
+
This allows group auto-completion to be used in a plugin's UI.

*  link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-groups.html#get-audit-log[
Get Audit Log]: Get the audit log of a Gerrit internal group, showing member
additions, removals, and the user who made the change.


Projects
^^^^^^^^

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-projects.html#run-gc[
Run GC]: Add `aggressive` option to specify whether or not to run an aggressive
garbage collection.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-projects.html#list-tags[
List Tags]: Support filtering by substring and regex, and pagination with
`--start` and `--end`.


SSH
~~~

* Add support for ZLib Compression.
+
To enable compression use the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#sshd.enableCompression[
`sshd.enableCompression` setting].

* Add support for hmac-sha2-256 and hmac-sha2-512 as MACs.

Plugins
~~~~~~~

General
^^^^^^^

* Gerrit client can now pass JavaScriptObjects to extension panels.

* New UI extension point for header bar in change screen.

* New UI extension point to password screen.

* New UI extension points to project info screen.

* New UI extension point for pop down buttons on change screen.

* New UI extension point for buttons in header bar on change screen.

* New UI extension point at bottom of the user preferences screen.

* New UI extension point for the 'Included In' drop-down panel.
+
By implementing the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/dev-plugins.html#included-in[
Included In interface], plugins may add entries to the 'Included In' dropdown
menu on the change screen.

* Plugins can extend Gerrit screens with GWT controls.

* Plugins can add custom settings screens.

* Referencing groups in `project.config`.
+
Plugins can refer to groups so that when they are renamed, the project
config will also be updated in this section.

* API

** Allow to use `CurrentSchemaVersion`.

** Allow to use `InternalChangeQuery.query()`.

** Allow to use `JdbcUtil.port()`.

** Allow to use GWTORM `Key` classes.


Other
~~~~~

* link:http://code.google.com/p/gerrit/issues/detail?id=3401[Issue 3401]:
Add option to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#sendemail.allowRegisterNewEmail[
disable registration of new email addresses].

* link:http://code.google.com/p/gerrit/issues/detail?id=2061[Issue 2061]
Add Support for `git-upload-archive`.
+
This allows use the standard `git archive` command to create an archive
of the content of a repository.

* Add a background job to automatically abandon inactive changes.
+
The
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#changeCleanup[
changeCleanup] configuration can be set to periodically check for inactive
changes and automatically abandon them.

* Add support for the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/database-setup.html#createdb_db2[
DB2 database].

* link:http://code.google.com/p/gerrit/issues/detail?id=3441[Issue 3441]:
Add support for the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/database-setup.html#createdb_derby[
Apache Derby database].

* Download commands plugin: Use commit IDs for download commands when change refs are hidden.
+
Git has a configuration option to hide refs from the initial advertisement
(`uploadpack.hideRefs`). This option can be used to hide the change refs from
the client. As consequence this prevented fetching changes by change ref from
working.
+
Setting `download.checkForHiddenChangeRefs` in the `gerrit.config` to true
allows the download commands plugin to check for hidden change refs.

* Add a new 'Maintain Server' global capability.
+
Members of a group with the 'Maintain Server' capability may view caches, tasks,
and queues, and invoke the index REST API on changes.


Bug Fixes
---------

* link:http://code.google.com/p/gerrit/issues/detail?id=3499[Issue 3499]:
Fix syntax highlighting of raw string literals in go.

* link:http://code.google.com/p/gerrit/issues/detail?id=3643[Issue 3643]:
Fix syntax highlighting of ES6 string templating using backticks.

* link:http://code.google.com/p/gerrit/issues/detail?id=3653[Issue 3653]:
Correct timezone in sshd log after DST change.
+
When encountering a DST switch, the timezone wasn't updated until
the server was reloaded.

* link:http://code.google.com/p/gerrit/issues/detail?id=3306[Issue 3306]:
Allow admins to read, push and create on `refs/users/default`.

* link:http://code.google.com/p/gerrit/issues/detail?id=3212[Issue 3212]:
Fix failure to run `init` when `--site-path` option is not explicitly given.

* Make email validation case insensitive.
+
While link:https://tools.ietf.org/html/rfc5321#section-2.3.11[
RFC 5321 section 2.3.11] allows for the local-part (the part left of
the '@') of an email address to be case sensitive, the domain portion is
case insensitive according to
link:https://tools.ietf.org/html/rfc1035#section-3.1[RFC 1035 section 3.1].
And in practice, even the local-part is typically case insensitive also.

* `commit-msg` hook: Don't add `Change-Id` line on temporary commits.
+
Commits created with `git commit --fixup` or `git commit --squash` are not
intended to be pushed to Gerrit, and don't need a `Change-Id` line.
+
This also prevents changes from being accidentally uploaded, at least for
projects that have the 'Require Change-Id' configuration enabled.

* link:http://code.google.com/p/gerrit/issues/detail?id=3444[Issue 3444]:
download-commands plugin: Fix clone with commit-msg hook when project name
contains '/'.

* Use full ref name in `refName` attribute of `ref-updated` events.
+
The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/json.html#refUpdate[
refUpdate attribute] in `ref-updated` events did not include the full name
of the ref in the `refName` attribute, i.e. `master` was used instead of
`refs/heads/master`.
+
Support for the new format is added in
link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger#GerritTrigger-Version2.15.1%28releasedSept142015%29[
version 2.15.1 of the Jenkins Gerrit Trigger plugin].
+
Users who are unable to upgrade the plugin may instead change the
trigger's branch configuration to type `Path` with a pattern like
`refs/*/master` instead of `Plain` and `master`.

* link:https://code.google.com/p/gerrit/issues/detail?id=3714[Issue 3714]:
Improve visibility of comments on dark themes.

* Fix highlighting of search results and trailing whitespaces in intraline
diff chunks.

* Fix server error when listing annotated/signed tag that has no tagger info.

* Don't create new account when claimed OAuth identity is unknown.
+
The Claimed Identity feature was enabled to support old Google OpenID accounts,
that cannot be activated anymore. In some corner cases, when for example the URL
is not from the production Gerrit site, for example on a staging instance, the
OpenID identity may deviate from the original one. In case of mismatch, the lookup
of the user for the claimed identity would fail, causing a new account to be
created.

* Suggest to upgrade installed plugins per default during site initialization
to new Gerrit version.
+
The default was 'No' which resulted in some sites not upgrading core
plugins and running the wrong versions.

* link:https://code.google.com/p/gerrit/issues/detail?id=3698[Issue 3698]:
Fix creation of the administrator user on databases with pre-allocated
auto-increment column values.
+
When using a database configuration where auto-increment column values are
pre-allocated, it was possible that the 'Administrators' group was created
with an ID other than `1`. In this case, the created admin user was not added
to the correct group, and did not have the correct admin permissions.

* link:https://code.google.com/p/gerrit/issues/detail?id=3018[Issue 3018]:
Fix query for changes using a label with a group operator.
+
The `group` operator was being ignored when searching for changes with labels
because the search index does not contain group information.

* Fix online reindexing of changes that don't already exist in the index.
+
Changes are now always reloaded from the database during online reindex.

* Fix reading of plugin documentation.
+
Under some circumstances it was possible to fail with an IO error.

Documentation Updates
---------------------

* link:https://code.google.com/p/gerrit/issues/detail?id=412[Issue 412]:
Update documentation of `commentlink.match` regular expression to clarify
that the expression is applied to the rendered HTML.

* Remove warning about unstable change edit REST API endpoints.
+
These endpoints should be considered stable since version 2.11.

* Document that `ldap.groupBase` and `ldap.accountBase` are repeatable.

Upgrades
--------

* Upgrade Asciidoctor to 1.5.2

* Upgrade AutoValue to 1.1

* Upgrade Bouncy Castle to 1.52

* Upgrade CodeMirror to 5.7

* Upgrade gson to 2.3.1

* Upgrade guava to 19.0-RC2

* Upgrade gwtorm to 1.14-20-gec13fdc

* Upgrade H2 to 1.3.176

* Upgrade httpcomponents to 4.4.1

* Upgrade Jetty to 9.2.13.v20150730

* Upgrade JGit to 4.1.1.201511131810-r

* Upgrade joda-time to 2.8

* Upgrade JRuby to 1.7.18

* Upgrade jsch to 0.1.53

* Upgrade JUnit to 4.11

* Upgrade Lucene to 5.3.0

* Upgrade Prolog Cafe 1.4.1

* Upgrade servlet API to 8.0.24

* Upgrade Truth to version 0.27

