= 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

