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/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`]
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 byt 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 change edits 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 be written to allow runtime reconfiguration of various Lucene
performance related parameters.

* 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]: Downloads 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]: Returns 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]: Gets 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.


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`.

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

