summaryrefslogtreecommitdiffstats
path: root/ReleaseNotes/ReleaseNotes-2.13.txt
blob: df0e2cb8fb8ce1521f5b85e41d0e96b53c59dd16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
= Release notes for Gerrit 2.13


Gerrit 2.13 is now available:

link:https://www.gerritcodereview.com/download/gerrit-2.13.war[
https://www.gerritcodereview.com/download/gerrit-2.13.war]


== Important Notes

*WARNING:* This release contains schema changes.  To upgrade:
----
  java -jar gerrit.war init -d site_path
----

*WARNING:* To use online reindexing for `changes` secondary index when upgrading
to 2.13.x, the server must first be upgraded to 2.8 (or 2.9) and then through
2.10, 2.11 and 2.12. Skipping a version will prevent online reindexer from
working.

Since 2.13 introduces a new secondary index for accounts, it must be indexed
offline before starting Gerrit:
----
  java -jar gerrit.war reindex --index accounts -d site_path
----
If reindexing will be done offline, you may ignore these warnings and upgrade
directly to 2.13.x using the following command that will reindex both `changes`
and `accounts` secondary indexes:
----
  java -jar gerrit.war reindex -d site_path
----

*WARNING:* The server side hooks functionality is moved to a core plugin. Sites
that make use of server side hooks must install this plugin during site init.


== Release Highlights

* Support for Large File Storage (LFS).

* Metrics interface.

* Hooks plugin.

* Secondary index for accounts.

* File annotations (blame) in side-by-side diff.

== New Features

=== Large File Storage (LFS)

Gerrit provides an
link:https://gerrit-review.googlesource.com/Documentation/dev-plugins.html#lfs-extension[
extension point] that enables development of plugins implementing the
link:https://github.com/github/git-lfs/blob/master/docs/api/v1/http-v1-batch.md[
LFS protocol].

By setting
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#lfs.plugin[
`lfs.plugin`] the administrator can configure the name of the plugin
which handles LFS requests.

=== Access control for git submodule subscriptions

To prevent potential security breaches as described in
link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3311[issue 3311],
it is now only possible for a project to subscribe to a submodule if the
submodule explicitly allows itself to be subscribed.

Please see the
link://https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-submodules.html[
submodules user guide] for details.

Note that when upgrading from an earlier version of Gerrit, permissions for
any existing subscriptions will be automatically added during the database
schema migration.

=== Metrics

Metrics about Gerrit's internal state can be sent to external
monitoring systems.

Plugins can provide implementations of the metrics interface to
report metrics to different monitoring systems. The following
plugins are available:

* link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-jmx[
JMX]

* link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-graphite[
Graphite]

* link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-elasticsearch[
Elasticsearch]

Plugins can also provide their own metrics.

See the link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/metrics.html[
metrics documentation] for further details.

=== Hooks

Server side hooks are moved to the
link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/hooks[
hooks plugin]. Sites that make use of server side hooks should install this
plugin. After installing the plugin, no additional configuration is needed.
The plugin uses the same configuration settings in `gerrit.config`.

=== Secondary Index

* The secondary index now supports indexing of accounts.
+
The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/pgm-reindex.html[
reindex program] by default reindexes all changes and accounts. A new
option allows to explicitly specify whether to reindex changes or accounts.
+
The `suggest.fullTextSearch`, `suggest.fullTextSearchMaxMatches` and
`suggest.fullTextSearchRefresh` configuration options are removed. Full text
search is supported by default with the account secondary index.

* New ssh command to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/cmd-index-changes.html[
reindex changes].


=== UI

* The UI can now be loaded in an iFrame by enabling
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#gerrit.canLoadInIFrame[
gerrit.canLoadInIFrame] in the site configuration.

==== Change Screen

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=106[Issue 106]:
Allow to select merge commit's parent for diff base in change screen.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3035[Issue 3035]:
Allow to remove specific votes from a change, while leaving the reviewer on the
change.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3487[Issue 3487]:
Use 'Ctrl-Alt-e' instead of 'e' to open edit mode.

==== Diff Screens

* Add all syntax highlighting available in CodeMirror.

* Improve search experience in diff screen
+
Ctrl-F, Ctrl-G and Shift-Ctrl-G now bind to the search dialog box provided by
CodeMirror's search add-on. Enter and Shift-Enter navigate among the search
results from the CodeMirror search, just like they do in a normal browser
search. Esc now clears the search result.
+
If the user sets `Render` to `Slow` in the diff preferences and the file is less
than 4000 lines (huge), then Ctrl-F, Ctrl-G and Shift-Ctrl-G fall back to the
browser search.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=2968[Issue 2968]:
Allow to go back to change list by keyboard shortcut from diff screens.

==== Side-By-Side Diff Screen

* Blame annotations
+
By enabling
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#change.allowBlame[
`change.allowBlame`], blame annotations can be shown in the side-by-side diff
screen gutter. Clicking the annotation opens the relevant change.

==== User Preferences

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=989[Issue 989]:
New option to control email notifications.
+
Users can now choose between 'Enabled', 'Disabled' and 'CC Me on Comments I Write'.

* New option to control adding 'Signed-off-by' footer in commit message of new changes
created online.

* New option to control auto-indent width in inline editor.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=890[Issue 890]:
New diff option to control whether to skip unchanged files when navigating to
the previous or the next file.

=== Changes

In order to avoid potentially confusing behavior, when submitting changes in a
batch, submit type rules may not be used to mix submit types on a single branch,
and trying to submit such a batch will fail.

=== REST API

==== Accounts

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3766[Issue 3766]:
Allow users with the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/access-control.html#capability_modifyAccount[
'ModifyAccount' capability] to get the preferences for other users via the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-user-preferences[
Get User Preferences] endpoint.

* Rename 'Suggest Account' to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#query-account[
'Query Account'] and add support for arbitrary account queries.
+
The `_more_accounts` flag is set on the last result when there are more results
than the limit. The `DETAILS` and `ALL_EMAILS` options may be set to control
whether the results should include details (full name, email, username, avatars)
and all emails, respectively.

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-watched-projects[
Get Watched Projects].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#set-watched-projects[
Set Watched Projects].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#delete-watched-projects[
Delete Watched Projects].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-stars[
Get Star Labels from Change].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#set-stars[
Update Star Labels on Change].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-oauth-token[
Get OAuth Access Token].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#list-contributor-agreements[
List Contributor Agreements].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#sign-contributor-agreement[
Sign Contributor Agreement].

==== Changes

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3579[Issue 3579]:
Append submitted info to ChangeInfo.

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-changes.html#move-change[
Move Change].

==== Groups

* Add `-s` as an alias for `--suggest` on the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-groups.html#suggest-group[
Suggest Group] endpoint.

==== Projects

* Add `async` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#run-gc[
Run GC] endpoint to allow garbage collection to run asynchronously.

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#get-access[
List Access Rights].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#set-access[
Add, Update and Delete Access Rights].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#create-tag[
Create Tag].

* New endpoint:
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#get-mergeable-info[
Get Mergeable Information].

=== Plugins

* Secure settings
+
Plugins may now store secure settings in `etc/$PLUGIN.secure.config` where they
will be decoded by the Secure Store implementation.

* Exported dependencies
+
Gson is now an exported dependency. Plugin no longer need to explicitly add
a dependency on it.

=== Misc

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4015[Issue 4015]:
Allow setting a comment message when uploading a change.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3220[Issue 3220]:
Append approval info to every comment-added stream event and hook.

* The `administrateServer` capability can be assigned to groups by setting
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#capability.administrateServer[
capability.administrateServer] in the site configuration.
+
Configuring this option can be a useful fail-safe to recover a server in the
event an administrator removed all groups from the `administrateServer`
capability, or to ensure that specific groups always have administration
capabilities.

== Bug Fixes

* Don't add the same SSH key multiple times.
+
If an already existing SSH key was added, a duplicate entry was added to the
list of user's SSH keys.

* Respect the 'Require a valid contributor agreement to upload' setting
when creating changes via the UI.
+
If a user had not signed a CLA, it was still possible for them to create a new
change with the 'Revert' or 'Cherry Pick' button.

* Make Lucene index more stable when being interrupted.

* Don't show the `start` and `idle` columns in the `show-connections`
output when the ssh backend is NIO2.
+
The NIO2 backend doesn't provide the start and idle times, and the
values being displayed were just dummy values. Now these values are
only displayed for the MINA backend.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4150[Issue 4150]:
Deleting a draft inline comment no longer causes the change's `Updated` field to
be bumped.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4099[Issue 4099]:
Fix SubmitWholeTopic does not update subscriptions.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3603[Issue 3603]:
Fix editing a submodule via inline edit.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4069[Issue 4069]:
Fix highlights in scrollbar overview ruler not moved when extending the
displayed area.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3446[Issue 3446]:
Respect the `Skip Deleted` diff preference.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3445[Issue 3445]:
Respect the `Skip Uncommented` diff preference.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=4051[Issue 4051]:
Fix empty `From` email header.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3423[Issue 3423]:
Fix intraline diff for added spaces.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=1867[Issue 1867]:
Remove `no changes made` error case when the only difference between a new
commit and the previous patch set of the change is the committer.

Remove "no changes made" error case
* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3831[Issue 3831]:
Prevent creating groups with the same name as a system group.

* link:https://bugs.chromium.org/p/gerrit/issues/detail?id=3754[Issue 3754]:
Fix `View All Accounts` permission to allow accounts rest endpoint to access
email info.

== Dependency updates

* Add dependency on blame-cache 0.1-9

* Add dependency on guava-retrying 2.0.0

* Add dependency on jsr305 3.0.1

* Add dependency on metrics-core 3.1.2

* Upgrade auto-value to 1.3-rc1

* Upgrade commons-net to 3.5

* Upgrade CodeMirror to 5.17.0

* Upgrade Guava to 19.0

* Upgrade Gson to 2.7

* Upgrade Guice to 4.1.0

* Upgrade gwtjsonrpc to 1.8

* Upgrade gwtorm to 1.15

* Upgrade javassist to 3.20.0-GA

* Upgrade Jetty to 9.2.14.v20151106

* Upgrade JGit to 4.4.1.201607150455-r.137-gdd2a5a7

* Upgrade joda-convert to 1.8.1

* Upgrade joda-time to 2.9.4

* Upgrade Lucene to 5.5.0

* Upgrade mina to 2.0.10

* Upgrade sshd-core to 1.2.0