= 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]

* 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

== 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
----

== 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

* In 2.8 the secondary index is optional

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

== New search operators

* New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#file[
  file] operator to 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
----

* New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#comment[
  comment] operator to 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[]

== 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.
* 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].

== 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

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