blob: 575bdce5d2039788932b8a3db8a36f748998d76b [file] [log] [blame]
David Pursehouse58b58de2013-05-20 19:11:58 +09001Release notes for Gerrit 2.8
2============================
3
4
5Gerrit 2.8 is now available:
6
David Pursehouse2e99e0f2013-10-17 10:05:39 +09007link:https://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc0.war[
8https://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc0.war]
David Pursehouse58b58de2013-05-20 19:11:58 +09009
10
11Schema Change
12-------------
13
14
David Pursehouse3a2cc702013-08-15 11:06:46 +090015*WARNING:* This release contains schema changes. To upgrade:
16----
17 java -jar gerrit.war init -d site_path
18----
19
20*WARNING:* Upgrading to 2.8.x requires the server be first upgraded to 2.1.7 (or
21a later 2.1.x version), and then to 2.8.x. If you are upgrading from 2.2.x.x or
22later, you may ignore this warning and upgrade directly to 2.8.x.
David Pursehouse58b58de2013-05-20 19:11:58 +090023
David Pursehouse6e2dcc92013-09-18 09:17:33 +090024*WARNING:* The replication plugin now automatically creates missing repositories
25on the destination if during the replication of a ref the target repository is
26found to be missing. This is a change in behavior of the replication plugin. To go
27back to the old behavior, set the parameter `remote.NAME.createMissingRepositories`
28in the `replication.config` file to `false`.
29
David Pursehouse58b58de2013-05-20 19:11:58 +090030
31Release Highlights
32------------------
33
34
David Pursehouse0c62df92013-10-17 14:11:48 +090035* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/intro-change-screen.html[
David Pursehoused0c8e372013-10-10 10:14:18 +090036New change screen] with completely redesigned UI and fully using the REST API.
David Pursehouse67c07102013-09-24 09:55:23 +090037
David Pursehouse0c62df92013-10-17 14:11:48 +090038* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#index[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090039Secondary indexing with Lucene and Solr].
40
David Pursehouse0c62df92013-10-17 14:11:48 +090041* Lots of new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api.html[
David Pursehouse58b58de2013-05-20 19:11:58 +090042REST API endpoints].
43
David Pursehouse6e2dcc92013-09-18 09:17:33 +090044* New
David Pursehouse0c62df92013-10-17 14:11:48 +090045link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#ui_extension[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090046UI extension] and
David Pursehouse0c62df92013-10-17 14:11:48 +090047link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/js-api.html[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090048JavaScript API] for plugins.
David Pursehouse73907be2013-08-08 15:18:55 +090049
David Pursehouse6e2dcc92013-09-18 09:17:33 +090050* New build system using Facebook's link:http://facebook.github.io/buck/[Buck].
David Pursehouse58b58de2013-05-20 19:11:58 +090051
David Pursehouse2e99e0f2013-10-17 10:05:39 +090052* New core plugin: Download Commands.
53
David Pursehouse58b58de2013-05-20 19:11:58 +090054
55New Features
56------------
57
David Pursehouse6e2dcc92013-09-18 09:17:33 +090058Build
59~~~~~
60
61* Gerrit is now built with
David Pursehouse0c62df92013-10-17 14:11:48 +090062link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-buck.html[
David Pursehouse6e2dcc92013-09-18 09:17:33 +090063Buck].
64
65* Documentation is now built with Buck and link:http://asciidoctor.org[Asciidoctor].
66
David Pursehouse58b58de2013-05-20 19:11:58 +090067
David Pursehouse4143f952013-07-05 13:57:53 +090068Configuration
69~~~~~~~~~~~~~
70
71* Project owners can define `receive.maxObjectSizeLimit` in the
David Pursehouse0c62df92013-10-17 14:11:48 +090072link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#receive.maxObjectSizeLimit[
David Pursehouse4143f952013-07-05 13:57:53 +090073project configuration] to further reduce the global setting.
74
David Pursehouse2e3383f2013-07-08 10:50:26 +090075* Site administrators can define a
David Pursehouse0c62df92013-10-17 14:11:48 +090076link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-mail.html#_footer_vm[
David Pursehouse2e3383f2013-07-08 10:50:26 +090077footer template] that will be appended to the end of all outgoing emails after
78the 'ChangeFooter' and 'CommentFooter'.
79
David Pursehouse87c69a02013-07-16 14:40:24 +090080* New `topic-changed` hook and stream event is fired when a change's topic is
81edited from the Web UI or via a REST API.
82
David Pursehouse73907be2013-08-08 15:18:55 +090083* New options `--list-plugins` and `--install-plugins` on the
David Pursehouse0c62df92013-10-17 14:11:48 +090084link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/pgm-init.html[
David Pursehouse73907be2013-08-08 15:18:55 +090085site initialization command].
86
87* New `auth.httpDisplaynameHeader` and `auth.httpEmailHeader` in the
Edwin Kempin0b7158a2013-10-17 09:05:00 +020088link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_auth_a_section_auth[
David Pursehouse73907be2013-08-08 15:18:55 +090089authentication configuration].
90+
91When using HTTP-based authentication, the SSO can be delegated to check not only
92the user credentials but also to fetch the full user-profile.
93+
94With the config properties `auth.httpDisplaynameHeader` and `auth.httpEmailHeader`
95it is possible to configure the name of the headers used for propagating this extra
96information and enforce them on the user profile during login and beyond.
97
Edwin Kempin0b7158a2013-10-17 09:05:00 +020098* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_httpd_a_section_httpd[
David Pursehoused5c50f12013-08-21 11:36:09 +090099Customizable registration page for HTTP authentication].
100
Edwin Kempin0b7158a2013-10-17 09:05:00 +0200101* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_httpd_a_section_httpd[
David Pursehouse73907be2013-08-08 15:18:55 +0900102Configurable external `robots.txt` file].
David Pursehouse87c69a02013-07-16 14:40:24 +0900103
David Pursehouse3a2cc702013-08-15 11:06:46 +0900104* Support for
David Pursehouse0c62df92013-10-17 14:11:48 +0900105link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/database-setup.html#createdb_oracle[
David Pursehouse3a2cc702013-08-15 11:06:46 +0900106Oracle database].
107
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900108* New bash completion script for autocompletion of parameters to the gerrit.sh wrapper.
109
110* The site can be
David Pursehouse0c62df92013-10-17 14:11:48 +0900111link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-auto-site-initialization.html[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900112auto-initialized on server startup].
113
David Pursehouse2e8b5822013-10-17 15:54:24 +0900114* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#httpd.filterClass[
David Pursehouse67c07102013-09-24 09:55:23 +0900115Configurable filtering of HTTP traffic through Gerrit's HTTP protocol].
116
David Pursehoused0c8e372013-10-10 10:14:18 +0900117* Labels can be
David Pursehouse2e8b5822013-10-17 15:54:24 +0900118link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#httpd.label_copyAllScoresIfNoCodeChange[
David Pursehoused0c8e372013-10-10 10:14:18 +0900119configured to copy scores forward to new patch sets if there is no code change].
120
121* Labels can be
David Pursehouse2e8b5822013-10-17 15:54:24 +0900122link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#httpd.label_copyAllScoresOnTrivialRebase[
David Pursehoused0c8e372013-10-10 10:14:18 +0900123configured to copy scores forward to new patch sets for trivial rebases].
124
David Pursehouse58b58de2013-05-20 19:11:58 +0900125Web UI
126~~~~~~
127
128
129Global
130^^^^^^
131
132* The change status is shown in a separate column on dashboards and search results.
133
David Pursehouse58b58de2013-05-20 19:11:58 +0900134Change Screens
135^^^^^^^^^^^^^^
136
137
David Pursehoused0c8e372013-10-10 10:14:18 +0900138* New change screen with completely redesigned UI, using the REST API.
David Pursehouse67c07102013-09-24 09:55:23 +0900139+
140Site administrators can
David Pursehouse0c62df92013-10-17 14:11:48 +0900141link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#gerrit.changeScreen[
David Pursehouse67c07102013-09-24 09:55:23 +0900142configure which change screen is shown by default].
143+
144Users can choose which one to use in their personal preferences, either using
145the site default or explicitly choosing the old one or new one.
146
David Pursehoused0c8e372013-10-10 10:14:18 +0900147* link:https://code.google.com/p/gerrit/issues/detail?id=141[Issue 141]:
148In the new change screen, comments can be added on a range of lines.
149
David Pursehouse58b58de2013-05-20 19:11:58 +0900150* New button to cherry-pick the change to another branch.
151
152* When issuing a rebase via the Web UI, the committer is now the logged in
153 user, rather than "Gerrit Code Review".
154+
155If the user has more than one email address, the preferred email address will
156be used.
157
David Pursehouse87c69a02013-07-16 14:40:24 +0900158* Default user's full name to git committer name if user has not configured a
159full name in their profile.
160
161* Include comment author attributes in comment panels.
162+
163Comment author's email address and name are included as attributes in comment
164panels. This makes it easier to filter out CI-based comments using user
165scripts.
166
David Pursehoused7b0cb82013-08-14 11:49:22 +0900167* Copy reviewed flag to new patch sets for identical files.
168+
169If a user has already seen and reviewed a file, the 'reviewed' flag is forwarded
170on to the next patch set when the content of the file in the next patch set is
171identical to the reviewed file.
172
David Pursehouse67c07102013-09-24 09:55:23 +0900173* "Uploaded Patch Set 1" change message is added on changes when they
174are uploaded.
175
David Pursehouse58b58de2013-05-20 19:11:58 +0900176
177REST API
178~~~~~~~~
179
David Pursehouse0c62df92013-10-17 14:11:48 +0900180* Several new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api.html[
David Pursehouse58b58de2013-05-20 19:11:58 +0900181REST API endpoints] are added.
182
David Pursehouse87c69a02013-07-16 14:40:24 +0900183* REST views can determine how long their response should be cached.
184
David Pursehouse73907be2013-08-08 15:18:55 +0900185* REST views can handle 'HTTP 422 Unprocessable Entity' responses.
186
David Pursehouse61927b72013-06-27 16:06:51 +0900187Access Rights
188^^^^^^^^^^^^^
189
190
David Pursehouse0c62df92013-10-17 14:11:48 +0900191* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-access.html#list-access[
David Pursehouse61927b72013-06-27 16:06:51 +0900192List access rights for project(s)]
193
David Pursehouse58b58de2013-05-20 19:11:58 +0900194Accounts
195^^^^^^^^
196
197
David Pursehouse0c62df92013-10-17 14:11:48 +0900198* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#create-account[
David Pursehouse58b58de2013-05-20 19:11:58 +0900199Create account]
200
David Pursehouse0c62df92013-10-17 14:11:48 +0900201* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-account-name[
David Pursehouse58b58de2013-05-20 19:11:58 +0900202Get account full name]
203
David Pursehouse0c62df92013-10-17 14:11:48 +0900204* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-account-name[
David Pursehouse58b58de2013-05-20 19:11:58 +0900205Set account full name]
206
David Pursehouse0c62df92013-10-17 14:11:48 +0900207* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-account-name[
David Pursehouse58b58de2013-05-20 19:11:58 +0900208Delete account full name]
209
David Pursehouse0c62df92013-10-17 14:11:48 +0900210* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#list-account-emails[
David Pursehouse58b58de2013-05-20 19:11:58 +0900211List account email addresses]
212
David Pursehouse0c62df92013-10-17 14:11:48 +0900213* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-account-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900214Get account email address]
215
David Pursehouse0c62df92013-10-17 14:11:48 +0900216* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-preferred-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900217Set account preferred email address]
218
David Pursehouse0c62df92013-10-17 14:11:48 +0900219* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#create-account-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900220Create account email]
221
David Pursehouse0c62df92013-10-17 14:11:48 +0900222* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-account-email[
David Pursehouse58b58de2013-05-20 19:11:58 +0900223Delete account email]
224
David Pursehouse0c62df92013-10-17 14:11:48 +0900225* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-active[
David Pursehouse58b58de2013-05-20 19:11:58 +0900226Get account state]
227
David Pursehouse0c62df92013-10-17 14:11:48 +0900228* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-active[
David Pursehouse58b58de2013-05-20 19:11:58 +0900229Set account state to active]
230
David Pursehouse0c62df92013-10-17 14:11:48 +0900231* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-active[
David Pursehouse58b58de2013-05-20 19:11:58 +0900232Set account state to inactive]
233
David Pursehouse0c62df92013-10-17 14:11:48 +0900234* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-http-password[
David Pursehouse7f47d262013-06-04 10:04:59 +0900235Get account HTTP password]
236
David Pursehouse0c62df92013-10-17 14:11:48 +0900237* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-http-password[
David Pursehouse7f47d262013-06-04 10:04:59 +0900238Set or generate account HTTP password]
239
David Pursehouse0c62df92013-10-17 14:11:48 +0900240* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-http-password[
David Pursehouse7f47d262013-06-04 10:04:59 +0900241Delete account HTTP password]
242
David Pursehouse0c62df92013-10-17 14:11:48 +0900243* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#list-ssh-keys[
David Pursehouse7f47d262013-06-04 10:04:59 +0900244List account SSH keys]
245
David Pursehouse0c62df92013-10-17 14:11:48 +0900246* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-ssh-key[
David Pursehouse7f47d262013-06-04 10:04:59 +0900247Get account SSH key]
248
David Pursehouse0c62df92013-10-17 14:11:48 +0900249* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#add-ssh-key[
David Pursehouse7f47d262013-06-04 10:04:59 +0900250Add account SSH key]
251
David Pursehouse0c62df92013-10-17 14:11:48 +0900252* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-ssh-key[
David Pursehouse7f47d262013-06-04 10:04:59 +0900253Delete account SSH key]
254
David Pursehouse0c62df92013-10-17 14:11:48 +0900255* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-username[
David Pursehouse55817ab2013-06-07 15:54:29 +0900256Get account username]
257
David Pursehouse58b58de2013-05-20 19:11:58 +0900258Changes
259^^^^^^^
260
261
David Pursehouse0c62df92013-10-17 14:11:48 +0900262* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#rebase-change[
David Pursehouse58b58de2013-05-20 19:11:58 +0900263Rebase change]
264
David Pursehouse0c62df92013-10-17 14:11:48 +0900265* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#cherry-pick[
David Pursehouse58b58de2013-05-20 19:11:58 +0900266Cherry-pick revision]
267
David Pursehouse0c62df92013-10-17 14:11:48 +0900268* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-content[
David Pursehouse58b58de2013-05-20 19:11:58 +0900269Get content of a file in a revision]
270
David Pursehouse0c62df92013-10-17 14:11:48 +0900271* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-patch[
David Pursehouse58b58de2013-05-20 19:11:58 +0900272Get revision as a formatted patch]
273
David Pursehouse0c62df92013-10-17 14:11:48 +0900274* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-diff[
David Pursehouse55817ab2013-06-07 15:54:29 +0900275Get diff of a file in a revision]
David Pursehouse58b58de2013-05-20 19:11:58 +0900276
David Pursehouse0c62df92013-10-17 14:11:48 +0900277* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-commit[
David Pursehouse87c69a02013-07-16 14:40:24 +0900278Get parsed commit of a revision]
279
David Pursehouse0c62df92013-10-17 14:11:48 +0900280* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#publish-draft-change[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900281Publish draft change]
282
David Pursehouse0c62df92013-10-17 14:11:48 +0900283* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#delete-draft-change[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900284Delete draft change]
285
David Pursehouse0c62df92013-10-17 14:11:48 +0900286* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#suggest-reviewers[
David Pursehouse67c07102013-09-24 09:55:23 +0900287Suggest reviewers]
288
David Pursehouse0c62df92013-10-17 14:11:48 +0900289* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-included-in[
David Pursehoused0c8e372013-10-10 10:14:18 +0900290Get included in]
291
David Pursehouse58b58de2013-05-20 19:11:58 +0900292
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200293Config
294^^^^^^
295
David Pursehouse0c62df92013-10-17 14:11:48 +0900296* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-config.html#get-capabilities[
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200297Get capabilities]
298
David Pursehouse0c62df92013-10-17 14:11:48 +0900299* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-config.html#get-version[
David Pursehouse4143f952013-07-05 13:57:53 +0900300Get version] (of the Gerrit server)
301
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200302
David Pursehouse58b58de2013-05-20 19:11:58 +0900303Projects
304^^^^^^^^
305
306
David Pursehouse0c62df92013-10-17 14:11:48 +0900307* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#list-branches[
David Pursehouse58b58de2013-05-20 19:11:58 +0900308List branches]
309
David Pursehouse0c62df92013-10-17 14:11:48 +0900310* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#get-branch[
David Pursehouse58b58de2013-05-20 19:11:58 +0900311Get branch]
312
David Pursehouse0c62df92013-10-17 14:11:48 +0900313* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#create-branch[
David Pursehouse58b58de2013-05-20 19:11:58 +0900314Create branch]
315
David Pursehouse0c62df92013-10-17 14:11:48 +0900316* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#delete-branch[
David Pursehouse55817ab2013-06-07 15:54:29 +0900317Delete branch]
318
David Pursehouse0c62df92013-10-17 14:11:48 +0900319* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#list-child-projects[
David Pursehouse58b58de2013-05-20 19:11:58 +0900320List child projects]
321
David Pursehouse0c62df92013-10-17 14:11:48 +0900322* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#get-child-project[
David Pursehouse58b58de2013-05-20 19:11:58 +0900323Get child project]
324
David Pursehouse0c62df92013-10-17 14:11:48 +0900325* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#set-config[
David Pursehoused5c50f12013-08-21 11:36:09 +0900326Set configuration]
327
David Pursehouse58b58de2013-05-20 19:11:58 +0900328
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200329Capabilities
330~~~~~~~~~~~~
331
332
333New global capabilities are added.
334
David Pursehouse0c62df92013-10-17 14:11:48 +0900335* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/access_control.html#capability_generateHttpPassword[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900336Generate Http Password] allows non-administrator users to generate HTTP
David Pursehouseaa9f8902013-06-23 21:08:12 +0900337passwords for users other than themselves.
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200338+
339This capability would typically be assigned to a non-interactive group
340to be able to generate HTTP passwords for users from a tool or web service
341that uses the Gerrit REST API.
342
David Pursehouse0c62df92013-10-17 14:11:48 +0900343* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/access_control.html#capability_runAs[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900344Run As] allows users to impersonate other users by setting the `X-Gerrit-RunAs`
David Pursehouse1bd4e8d2013-06-12 11:01:06 +0200345HTTP header on REST API calls.
346+
347Site administrators do not inherit this capability; it must be granted
348explicitly.
349
350
David Pursehouse87c69a02013-07-16 14:40:24 +0900351Emails
352~~~~~~
353
354* The `RebasedPatchSet` template is removed. Email notifications for rebased
355changes are now sent with the `ReplacePatchSet` template.
356
David Pursehoused5c50f12013-08-21 11:36:09 +0900357* Comment notification emails now include context of comments that are replied
358to, and links to the file(s) in which comments are made.
359
David Pursehouse87c69a02013-07-16 14:40:24 +0900360
David Pursehouse58b58de2013-05-20 19:11:58 +0900361Plugins
362~~~~~~~
363
364
David Pursehouse2e3383f2013-07-08 10:50:26 +0900365Global
366^^^^^^
367
David Pursehouse58b58de2013-05-20 19:11:58 +0900368
David Pursehouse73907be2013-08-08 15:18:55 +0900369* Plugins may now contribute buttons to various parts of the UI using the
David Pursehouse0c62df92013-10-17 14:11:48 +0900370link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#ui_extension[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900371UI extension] and
David Pursehouse0c62df92013-10-17 14:11:48 +0900372link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/js-api.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900373JavaScript API].
David Pursehouse58b58de2013-05-20 19:11:58 +0900374
David Pursehouse87c69a02013-07-16 14:40:24 +0900375* Plugins may now provide an 'About' section on their documentation index page.
376
David Pursehouse3a2cc702013-08-15 11:06:46 +0900377* Plugins may now provide separate sections for REST API and servlet
378documentation on their index page.
379
David Pursehouse73907be2013-08-08 15:18:55 +0900380* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900381link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-validation.html#pre-merge-validation[
David Pursehouse73907be2013-08-08 15:18:55 +0900382pre-merge validation steps].
383
David Pursehoused7b0cb82013-08-14 11:49:22 +0900384* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900385link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#capabilities[
David Pursehoused7b0cb82013-08-14 11:49:22 +0900386Global capabilities].
387
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900388* Plugins may now
David Pursehouse0c62df92013-10-17 14:11:48 +0900389link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#plugin_name[
David Pursehoused0c8e372013-10-10 10:14:18 +0900390define their own name] and get the name injected at runtime.
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900391
David Pursehoused7b0cb82013-08-14 11:49:22 +0900392* The "hello world" plugin is replaced with the "cookbook plugin" which has more
393examples of the plugin API's usage.
394
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900395* Plugins may now trigger and listen to a "project deleted"
David Pursehouse0c62df92013-10-17 14:11:48 +0900396link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#events[
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900397event].
398
399* link:https://code.google.com/p/gerrit/issues/detail?id=2101[Issue 2101]:
400Plugins implementing LifecycleListener can use auto registration.
401
402* Plugins may bind REST endpoints with empty view names.
403
David Pursehoused0c8e372013-10-10 10:14:18 +0900404* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900405link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#top-menu-extensions[
David Pursehoused0c8e372013-10-10 10:14:18 +0900406entries in Gerrit's top menu].
407
408* Plugins may now
David Pursehouse0c62df92013-10-17 14:11:48 +0900409link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#stream-events[
David Pursehoused0c8e372013-10-10 10:14:18 +0900410send events to the events stream].
411
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900412* Plugins may now bind multiple SSH commands to the same implementation class.
413
414* Plugins may now provide
David Pursehouse0c62df92013-10-17 14:11:48 +0900415link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#download-commands[
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900416download schemes and download commands].
417+
418Commonly used download schemes and commands are moved out of core
419Gerrit and are now implemented by a new core plugin, `download-commands`.
420
421
David Pursehouse87c69a02013-07-16 14:40:24 +0900422
David Pursehouse2e3383f2013-07-08 10:50:26 +0900423Commit Message Length Checker
424^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
425
426
427* Commits whose subject or body length exceeds the limit can be rejected.
428
429Replication
430^^^^^^^^^^^
431
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900432* Automatically create missing repositories on the destination.
433+
434If during the replication of a ref the target repository is found to be missing,
435the repository is automatically created.
436+
437This is a change in behavior of the replication plugin. To go back to the old
438behavior, set the parameter `remote.NAME.createMissingRepositories` in the
439`replication.config` file to `false`.
440
441* Support for replication of project deletions.
442+
443The replication plugin can now be configured to listen to project deletion events
444and to replicate the project deletions. By default project deletions are *not*
445replicated.
446
David Pursehouse2e3383f2013-07-08 10:50:26 +0900447* The `{$name}` placeholder is optional when replicating a single project,
448allowing a single project to be replicated under a different name.
449
David Pursehoused7b0cb82013-08-14 11:49:22 +0900450* Project names can be matched with wildcard or regex patterns in `replication.config`.
David Pursehouse73907be2013-08-08 15:18:55 +0900451
452* The `replication start` command does not exit until replication is finished
453when the `--wait` option is used.
454
455* The `replication start` command displays a summary of the replication status.
David Pursehouse58b58de2013-05-20 19:11:58 +0900456
David Pursehoused7b0cb82013-08-14 11:49:22 +0900457* Retry counts are added to replication task names, so they can be seen in the
458output of the `show-queue` command.
459
460* The `remoteNameStyle` option can be set to `basenameOnly` to replicate projects
461using only the basename on the target server.
462
463* The `startReplication` global capability is now provided by the plugin.
464
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900465* Pushes to each destination URI are serialized.
466+
467Scheduling a retry to avoid collision with an in-flight push is differentiated
468from a retry due to a transport error. In the case of collision avoidance, the
469job is rescheduled according to the replication delay, rather than the retry
470delay.
471
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900472
David Pursehouse58b58de2013-05-20 19:11:58 +0900473ssh
474~~~
475
476
477* The `commit-msg` hook installation command is now
David Pursehouse2e8b5822013-10-17 15:54:24 +0900478link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#gerrit.installCommitMsgHookCommand[
David Pursehouse58b58de2013-05-20 19:11:58 +0900479configurable].
480
David Pursehouse0c62df92013-10-17 14:11:48 +0900481* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-ls-members.html[
David Pursehouse58b58de2013-05-20 19:11:58 +0900482New `ls-members` command].
483
David Pursehouse0c62df92013-10-17 14:11:48 +0900484* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-set-members.html[
David Pursehouse2e3383f2013-07-08 10:50:26 +0900485New `set-members` command].
David Pursehouse621c2122013-06-19 09:30:16 +0900486+
487New command to manipulate group membership. Members can be added or removed
488and groups can be included or excluded in one specific group or number of groups.
489
David Pursehouse73907be2013-08-08 15:18:55 +0900490* The full commit message is now included in the data sent by the
David Pursehouse0c62df92013-10-17 14:11:48 +0900491link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-stream-events.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900492`stream-events` command].
493
David Pursehouse0c62df92013-10-17 14:11:48 +0900494* The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-show-queue.html[
David Pursehoused7b0cb82013-08-14 11:49:22 +0900495`show-queue` command] now shows the time that a task was added to the queue.
496
David Pursehouse58b58de2013-05-20 19:11:58 +0900497
David Pursehouse7f47d262013-06-04 10:04:59 +0900498Daemon
499~~~~~~
500
501
502* Add `--init` option to Daemon to initialize site on daemon start.
503+
504The `--init` option will also upgrade an already existing site and is processed in
505non-interactive (batch) mode.
506
507
David Pursehouse58b58de2013-05-20 19:11:58 +0900508Bug Fixes
509---------
510
511
David Pursehouse73907be2013-08-08 15:18:55 +0900512General
513~~~~~~~
514
515
516* Use the parent change on the same branch for rebases.
517+
518Since there can be multiple changes with the same commit on different branches,
519use the parent change on the same branch during rebase.
520
David Pursehoused5c50f12013-08-21 11:36:09 +0900521* link:https://code.google.com/p/gerrit/issues/detail?id=600[Issue 600]:
522Fix change stuck in SUBMITTED state but actually merged.
523
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900524* link:https://code.google.com/p/gerrit/issues/detail?id=1699[Issue 1699]:
525Fix handling of projects with trailing ".git" suffix.
526
527* Limit retrying of submitted changes to 12 hours.
528
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900529* Don't allow project owners to delete branches if force push is blocked.
530
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900531
David Pursehouse87c69a02013-07-16 14:40:24 +0900532Configuration
533~~~~~~~~~~~~~
534
535
536* Do not persist default project state in `project.config`.
537
David Pursehouse73907be2013-08-08 15:18:55 +0900538* Honor the `gerrit.cannonicalWebUrl` setting when opening the browser after init.
David Pursehouse87c69a02013-07-16 14:40:24 +0900539
540* Fix 'query disabled' error when Query Limit is set.
541
David Pursehouse73907be2013-08-08 15:18:55 +0900542* Honor the `gerrit.createChangeId` setting from the git config in the
David Pursehouse0c62df92013-10-17 14:11:48 +0900543The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-hook-commit-msg.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900544`commit-msg` hook].
545
David Pursehoused7b0cb82013-08-14 11:49:22 +0900546* link:https://code.google.com/p/gerrit/issues/detail?id=2045[Issue 2045]:
547Define user scope when parsing server config.
548
David Pursehoused5c50f12013-08-21 11:36:09 +0900549* link:https://code.google.com/p/gerrit/issues/detail?id=1990[Issue 1990]:
550Support optional Certificate Revocation List (CRL) with `CLIENT_SSL_CERT_LDAP`.
551
David Pursehoused0c8e372013-10-10 10:14:18 +0900552* Do not override error and gc logging configuration provided by the
553`-Dlog4j.configuration` parameter.
554
David Pursehouse58b58de2013-05-20 19:11:58 +0900555Web UI
556~~~~~~
557
558
David Pursehouse61927b72013-06-27 16:06:51 +0900559Global
560^^^^^^
561
562
563* link:https://code.google.com/p/gerrit/issues/detail?id=1574[Issue 1574]:
564Correctly highlight matches of text in escaped HTML entities in suggestion results.
565
David Pursehouse2e3383f2013-07-08 10:50:26 +0900566* link:https://code.google.com/p/gerrit/issues/detail?id=1996[Issue 1996]:
567The "Keyboard Shortcuts" help popup can be closed by pressing the Escape key.
568
David Pursehouse73907be2013-08-08 15:18:55 +0900569* link:https://code.google.com/p/gerrit/issues/detail?id=2013[Issue 2013]:
570Correctly populate the list of watched changes when watching more than one project.
David Pursehouse61927b72013-06-27 16:06:51 +0900571
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900572* Display "Working..." when header is hidden.
573
David Pursehouse61927b72013-06-27 16:06:51 +0900574Change Screens
575^^^^^^^^^^^^^^
576
577
David Pursehouse58b58de2013-05-20 19:11:58 +0900578* Default review comment visibility is changed to expand all recent.
579+
580By default all comments within the last week are expanded, rather than
581only the most recent.
582
David Pursehouse7f47d262013-06-04 10:04:59 +0900583* link:https://code.google.com/p/gerrit/issues/detail?id=1814[Issue 1814]:
584Sort labels alphabetically by name in the approval table.
585
David Pursehoused0c8e372013-10-10 10:14:18 +0900586* Don't add "This patchset was cherry picked to ..." for the same change.
587+
588If a patchset is cherry-picked to the same destination branch and
589ends up on the same change, it does not make sense to add the "This
590patchset was cherry picked to change ..." message.
591+
592In this case, it makes more sense for the message to say "Uploaded
593patch set N" instead.
594
David Pursehouse61927b72013-06-27 16:06:51 +0900595Project Screens
596^^^^^^^^^^^^^^^
597
598
599* Only enable the delete branch button when branches are selected.
600
601* Disable the delete branch button while branch deletion requests are
602still being processed.
603
604User Profile Screens
605^^^^^^^^^^^^^^^^^^^^
606
607
608* The preferred email address field is shown as empty if the user has no
609preferred email address.
610
David Pursehouse58b58de2013-05-20 19:11:58 +0900611
612REST API
613~~~~~~~~
614
615
David Pursehouse7f47d262013-06-04 10:04:59 +0900616* Support raw input also in POST requests.
617
David Pursehouse58b58de2013-05-20 19:11:58 +0900618* Show granted date for labels/all when using `/changes/`.
619
620* Return all revisions when `o=ALL_REVISIONS` is set on `/changes/`.
621
622ssh
623~~~
624
625
David Pursehouse73907be2013-08-08 15:18:55 +0900626* The `--force-message` option is removed from the
David Pursehouse0c62df92013-10-17 14:11:48 +0900627The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-review.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900628`review` command].
David Pursehouse58b58de2013-05-20 19:11:58 +0900629
630* link:https://code.google.com/p/gerrit/issues/detail?id=1908[Issue 1908]:
631Provide more informative error messages when rejecting updates.
632
David Pursehouse4143f952013-07-05 13:57:53 +0900633* Remove the limit in the query of patch sets by revision.
634
David Pursehouse73907be2013-08-08 15:18:55 +0900635* Add `isDraft` in the `patchSet` attribute of `stream-events` data.
David Pursehouse2e3383f2013-07-08 10:50:26 +0900636+
637This allows consumers of the event stream to determine whether or not
638the event is related to a draft patch set.
639
David Pursehouse73907be2013-08-08 15:18:55 +0900640* Normalize the case of review labels submitted via the
David Pursehouse0c62df92013-10-17 14:11:48 +0900641The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-review.html[
David Pursehouse73907be2013-08-08 15:18:55 +0900642`review` command].
643
David Pursehoused7b0cb82013-08-14 11:49:22 +0900644* The `@CommandMetaData(descr)` annotation is deprecated in favor of `@CommandMetaData(description)`.
645
David Pursehouse6e2dcc92013-09-18 09:17:33 +0900646* Improve the error message when rejecting upload for review to a read-only project.
647
David Pursehouse2e3383f2013-07-08 10:50:26 +0900648
David Pursehouse67c07102013-09-24 09:55:23 +0900649Plugins
650~~~~~~~
651
David Pursehoused0c8e372013-10-10 10:14:18 +0900652Global
653^^^^^^
654
David Pursehouse67c07102013-09-24 09:55:23 +0900655* Better error message when a Javascript plugin cannot be loaded.
656
David Pursehoused0c8e372013-10-10 10:14:18 +0900657* Plugin documentation links are opened in a new tab.
658
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900659* The GitReferenceUpdatedListener.Event API is simplified.
660+
661The Event exposed the getUpdates method which implied that one Event
662could contain updates of more than one reference. However, this feature
663was never used.
664+
665The API is simplified in the sense that one Event now corresponds to
666one ref update only.
667
David Pursehoused0c8e372013-10-10 10:14:18 +0900668
669Review Notes
670^^^^^^^^^^^^
671
672* Do not try to create review notes for ref deletion events.
673
674* Fix committing the notes from the export command.
675
676* link:https://code.google.com/p/gerrit/issues/detail?id=2087[Issue 2087]:
677Fix note creation when the same commit exists in another Git repository.
678
679* Improve the export command performance.
680
681* Create review note also when newObjectId already present in another branch.
682
David Pursehouse87c69a02013-07-16 14:40:24 +0900683Emails
684~~~~~~
685
686* Email notifications are sent for new changes created via actions in the
687Web UI such as cherry-picking or reverting a change.
688
689
David Pursehouse58b58de2013-05-20 19:11:58 +0900690Tools
691~~~~~
692
693
694* git-exproll.sh: return non-zero on errors
695
David Pursehouse58b58de2013-05-20 19:11:58 +0900696
697Documentation
698-------------
699
700
David Pursehouse0c62df92013-10-17 14:11:48 +0900701* The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/index.html[
David Pursehouse58b58de2013-05-20 19:11:58 +0900702documentation index page] is rewritten in a hierarchical structure.
703
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900704* Documentation of
David Pursehouse0c62df92013-10-17 14:11:48 +0900705link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-project-config.txt[
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900706project configuration] is added.
707
David Pursehouse61927b72013-06-27 16:06:51 +0900708* Various spelling mistakes are corrected in the documentation and previous
709release notes.
710
David Ostrovsky5116a4f2013-10-13 08:45:07 +0200711
712Upgrades
David Pursehouse2e99e0f2013-10-17 10:05:39 +0900713--------
David Ostrovsky5116a4f2013-10-13 08:45:07 +0200714
715* Update JGit to 3.0.0.201306101825-r.41-g84d2738
716* Update gwtorm to 1.7
717* Update guice to 4.0-beta
718* Update guava to 15.0
719* Update H2 to 1.3.173
720* Update bouncycastle to 1.44
721* asciidoctor 0.1.4 is now required to build the documentation
722* jsr305 library was removed