blob: 683d0841d5038070264f9e8f07af36880d724dd8 [file] [log] [blame]
= 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 ➊ |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
|==========================
+
➊ 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 Gerrits 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
* Dont 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>
++++