= What's new in Gerrit 2.8
:backend: slidy
:max-width: 70em

[[title-page]]
== What's new in Gerrit 2.8

== What's new in Gerrit 2.8
* link:https://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.8.html[
2.8 Release Notes]
* link:https://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.8.1.html[
2.8.1 Release Notes]
* link:https://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.8.2.html[
2.8.2 Release Notes]
* link:https://gerrit-documentation.storage.googleapis.com/ReleaseNotes/ReleaseNotes-2.8.3.html[
2.8.3 Release Notes]

* Statistics
+
[width="50%",cols=">s,^m,^m,^m,^m,^m",options="header"]
|==========================
|                 |Gerrit 2.8 |Gerrit 2.7 |Gerrit 2.6 |Gerrit 2.5 |Gerrit 2.4
|commits &#x278a; |1373       |272        |1301       |508        |122
|resolved issues
|link:http://code.google.com/p/gerrit/issues/list?can=1&q=FixedIn=2.8[72]
|link:http://code.google.com/p/gerrit/issues/list?can=1&q=FixedIn=2.7[9]
|link:http://code.google.com/p/gerrit/issues/list?can=1&q=FixedIn=2.6[85]
|link:http://code.google.com/p/gerrit/issues/list?can=1&q=FixedIn=2.5[51]
|link:http://code.google.com/p/gerrit/issues/list?can=1&q=FixedIn=2.4[35]
|contributors     |54         |31         |56         |34         |22
|==========================
+
&#x278a; not including merge commits

== Improved performance of change queries

The change search in Gerrit is now backed by a secondary index which can
deliver results much faster than the database.

* Lucene and Solr Cloud indexes are supported

* Lucene is built-in; Solr Cloud requires external setup

* In 2.8 the secondary index is optional

* From 2.9 it will be mandatory; the default will be Lucene

== New search operators

New search operators are available when the secondary index
is enabled.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#file[
  file] operator: find changes on the specified file. Regular
  expressions can be used to specify a file name pattern.
+
.Find all merged changes in the 'gerrit' project that touched 'ReceiveCommits.java'
----
  status:merged project:gerrit
  file:gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
----

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#comment[
  comment] operator: find changes that match a string in any comment
  left by a reviewer.
+
.Find all merged changes in the 'gerrit' project where a reviewer wrote 'third-party libraries' in any comment
----
  status:merged project:gerrit comment:"third-party libraries"
----

== New Change Screen / New Side-By-Side Diff Screen

The Change Screen was completely redesigned and is now based on the
Gerrit REST API.

* In the new Side-By-Side Diff Screen comments can be added on code
  blocks.

** To insert comments in the new Side-By-Side Diff Screen select a code
   block and press 'c'.
+
Inserting a comment by double click does not work!

* There is a new button to cherry-pick a change to another branch.
* For identical files the reviewed flag is automatically copied to
  new patch sets.

WARNING: The new change screen in 2.8 is still beta.

* Not all features that the old change screen supports are available
  on the new change screen.
* The design is not final yet and with Gerrit 2.9 some things will
  look different.
* There are known issues with the new change screen that are fixed
  only in Gerrit 2.9

== Change Screen Preference

A preference setting allows the user to decide if the new or the old
change screen should be used.

* In 2.8 the old screen is default.
* In 2.9 the new screen is default.
* In later versions (possibly from 2.10) the old screen will be removed.

image:../../img/change-screen-preference.png[]

== New Change Screen screenshot

.New Change Screen
image:../../img/new-change-screen.png[]

.Old Change Screen
image:../../img/old-change-screen.png[]

== Labels can be configured to copy scores forward to new patch sets

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#label_copyAllScoresOnTrivialRebase[
  For trivial rebases]
+
----
[label "Code-Review"]
  function = MaxWithBlock
  copyMinScore = true
  copyAllScoresOnTrivialRebase = true
  value = -2 Do not submit
  value = -1 I would prefer that you didn't submit this
  value =  0 No score
  value = +1 Looks good to me, but someone else must approve
  value = +2 Looks good to me, approved
----

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#label_copyAllScoresIfNoCodeChange[
  If there is no code change (e.g. only the commit message was edited)]
+
----
[label "Verified"]
  function = MaxWithBlock
  copyAllScoresIfNoCodeChange = true
  value = -1 Fails
  value =  0 No score
  value = +1 Verified
----

== REST API

Many new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api.html[
REST API endpoints] were added.

== Plugin Extension Points

Gerrit Plugins may now

* Contribute buttons to various parts of the UI using the UI
  extension and JavaScript API.
* Provide global capabilities.
* Provide pre-merge validation steps.
* Provide entries in Gerrit’s top menu.
* Provide download schemes and download commands (for changes).

** Core download schemes and commands for changes are now provided by
the `download_commands` plugin.

** Project download commands are still only provided in core Gerrit
and cannot be added by plugins.

* Send events to the events stream.

The new plugin API features are demonstrated in the
link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/cookbook-plugin[
Cookbook Plugin] and core plugins.

* The Cookbook Plugin replaces the "Hello World" plugin.

== Important Bug Fixes
* Don’t allow project owners to delete/create branches if force push
  is blocked.

* Allow disabling drafts by blocking push on `refs/drafts/*`.

* Performance Fix: Minimize number of advertisedHaves.
+
By filtering the refs before the objectIds are added to
advertisedHaves, lots of time can be saved when pushing to complex
Git repositories.

* Show review comments for unchanged files.
+
When comparing patch sets and some comment was put in one side, that
comment was not shown if there was no code changed between the two
patch sets.

== New Build System

* Gerrit is now built using link:https://github.com/facebook/buck/[Buck]
rather than Maven.

* The dependency on Maven is not completely removed.  It is still used
to:

** Install the plugin API artifacts to the developer's local repository

** Deploy the plugin API artifacts to the public repository

== Questions?

++++
<style type="text/css">
#title-page {
  border-bottom: 0;
  text-align: center;
  position: relative;
  top: 30%;
  font-size: 60px;
}
</style>
++++
