blob: 26b0b0e31af6811947ad328b60243249cd7d6fc5 [file] [log] [blame]
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001= Release notes for Gerrit 2.6
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08002
3Gerrit 2.6 is now available:
4
Shawn Pearce6d7ebc62015-06-12 16:34:42 -07005link:https://www.gerritcodereview.com/download/gerrit-2.6.war[https://www.gerritcodereview.com/download/gerrit-2.6.war]
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08006
Edwin Kempina7d2b632013-03-06 09:10:08 +01007Gerrit 2.6 includes the bug fixes done with
David Pursehousebc125c02013-05-20 15:27:05 +09008link:ReleaseNotes-2.5.1.html[Gerrit 2.5.1],
9link:ReleaseNotes-2.5.2.html[Gerrit 2.5.2],
10link:ReleaseNotes-2.5.3.html[Gerrit 2.5.3], and
11link:ReleaseNotes-2.5.4.html[Gerrit 2.5.4]. These bug fixes are *not*
Edwin Kempina7d2b632013-03-06 09:10:08 +010012listed in these release notes.
13
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070014== Schema Change
Shawn O. Pearcea890daa2012-11-08 23:22:56 -080015*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.6.x requires the server be first upgraded to 2.1.7 (or
21a later 2.1.x version), and then to 2.6.x. If you are upgrading from 2.2.x.x or
22newer, you may ignore this warning and upgrade directly to 2.6.x.
23
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070024== Reverse Proxy Configuration Changes
Steffen Gebert832014f2013-06-03 21:42:47 +020025
26If you are running a reverse proxy in front of Gerrit (e.g. Apache or Nginx),
27make sure to check your configuration, especially if you are encountering
28'Page Not Found' errors when opening the change screen.
29See the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-reverseproxy.html[
30Reverse Proxy Configuration] for details.
31
32Gerrit now requires passed URLs to be unchanged by the proxy.
33
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070034== Release Highlights
Shawn Pearce97706722013-03-28 16:29:05 -040035* 42x improvement on `git clone` and `git fetch`
36+
37Running link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[
38gerrit gc] allows JGit to optimize a repository to serve clone and fetch
39faster than C Git can, with massively lower server CPU required. Typically
40Gerrit 2.6 can completely transfer a project to a client faster than C Git
41can finish "Counting" the objects.
42
43* Completely customizable workflow
44+
45Individual projects can add (or remove) score categories through
46link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-labels.html[
47labels] and link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html[
48Prolog rules].
49
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070050== New Features
Shawn O. Pearcea890daa2012-11-08 23:22:56 -080051
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070052=== Web UI
Shawn O. Pearcea890daa2012-11-08 23:22:56 -080053
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070054==== Global
Edwin Kempin39462122013-03-27 09:18:19 +010055
Edwin Kempin204b07a2013-04-03 14:30:20 +020056* New Login Screens
57+
58New form based HTML screens for login allow browsers to offer the
59choice to save the login data locally in the user's password store.
60
Edwin Kempin39462122013-03-27 09:18:19 +010061* Rename "Groups" top-level menu to "People"
62
63* Move "Draft Comments" link next to "Drafts" link
64
65* Highlight the active menu item
66
67* Move user info, settings, and logout to popup dialog
68
69* Show a small version of the avatar image next to the user's name.
70
71* Show avatar image in user info popup dialog
72
73* Always show 'Working ...' message
74+
Sterling Greene7d979b12013-04-20 13:10:44 -040075The 'Working ...' message is relatively positioned from the top of
76the browser, so that the message is always visible, even if the user
77has scrolled down the page.
Edwin Kempin39462122013-03-27 09:18:19 +010078
79* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#suggest.from[
80 suggest.from] configures a minimum number of characters before
81 matches for reviewers, accounts, groups or projects are offered.
82
83* Make the default font size "small".
84
85* Mark all CSS classes as external so users can rely on them.
86
David Pursehousef59de422013-05-20 16:14:38 +090087* Add a link to the REST API documentation in the top menu.
88
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -070089==== Search
Edwin Kempin39462122013-03-27 09:18:19 +010090* Suggest projects, groups and users in search panel
91+
92Suggest projects, groups and users in the search panel as parameter for
93those search operators that expect a project, group or user.
94
95* In search panel suggest 'self' as value for operators that expect a user
96
97* Quote values suggested for search operators only if needed
98+
99The values that are suggested for the search operators in the search
100panel are now only quoted if they contain a whitespace.
101
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700102==== Change Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100103
104* A change's commit message can be edited from the change screen.
105
106* A change's topic can be added, removed or changed from the
107 change screen.
108
109* An "Add Comment" button is added to change screen
110
111* The reviewer matrix on a change displays gray boxes where permissions
112 do not allow voting in that category.
113+
114The coloring enables authors to quickly identify if another reviewer
115is necessary to continue the change.
116
117* link:https://code.google.com/p/gerrit/issues/detail?id=353[Issue 353] &
118 link:https://code.google.com/p/gerrit/issues/detail?id=1123[Issue 1123]:
119 New link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/project-setup.html#rebase_if_necessary[
120 Rebase If Necessary] submit type
121+
122This is similar to cherry pick, but honors change dependency
123information.
124
125* The rebase button is hidden when the patch set is current.
126
127* Improved review message when a change is rebased in the UI
128+
129When a change is rebased in the UI by pressing the rebase button, a
130comment is added onto the review. Instead of only saying 'Rebased' the
131message is now more verbose, e.g. 'Patch Set 1 was rebased'.
Edwin Kempinca24f5c2013-03-26 13:23:20 +0100132
133* The submit type that is used for submitting a change is shown on the
134 change screen in the info block.
135+
136This is useful because the submit type of a change can now be
137link:#submit-type-from-prolog[controlled by Prolog].
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800138
Edwin Kempin39462122013-03-27 09:18:19 +0100139* Replace the All Diff buttons on the change screen with links
140+
141The action buttons to open the diff for all files in own tabs consumed
142too much space due to the long label texts.
David Pursehouse86581ab2013-02-25 09:46:51 +0900143
Dave Borowitz01c1b1f2013-02-27 13:49:04 -0800144* The patch set review screen can include radio buttons for custom
145 labels if enabled by
146 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html#_how_to_write_submit_rules[submit rules].
147
Edwin Kempin204b07a2013-04-03 14:30:20 +0200148* Voting on draft changes is now possible.
149
David Pursehousef59de422013-05-20 16:14:38 +0900150* Recommend rebase on Path Conflict.
Edwin Kempin39462122013-03-27 09:18:19 +0100151
152* link:https://code.google.com/p/gerrit/issues/detail?id=1685[Issue 1685]:
153 After 'Up to change' expand the patch set that was just reviewed
154+
155After clicking on the 'Up to change' link on a patch screen, the patch
156set that was just reviewed is automatically expanded on the change
157screen.
158
159* Allow direct change URLs to end with '/'.
160
161* Slightly increase commit message text size from 8px to 9px.
162
163* link:https://code.google.com/p/gerrit/issues/detail?id=1381[Issue 1381]:
164 Remove the ID column from change tables
165+
166Users don't really need the ID column present. For most changes the
167subject is descriptive and unique enough to identify the correct
168change.
169
David Pursehousef59de422013-05-20 16:14:38 +0900170* Do not wrap project/branch/owner fields in change table.
Edwin Kempin39462122013-03-27 09:18:19 +0100171+
172This makes it easier to use Gerrit on narrow screens.
173
David Pursehousef59de422013-05-20 16:14:38 +0900174* Rename "Old Version History" to "Reference Version".
175
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700176==== Patch Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100177
178* Support for file comments
179+
180It is now possible to comment on a whole file in a patch.
181
182* Have the reviewed panel also at the bottom of the patch screen
183+
184Reviewers normally review patches top down, finishing the review when
185they reach the bottom of the patch. To use the streamlined review
186workflow they now don't need to scroll back to the top to find the
187reviewed checkbox and link.
188
189* link:https://code.google.com/p/gerrit/issues/detail?id=1494[Issue 1494]:
190 Use mono-font for displaying the file contents
191+
192This avoids alignment errors when syntax highlighting is enabled.
193
David Pursehousef59de422013-05-20 16:14:38 +0900194* Distinguish between error and timeout in intraline diff error message.
195
196* Enable expanding skipped lines even if 'Syntax Coloring' is off.
197
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700198==== Project Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100199
200* Support filtering of projects in the project list screen
201+
202Filter matches are highlighted by bold printing.
203+
204The filter is reflected by the `filter` URL parameter.
205
206* Support filtering of projects in ProjectListPopup
207+
208Filter matches are highlighted by bold printing.
209
210* Display a query icon for each project in the project list screen that
211 links to the default query/dashboard of that project.
212
213* Replace projects side menus with top menus
214+
215The top menus are submenus to the Project Menu and they appear only
216when a project has been selected.
217
218* Remember the last Project Screen used
219+
220Remember the last project screen used every time a project screen is
221loaded. Go to the remembered screen when selecting a new project from
222the project list instead of always going to the project info screen.
223
224* Remember the last project viewed
225+
226Remember the last project viewed when navigating away from a project
227screen. If there is a remembered project, then the extra project links
228are not hidden.
229
230* Add clone panel to the project general screen
231
232* New screen for listing and accessing the project dashboards.
233
234* link:https://code.google.com/p/gerrit/issues/detail?id=1677[Issue 1677]:
235 Place the 'Browse' button to select a watched project next to input field
236
237* Ask user to login if project is not found
238+
239Accessing a project URL was failing with 'Not Found - The page you
240requested was not found, or you do not have permission to view this
241page' if the user was not signed in and the project was not visible to
242'Anonymous Users'. Instead Gerrit now asks the user to login and
243afterwards shows the project to the user if it exists and is visible.
244If the project doesn't exist or is not visible, the user will still get
245the Not Found screen after sign in.
246
247* Improve error handling on branch creation
248+
249Improve the error messages that are displayed in the WebUI if the
250creation of a branch fails due to invalid user input.
251
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700252==== Group Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100253
254* Support filtering of groups in the group list screen
255+
256Filter matches are highlighted by bold printing.
257+
258The filter is reflected by the `filter` URL parameter.
259
260* Remove group type from group info screen
261+
262The information about the group type was not much helpful. All groups
263that can be seen in Gerrit are of type 'INTERNAL', except a few
264well-known system groups which are of type 'SYSTEM'. The system groups
265are so well-known that there is no need to display the type for them.
266
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700267==== Dashboard Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100268
269* Link dashboard title to a URL version of itself
270+
271When using a stable project dashboard URL, the URL obfuscates the
272content of the dashboard which can make it hard to debug a dashboard or
273copy and modify it. In the special case of stable dashboards, make the
274title a link to an unstable URL version of the dashboard with the URL
275reflecting the actual dashboard contents the way a custom dashboard
276does.
277
278* Increase time span for "Recently Closed" section in user dashboard to 4 weeks.
279
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700280==== Account Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100281
282* link:https://code.google.com/p/gerrit/issues/detail?id=1740[Issue 1740]:
283 Display description how to generate SSH Key in SshPanel
284+
285Display a description of how to generate an SSH Key in an expandable
286section in the SshPanel instead of linking to the GitHub SSH tutorial.
287The GitHub SSH tutorial was partially not relevant and confused users.
288
289* Make the text for "Register" customizable
290
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700291==== Plugin Screens
Edwin Kempin39462122013-03-27 09:18:19 +0100292
293* Show status for enabled plugins in the WebUI as 'Enabled'
294+
295Earlier no status was shown for enabled plugins, which was confusing to
296some users.
David Pursehouse86581ab2013-02-25 09:46:51 +0900297
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700298=== REST API
Edwin Kempin7e960ac2013-03-27 13:28:12 +0100299
300* A big chunk of the Gerrit functionality is now available via the
301 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api.html[REST API].
302+
303The REST API is *NOT* complete yet and some functionality is still missing.
304+
305To find out which functionality is available, check the REST endpoint documentation for
306link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html[projects],
307link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-changes.html[changes],
308link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-groups.html[groups] and
309link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-accounts.html[accounts].
310
311* Support setting `HEAD` of a project
312 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html#set-head[via REST].
313
314* Audit support for REST API.
315+
316Allow generating Audit events related to REST API execution. The
317structure of the AuditEvent has been extended to support the new
318name-multivalue pairs used in the REST API.
319+
320This is breaking compatibility with the 2.5 API as it changes the
321params data type, this is needed anyway as the previous list of
322Objects was not providing all the necessary information of
323"what relates to what" in terms of parameters info.
324+
325Existing support for SSH and JSON-RPC events have been adapted in
326order to fit into the new name-multivalue syntax: this allow a
327generic audit plug-in to capture all parameters regardless of where
328they have been generated.
329
330* Remove support for deprecated `--format` option when listing changes
331+
332Querying changes via REST is now always producing JSON output.
333
334* Introduce `id` property on REST entities
335+
336The `/changes/` entities now use `id` to include a triplet of the
337project, branch and change-id string to uniquely identify that change
338on the server. This moves the old `id` field to be named `change_id`,
339which is a breaking change.
340
341* Accept common forms of malformed JSON
342+
343Some clients may send JSON-ish instead of JSON. Be nice to those
344clients and accept various useful forms of incorrect syntax:
345+
346** End of line comments starting with `//` or `#` and ending with a
347 newline character.
348** C-style comments starting with `/*` and ending with `*/`
349 Such comments may not be nested.
350** Names that are unquoted or single quoted.
351** Strings that are unquoted or single quoted.
352** Array elements separated by `;` instead of `,`.
353** Unnecessary array separators. These are interpreted as if null was
354 the omitted value.
355** Names and values separated by `=` or `=>` instead of `:`.
356** Name/value pairs separated by `;` instead of `,`.
357
358* Be more liberal about parsing JSON responses
359+
360If the response begins with the JSON magic string, remove it before
361parsing. If a response is missing this leading string, parse the
362response as-is.
363
364* Accept simple form encoded data for REST APIs
365+
366Simple cases like `/review` or `/abandon` can now accept standard form
367values for basic properties, making it simple for tools to directly
368post data:
369+
370----
371 curl -n --digest \
372 --data 'message=Does not compile.' \
373 --data labels.Verified=-1 \
374 http://localhost:8080/a/changes/3/revisions/1/review
375----
376+
377Form field names are JSON field names in the top level object. If dot
378appears in the name the part to the left is taken as the JSON field
379name and the part to the right as the key for a Map. This nicely fits
380with the labels structure used by `/review`, but doesn't support the
381much more complex inline comment case. Clients that need to use more
382complex fields must use JSON formatting for the request body.
383
384* Allow administrators to see other user capabilities
385+
386Expand `/accounts/{id}/capabilities` to permit an administrator
387to inspect another user's effective capabilities.
388
389* Declare kind in JSON API results
390+
391This is recommended to hint to clients what the entity type is when
392processing the JSON payload.
393
394* Format h/help output as plain text not JSON
395+
396The output produced when the client requested the h or help property
397from a JSON API is always produced from constant compiled into the
398server. Assume this safe to return to the client as text/plain content
399and avoid wrapping it into an HTML escaped JSON string.
400
401* Use string for JSON encoded plain text replies
402+
403Instead of wrapping the value into an object, just return the
404string by itself. This better matches what happens with the plain
405text return format.
406
407* Wrap possible HTML plain text in JSON on GET
408+
409If the HTML appears like MSIE might guess it is HTML (such as if it
410contains `<`) encode the response as a JSON object instead of as a
411simple plain text string. This won't show up very often for clients,
412and protects MSIE users stuck on ancient versions (pre MSIE 8).
413
414* Ask MSIE to never sniff content types on REST API responses
415+
416Newer versions of MSIE can disable the content sniffing feature if the
417server asks it to by setting an extension header. It is annoying, but
418necessary, that a server needs to say "No really, I _am_ telling you
419the right Content-Type, trust it."
420+
421This feature was added in MSIE 8 Beta 2 so it doesn't protect users
422running MSIE 6 or 7, but those are ancient and users should upgrade.
423+
424Enable this on the REST API responses because we sometimes send back
425text/plain results that are really just plain text. Existing JSON
David Pursehouse20627352013-06-23 20:49:32 +0900426responses are protected from accidental sniffing and treatment as
Edwin Kempin7e960ac2013-03-27 13:28:12 +0100427HTML thanks to Gson encoding HTML control characters using Unicode
428character escapes within JSON strings.
429
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700430=== Project Dashboards
Edwin Kempin861d4e12013-03-27 10:28:18 +0100431* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html#project-dashboards[
432 Support for storing custom dashboards for projects]
433+
434Custom dashboards can now be stored in the projects
435`refs/meta/dashboards/*` branches.
436+
437The project dashboards are shown in a new project screen and can be
438link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html#dashboard-endpoints[
439accessed via REST].
440
441* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html#project-default-dashboard[
442 Allow defining a default dashboard for projects]
443
444* Support inheritance for project dashboards.
445+
446In dashboards queries the `${project}` token can be used as placeholder
447for the project name. This token will be replaced with the project to
448which a dashboard is being applied.
449
450* On the project list screen a query icon is displayed for each project
451 that links to the default dashboard of that project.
452
453* Support a `foreach` parameter for custom dashboards.
454+
455The `foreach` parameter which will get appended to all the queries in
456the dashboard.
457
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700458=== Access Controls
Edwin Kempin3e6303c2013-03-26 09:16:38 +0100459* Allow to overrule `BLOCK` permissions on the same project
460+
461It was impossible to block a permission for a group and allow the same
462permission for a sub-group of that group as the `BLOCK` permission
463always won over any `ALLOW` permission. For example, it was impossible
464to block the "Forge Committer" permission for all users and then allow
465it only for a couple of privileged users.
466+
467An `ALLOW` permission has now priority over a `BLOCK` permission when
468they are defined in the same access section of a project. To achieve the
469above mentioned policy the following could be defined:
470+
471 [access "refs/heads/*"]
472 forgeCommitter = block group Anonymous Users
473 forgeCommitter = group Privileged Users
474+
475Across projects the `BLOCK` permission still wins over any `ALLOW`
476permission. This way one cannot override an inherited `BLOCK`
477permission in a subproject.
478+
479Overruling of `BLOCK` permissions with `ALLOW` permissions also works
480for labels i.e. permission ranges. If a dedicated 'Verifiers' group
481need to be the only group who can vote in the 'Verified' label and it
482must be ensured that even project owners cannot change this policy,
483then the following can be defined in a common parent project:
484+
485 [access "refs/heads/*"]
486 label-Verified = block -1..+1 group Anonymous Users
487 label-Verified = -1..+1 group Verifiers
488
489* link:https://code.google.com/p/gerrit/issues/detail?id=1516[issue 1516]:
490 Show global capabilities to all users that can read `refs/meta/config`
491+
492Users can now propose changes to the global capabilities for review
493from the WebUI.
494
495* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_remove_reviewer[
496 Remove Reviewer] is a new permission.
497
498* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_push_signed[
499 Pushing a signed tag] is a new permission.
500
501* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_edit_topic_name[
502 Editing the topic name] is a new permission.
503
504* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#capability_accessDatabase[
505 Raw database access] with the `gsql` command is a new global capability.
David Pursehouse74573962013-03-08 12:23:37 +0900506+
507Previously site administrators had this capability by default. Now it has
508to be explicitly assigned, even for site administrators.
509
David Pursehouse345f2be2013-03-04 11:02:20 +0900510* link:https://code.google.com/p/gerrit/issues/detail?id=1585[Issue 1585]:
Edwin Kempin3e6303c2013-03-26 09:16:38 +0100511 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_view_drafts[
512 Viewing other users' draft changes] is a new permission.
David Pursehouse345f2be2013-03-04 11:02:20 +0900513
514* link:https://code.google.com/p/gerrit/issues/detail?id=1675[Issue 1675]:
Edwin Kempin3e6303c2013-03-26 09:16:38 +0100515 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_delete_drafts[Deleting] and
516 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_publish_drafts[publishing]
517 other users' draft changes is a new permission.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800518
David Pursehouseb1d656f2013-04-04 09:51:36 +0900519* Grant most permissions when creating `All-Projects`
Edwin Kempin204b07a2013-04-03 14:30:20 +0200520+
David Pursehouseb1d656f2013-04-04 09:51:36 +0900521Make Gerrit more like a Git server out-of-the box by granting both
Edwin Kempin204b07a2013-04-03 14:30:20 +0200522Administrators and Project Owners permissions to review changes, submit
523them, create branches, create tags, and push directly to branches.
524
Edwin Kempin3e6303c2013-03-26 09:16:38 +0100525* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#ldap.groupName[
526 LDAP group names] are configurable, `cn` is still the default.
527
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800528* Kerberos authentication to LDAP servers is now supported.
529
Edwin Kempin3e6303c2013-03-26 09:16:38 +0100530* Basic project properties are now inherited by default from parent
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800531 projects: Use Content Merge, Require Contributor Agreement, Require
532 Change Id, Require Signed Off By.
533
Edwin Kempin3e6303c2013-03-26 09:16:38 +0100534* Allow assigning `Push` for `refs/meta/config` on `All-Projects`
535+
536The `refs/meta/config` branch of the `All-Projects` project should only
537be modified by Gerrit administrators because being able to do
538modifications on this branch means that the user could assign himself
539administrator permissions.
540+
541In addition to being administrator Gerrit requires that the
542administrator has the `Push` access right for `refs/meta/config` in
543order to be able to modify it (just as with all other branches
544administrators do not have edit permissions by default).
545+
546The problem was that assigning the `Push` access right for
547`refs/meta/config` on the `All-Projects` project was not allowed.
548+
549Having the `Push` access right for `refs/meta/config` on the
550`All-Projects` project without being administrator has no effect.
551
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700552=== Hooks
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800553* Change topic is passed to hooks as `--topic NAME`.
David Pursehouse673bace2013-02-27 18:14:29 +0900554* link:https://code.google.com/p/gerrit/issues/detail?id=1200[Issue 1200]:
555New `reviewer-added` hook and stream event when a reviewer is added.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800556
David Pursehouseb58a18d2013-03-06 15:37:03 +0900557* link:https://code.google.com/p/gerrit/issues/detail?id=1237[Issue 1237]:
558New `merge-failed` hook and stream event when a change cannot be submitted due to failed merge.
559
Chris Harris8944f432013-03-21 17:07:30 -0400560* link:https://code.google.com/p/gerrit/issues/detail?id=925[Issue 925]:
561New `ref-update` hook run before a push is accepted by Gerrit.
562
Edwin Kempind73a8452013-03-27 11:34:16 +0100563* Add `--is-draft` parameter to `comment-added` hook
564
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700565=== Git
Edwin Kempind73a8452013-03-27 11:34:16 +0100566* Add options to `refs/for/` magic branch syntax
567+
568Git doesn't want to modify the network protocol to support passing
569data from the git push client to the server. Work around this by
570embedding option data into a new style of reference specification:
571+
572----
573 refs/for/master%r=alice,cc=bob,cc=charlie,topic=options
574----
575+
576is now parsed by the server as:
577+
578--
579** set topic to "options"
580** CC charlie and bob
581** add reviewer alice
582** for branch refs/heads/master
583--
584+
585If `%` is used the extra information after the branch name is
586parsed as options with args4j. Each option is delimited by `,`.
587+
588Selecting publish vs. draft should be done with the options `draft` or
589`publish`, appearing anywhere in the refspec after the `%` marker:
590+
591----
592 refs/for/master%draft
593 refs/for/master%draft,r=alice
594 refs/for/master%r=alice,draft
595 refs/for/master%r=alice,publish
596----
597
Edwin Kempin204b07a2013-04-03 14:30:20 +0200598* Enable content merge by default
599+
600Most teams seem to expect Gerrit to manage simple merges within a
David Pursehouseb1d656f2013-04-04 09:51:36 +0900601source code file. Enable this out-of-the-box.
Edwin Kempin204b07a2013-04-03 14:30:20 +0200602
Edwin Kempind73a8452013-03-27 11:34:16 +0100603* Added a link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#core.useRecursiveMerge[
604 server-level option] to use JGit's new, experimental recursive merger.
605
606* link:https://code.google.com/p/gerrit/issues/detail?id=1608[Issue 1608]:
607Commits pushed without a Change-Id now warn with instructions on how
608to download and install the commit-msg hook.
609
610* Add `oldObjectId` and `newObjectId` to the `GitReferenceUpdatedListener.Update`
611
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700612=== SSH
Edwin Kempinbf22ad52013-03-26 10:26:12 +0100613* New SSH command to http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[
614 run Git garbage collection]
615+
616All GC runs are logged in a GC log file.
617
David Ostrovsky6e37b782013-02-27 00:52:49 +0100618* Descriptions are added to ssh commands.
619+
620If `gerrit` is called without arguments, it will now show a list of available
621commands with their descriptions.
622
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800623* `create-account --http-password` enables setting/resetting the
Edwin Kempinbf22ad52013-03-26 10:26:12 +0100624 HTTP password of role accounts, for Git or REST API access.
625
626* http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-ls-user-refs.html[
627 ls-user-refs] lists which refs are visible for a given user.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800628
629* `ls-projects --has-acl-for` lists projects that mention a group
630 in an ACL, identifying where rights are granted.
631
Edwin Kempinbf22ad52013-03-26 10:26:12 +0100632* `review` command supports project-specific labels
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800633
Edwin Kempinbf22ad52013-03-26 10:26:12 +0100634* `test-submit-rule` was renamed to `test-submit rule`:
635+
636`rule` is now a subcommand of the `test-submit` command.
637
638* http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-test-submit-type.html[
639 test-submit type] tests the Prolog submit type with a chosen change.
640
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700641=== Query
Edwin Kempinbf22ad52013-03-26 10:26:12 +0100642* Allow `{}` to be used for quoting in query expressions
643+
644This makes it a little easier to query for group names that contain
645a space over SSH:
646+
647 ssh srv gerrit query " 'status:open NOT reviewerin:{Developer Group}' "
648
649* The query summary block includes `resumeSortKey`.
650
651* Query results include author and change size information when certain
652 options are specified.
653
654* When a file is renamed the old file name is included in the Patch
655 attribute
David Pursehouse50abd452013-03-05 15:43:34 +0900656
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700657=== Plugins
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800658* Plugins can contribute Prolog facts/predicates from Java.
659* Plugins can prompt for parameters during `init` with `InitStep`.
660* Plugins can now contribute JavaScript to the web UI. UI plugins can
661 also be written and compiled with GWT.
662* New Maven archetypes for JavaScript and GWT plugins.
David Pursehouse86581ab2013-02-25 09:46:51 +0900663* Plugins can contribute validation steps to received commits.
664* Commit message length checks are moved to the `commit-message-length-validator`
665 plugin which is included as a core plugin in the Gerrit distribution and
666 can be installed during site initialization.
Edwin Kempin25b5b002013-03-27 10:01:02 +0100667* Creation of code review notes is moved to the `reviewnotes` plugin
668 which is included as a core plugin in the Gerrit distribution and can
669 be installed during site initialization.
670* A plugin extension point for avatar images was added.
Edwin Kempin204b07a2013-04-03 14:30:20 +0200671* Allow HTTP plugins to change `static` or `docs` prefixes
672+
673An HTTP plugin may want more control over its URL space, but still
674delegate to the plugin servlet's magic handling for static files and
675documentation. Add JAR attributes to configure these prefixes.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800676
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700677=== Prolog
Edwin Kempinca24f5c2013-03-26 13:23:20 +0100678[[submit-type-from-prolog]]
679* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html#HowToWriteSubmitType[
680 Support controlling the submit type for changes from Prolog]
681+
682Similarly like the `submit_rule` there is now a `submit_type` predicate
683which returns the allowed submit type for a change. When the
684`submit_type` predicate is not provided in the `rules.pl` then the
685project default submit type is used for all changes of that project.
686+
687Filtering the results of the `submit_type` is also supported in the
688same way like filtering the results of the `submit_rule`. Using a
689`submit_type_filter` predicate one can enforce a particular submit type
690from a parent project.
691
692* Plugins can contribute Prolog facts/predicates from Java.
693
694* link:https://code.google.com/p/gerrit/issues/detail?id=288[Issue 288]:
695 Expose basic commit statistics for the Prolog rule engine
696+
697A new method `gerrit:commit_stats(-Files,-Insertions, -Deletions)` was
698added.
699
700* A new `max_with_block` predicate was added for more convenient usage
701
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700702=== Email
Edwin Kempine742e912013-03-26 14:38:12 +0100703* Notify project watchers if draft change is published
704* Notify users mentioned in commit footer on draft publish
705* Add new notify type that allows watching of new patch sets
706* link:https://code.google.com/p/gerrit/issues/detail?id=1686[Issue 1686]:
707 Add new notify type that allows watching abandoning of changes
708* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-notify.html[
709 Notifications configured in `project.config`] can now be addressed
710 using any of To, CC, or BCC headers.
David Pursehouse673bace2013-02-27 18:14:29 +0900711* link:https://code.google.com/p/gerrit/issues/detail?id=1531[Issue 1531]:
712Email footers now include `Gerrit-HasComments: {Yes|No}`.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800713* `#if($email.hasInlineComments())` can be used in templates to test
714 if there are comments to be included in this email.
David Pursehousedc018df2013-03-06 15:37:24 +0900715* Notification emails are sent to included groups.
716* Comment notification emails are sent to project watchers.
717* "Change Merged" emails include the diff output when `sendemail.includeDiff` is enabled.
Edwin Kempine742e912013-03-26 14:38:12 +0100718* When link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-changes.html#set-review[
719 posting a review via REST] the caller can control email delivery
720+
721This may help automated systems to be less noisy. Tools can now choose
722which review updates should send email, and which categories of users
723on a change should get that email.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800724
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700725=== Labels
Dave Borowitz01c1b1f2013-02-27 13:49:04 -0800726* Approval categories stored in the database have been replaced with labels
727 configured in `project.config`. Existing categories are migrated to
728 `project.config` in `All-Projects` as part of the schema upgrade; no user
729 action is required.
Edwin Kempin39462122013-03-27 09:18:19 +0100730* Labels are no longer global;
731 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-labels.html[
732 projects may define their own labels], with inheritance.
Edwin Kempin204b07a2013-04-03 14:30:20 +0200733* Don't create `Verify` category by default
734+
735Most project teams seem confused with the out-of-the-box experience
736needing to vote on both `Code-Review` and `Verified` categories in
David Pursehouseb1d656f2013-04-04 09:51:36 +0900737order to submit a change. Simplify the out-of-the-box workflow to only
Edwin Kempin204b07a2013-04-03 14:30:20 +0200738have `Code-Review`. When a team installs the Hudson/Jenkins integration
739or their own build system they can now trivially add the `Verified`
740category by pasting 5 lines into `project.config`.
Dave Borowitz01c1b1f2013-02-27 13:49:04 -0800741
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700742=== Dev
Edwin Kempin57fa1792013-03-27 10:43:41 +0100743
744* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-readme.html#debug-javascript[
745 Support loading debug JavaScript]
746
747* Gerrit acceptance tests
748+
749An infrastructure for testing the Gerrit daemon via REST and/or SSH
750protocols has been added. Gerrit daemon is run in the headless mode and
751in the same JVM where the tests run. Besides using REST/SSH, the tests
752can also access Gerrit server internals to prepare the test environment
753and to perform assertions.
754+
755A new review site is created for each test and the Gerrit daemon is
756started on that site. When the test has finished the Gerrit daemon is
757shutdown.
758
759* Lightweight LDAP server for debugging
760
761* Add asciidoc checks in the documentation makefile
762+
763Exit with error if the asciidoc executable is not available or has
764version lower than 8.6.3.
765+
766The release script is aborted if asciidoc is missing.
767
768* Added sublime project files to `.gitignore`
769
770* Exclude all `pom.xml` files that are archetype resources in `version.sh`
771
David Pursehousef59de422013-05-20 16:14:38 +0900772* Source files generated by Prolog are now correctly included in the Eclipse
773project.
774
775* Core plugins are now included as git submodules.
776
777* `mvn package` now generates the documentation by default.
778+
779The documentation will always be generated unless `-Dgerrit.documentation.skip`
780is given on the command line.
781
782* `mvn verify` now runs acceptance tests by default.
783+
784The `acceptance` profile is no longer used. Acceptance tests will always
785be run unless `-Dgerrit.acceptance-tests.skip=True` is given on the command line.
786
787* Vertically align the "Choose:" header on the Become Any Account page.
788* "Become Any Account" can be used for accounts whose full name is an empty string.
789
790
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700791=== Performance
Edwin Kempin7f66a272013-03-26 16:19:49 +0100792* Bitmap Optimizations
793+
794On running the http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[
Shawn Pearce97706722013-03-28 16:29:05 -0400795garbage collection] JGit creates bitmap data that is saved to an
Edwin Kempin7f66a272013-03-26 16:19:49 +0100796auxiliary file. The bitmap optimizations improve the clone and fetch
797performance. git-core will ignore the bitmap data.
798
799* Improve suggest user performance when adding a reviewer.
800+
801Do not check the visibility of the change for each suggested account if
802the ref is visible by all registered users.
803+
804On a system with about 2-3000 users, where most of the projects are
805visible by every registered user, this improves the performance of the
806suggesting reviewer by a factor of 1000 at least.
807
808* Cache RefControl.isVisible()
809+
810For Git repositories with many changes the time for calculating visible
811refs is reduced by 30-50%.
812
813* Allow admins to disable magic ref check on upload
814+
815Some sites manage to run their repositories in a way that prevents
816users from ever being able to create `refs/for`, `refs/drafts` or
817`refs/publish` names in a repository. Allow admins on those servers
818to disable this (somewhat) expensive check before every upload.
819
820* Permit ProjectCacheClock to be completely disabled
821+
822Some admins may just want to require all updates to projects to be
823made through the web interface, and avoid the small expense of a
824background thread ticking off changes.
825
826* Batch read Change objects during query
827
828* Default `core.streamFileThreshold` to a larger value
829+
830If this value is not configured by the server administrator
831performance on larger text files suffers considerably and
832Gerrit may grind to a halt and be unable to answer users.
833+
834Default to either 25% of the available JVM heap or ~2048m.
835
836* Improve performance of ReceiveCommits for repositories with many refs
837+
838Avoid adding `refs/changes/` and `refs/tags/` to RevWalk's as
839uninteresting since JGit RevWalk doesn't perform well when a large
840number of objects is marked as uninteresting.
841
842* PatchSet.isRef()-optimizations.
843+
844PatchSet.isRef() is used extensively when preparing for a ref
David Pursehouse20627352013-06-23 20:49:32 +0900845advertisement and the regular expression used by isRefs() was notably
Edwin Kempin7f66a272013-03-26 16:19:49 +0100846costly in these circumstances, especially since it could not be
847pre-compiled.
848+
849The regular expression is removed and the check is now directly
850implemented. As result the performance of `git ls-remote` could be
David Pursehouse20627352013-06-23 20:49:32 +0900851increased by up to 15%.
Edwin Kempin7f66a272013-03-26 16:19:49 +0100852
853* New config option `receive.checkReferencedObjectsAreReachable`
854+
855If set to true, Gerrit will validate that all referenced objects that
856are not included in the received pack are reachable by the user.
857+
858Carrying out this check on Git repositories with many refs and commits
859can be a very CPU-heavy operation. For non public Gerrit servers it may
860make sense to disable this check, which is now possible.
861
862* Cache config value in LdapAuthBackend
863
864* Perform a single /accounts/self/capabilities on page load
865+
866This joins up 3 requests into a single call, which should speed up
867initial page load for most users.
868
869* Only gzip compress responses that are smaller compressed
870
871* Caching of changes
872+
David Pursehouse20627352013-06-23 20:49:32 +0900873During Ref Advertisements (via VisibleRefFilter), all changes need to
Edwin Kempin7f66a272013-03-26 16:19:49 +0100874be fetched from the database to allow Gerrit to figure out which change
875refs are visible and should be advertised to the user. To reduce
876database traffic a cache for changes was introduced. This cache is
David Pursehouse20627352013-06-23 20:49:32 +0900877disabled by default since it can mess up multi-server setups.
Edwin Kempin7f66a272013-03-26 16:19:49 +0100878
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700879=== Misc
Edwin Kempin218f5582013-03-27 16:35:38 +0100880* Add config parameter to make new groups by default visible to all
881+
882Add a new http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#groups.newGroupsVisibleToAll[
883Gerrit configuration parameter] that controls whether newly
884created groups should be by default visible to all registered users.
885
886* Support for OpenID domain filtering
887+
888Added the ability to only allow email addresses under specific domains
889to be used for OpenID login.
890+
891The allowed domains can be configured by setting
892http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.openIdDomain[
893auth.openIdDomain] in the Gerrit configuration.
894
895* Always configure
896 http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#gerrit.canonicalWebUrl[
897 gerrit.canonicalWebUrl] on init
898+
899Gerrit has been requiring this field for several versions now, but init
900did not configure it. Ensure there is a value set so the server is not
901confused at runtime.
902
903* Add submodule subscriptions fetching by projects
904+
905While submodule subscriptions can be fetched by branch, some plugins
906(e.g.: delete-project) would rather need to access all submodule
907subscriptions of a project (regardless of the branch). Instead of
908iterating over all branches of a project, and fetching the
909subscription for each branch separately, we allow fetching of
910subscriptions directly by projects.
911
912* link:https://code.google.com/p/gerrit/issues/detail?id=1805[Issue 1805]:
913 Make client SSL certificates that contain an email address work
914+
915Authentication with CLIENT_SSL_CERT_LDAP didn't work if the certificate
916contained email address.
917
918* Guess LDAP type of Active Directory LDS as ActiveDirectory
919+
920If Gerrit connects to an AD LDS [1] server it will guess its type as
921RCF_2307 instead of ActiveDirectory. The reason is that an AD LDS
922doesn't support the "1.2.840.113556.1.4.800" capability. However,
923AD LDS behaves like ActiveDirectory and Gerrit also needs to guess
924its type as ActiveDirectory to make the default query patterns work
925properly.
926+
927Extend the LDAP server type guessing by checking for presence of the
928"1.2.840.113556.1.4.1851" capability which indicates that this LDAP
929server runs ActiveDirectory as AD LDS [2].
930+
931Also remove the check for the presence of the "defaultNamingContext"
932attribute as we don't use it anywhere and, by default, this attribute is
933not set on an AD LDS [3]
934+
935[1] http://msdn.microsoft.com/en-us/library/aa705886(VS.85).aspx +
936[2] http://msdn.microsoft.com/en-us/library/cc223364.aspx +
937[3] http://technet.microsoft.com/en-us/library/cc816929(v=ws.10).aspx
938
939* Allow group descriptions to supply email and URL
940+
941Some backends have external management interfaces that are not
942embedded into Gerrit Code Review. Allow those backends to supply
943a URL to the web management interface for a group, so a user can
944manage their membership, view current members, or do whatever other
945features the group system might support.
946+
947Some backends also have an email address associated with every
948group. Sending email to that address will distribute the message to
949the group's members. Permit backends to supply an optional email
950address, and use this in the project level notification system if
951a group is selected as the target for a message.
952
953* Allow group backends to guess on relevant UUIDs
954+
955Expose all cheaply known group UUIDs from the ProjectCache,
956enumerating groups used by access controls. This allows a backend
957that has a large number of groups to filter its getKnownGroups()
958output to only groups that may be relevant for this Gerrit server.
959+
960The best use case to consider is an LDAP server at a large
961organization. A typical user may belong to 50 LDAP groups, but only
9623 are relevant to this Gerrit server. Taking the intersection of
963the two groups limits the output Gerrit displays to users, or uses
964when considering same group visibility.
965
966* Add more forbidden characters for project names
967+
968`?`, `%`, `*`, `:`, `<`, `>`, `|`, `$`, `\r` are now forbidden in
969project names.
970
971* Make `gerrit.sh` LSB compliant
972+
973** Add LSB headers
974** Add 'status' as synonym for 'check'
975** Fix exit status codes according to http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
976
977* Option to start headless Gerrit daemon
978+
979Add `--headless` option to the Daemon which will start Gerrit daemon
980without the Web UI front end (headless mode).
981+
982This may be useful for running Gerrit server with an alternative (rest
983based) UI or when starting Gerrit server for the purpose of automated
984REST/SSH based testing.
985+
986Currently this option is only supported via the `--headless` option of
987the daemon program. We would need to introduce a config option in order
988to support this feature for deployed war mode.
989
990* Show path to gerrit.war in command for upgrade schema
991
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -0700992=== Upgrades
David Pursehouse673bace2013-02-27 18:14:29 +0900993* link:https://code.google.com/p/gerrit/issues/detail?id=1619[Issue 1619]:
994Embedded Jetty is now 8.1.7.v20120910.
995
Shawn O. Pearcea890daa2012-11-08 23:22:56 -0800996* ASM bytecode library is now 4.0.
David Pursehousef59de422013-05-20 16:14:38 +0900997* JGit is now 2.3.1.201302201838-r.208-g75e1bdb.
David Pursehouse1a3f9cc2013-02-28 18:12:28 +0900998* asciidoc 8.6.3 is now required to build the documentation.
David Pursehouseb58a18d2013-03-06 15:37:03 +0900999* link:https://code.google.com/p/gerrit/issues/detail?id=1155[Issue 1155]:
1000prettify is now r225
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08001001
Edwin Kempinf30921c2013-03-27 09:27:01 +01001002* The used GWT version is now 2.5.0
1003+
1004Fixes some issues with IE9 and IE10.
1005
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001006== Bug Fixes
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08001007
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001008=== Web UI
Edwin Kempin39462122013-03-27 09:18:19 +01001009* link:https://code.google.com/p/gerrit/issues/detail?id=1662[Issue 1662]:
1010 Don't show error on ACL modification if empty permissions are added
1011+
1012This error message was incorrectly displayed if a permission without
1013rules was added, although the save was actually successful.
1014
1015* Don't show error on ACL modification if a section is added more than once
1016+
1017This error message was incorrectly displayed if multiple sections for
1018the same ref were added, although the save was actually successful.
1019
David Pursehouse673bace2013-02-27 18:14:29 +09001020* Links to CGit were broken when `remove-suffix` was enabled.
Edwin Kempin39462122013-03-27 09:18:19 +01001021
David Pursehouseb58a18d2013-03-06 15:37:03 +09001022* link:https://code.google.com/p/gerrit/issues/detail?id=926[Issue 926]:
1023Internet Explorer versions 9 and 10 are supported.
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08001024
Edwin Kempin39462122013-03-27 09:18:19 +01001025* link:https://code.google.com/p/gerrit/issues/detail?id=1664[Issue 1664]:
1026 Reverting a change did not preserve the change's topic
1027
1028* Fix: User could get around restrictions by reverting a commit
1029+
1030The Gerrit server may enforce several restrictions on the commit
1031message (change-id required, signed-off-by, etc). A user was able to
1032get around these restrictions by reverting a commit using the UI.
1033
1034* link:https://code.google.com/p/gerrit/issues/detail?id=1518[Issue 1518]:
1035 Reset 'Old Version History' if dependent change is opened
1036+
1037Following the navigation link in the dependencies table on the
1038change screen, the user can directly navigate to dependent changes.
1039The value for 'Old Version History' of the current change was
1040incorrectly applied to the new change. If the value was invalid for
1041the new change the 'Old Version History' field became blank.
1042
1043* link:https://code.google.com/p/gerrit/issues/detail?id=1736[Issue 1736]:
1044 Clear 'Old Version History' ListBox before populating it
1045+
1046The ListBox was not always cleared and as result the same entries were
1047sometimes added multiple times e.g. after rebasing a change in the
1048WebUI.
1049
1050* link:https://code.google.com/p/gerrit/issues/detail?id=1673[Issue 1673]:
1051 Fix disappearance of patch headers when compared patches are identical
1052+
1053When two patches were compared that were identical 'No Differences' is
1054displayed to the user. In this case the patch headers disappeared and
1055as result the user couldn't change the patch selection anymore.
1056
1057* link:https://code.google.com/p/gerrit/issues/detail?id=1759[Issue 1759]:
1058 Fix ArrayIndexOutOfBoundsException on intraline diff
1059+
1060In some cases displaying the intraline diff failed with an exception like
1061this:
1062+
1063----
1064java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 10
1065 at com.google.gerrit.prettify.common.SparseFileContent.mapIndexToLine(SparseFileContent.java:149)
1066 at com.google.gerrit.prettify.common.PrettyFormatter.format(PrettyFormatter.java:188)
1067 at com.google.gerrit.client.patches.AbstractPatchContentTable.getSparseHtmlFileB(AbstractPatchContentTable.java:287)
1068 at com.google.gerrit.client.patches.SideBySideTable.render(SideBySideTable.java:113)
1069 at com.google.gerrit.client.patches.AbstractPatchContentTable.display(AbstractPatchContentTable.java:238)
1070 at com.google.gerrit.client.patches.PatchScreen.onResult(PatchScreen.java:444)
1071...
1072----
1073+
1074This happened when the old line was:
1075+
1076----
1077 foo-old<LF>
1078----
1079+
1080and the new line was:
1081+
1082----
1083 foo-new<CRLF>
1084----
1085
1086* Prevent leading and trailing spaces on user's Full Name
1087+
1088Strip off the leading and trailing spaces from the Full Name that the
1089user enters on the Contact Information form.
1090
1091* link:https://code.google.com/p/gerrit/issues/detail?id=1480[Issue 1480]:
1092 Show proper error message if registering email address fails
1093
1094* link:https://code.google.com/p/gerrit/issues/detail?id=816[Issue 816]:
1095 Due to issues with the diff_intraline cache the file indention in the
1096 Side-By-Side diff was sometimes wrong.
1097
1098* Make rebase failed and merge failed messages consistent
1099
1100* Select 'Projects' menu on loading of a project screen
1101+
1102If in the top level menu 'All' is selected and the user navigates to
1103a change and then from the change to the project by clicking on the
1104project link in the ChangeInfoBlock, the project screen is loaded but
1105the 'Projects' menu was not selected.
1106
1107* Fix display issues for inline comments and inline comment editors
1108+
1109** Sometimes a second comment editor was shown instead of using the
1110 existing comment editor.
David Pursehouse20627352013-06-23 20:49:32 +09001111** Fix duplicated border line between comments.
Edwin Kempin39462122013-03-27 09:18:19 +01001112** Sometimes the parts of the border were missing when a comment was
1113 expanded.
1114** Fix displaying the blue line that marks the current line when there
1115 are several published comments.
1116** Sometimes on discard of a comment some frames of the comment editor
David Pursehouse20627352013-06-23 20:49:32 +09001117 stayed and some border lines of neighbor comments disappeared.
Edwin Kempin39462122013-03-27 09:18:19 +01001118
1119* In diff view don't let arrow column accept clicks.
1120
1121* Fix display of commit message
1122+
1123If there are no HTML tags in the text, just break on lines.
1124
1125* Upon selection in AddMemberBox, focus the box's text field
1126+
1127In the change screen, after clicking on an element of the 'Add
1128Reviewer' suggestion list, users expect to be able to add the reviewer
1129by hitting enter. This did not work in Firefox.
1130
1131* Fix enter key detection in project creation screen
1132+
1133The enter key detection was not working in all browsers (e.g. Firefox).
1134
1135* Display a tooltip for all tiny icons and ensure that the cursor is
1136 shown as pointer when hovering over them.
1137
1138* Clean query string when switching pages
1139+
1140If we load a page without a query string, such as Projects->List,
1141My->Changes, or Settings, it might be confusing to show the old query
1142string from the previous page. The query string is now cleared out
1143when switching pages, leaving the help text visible.
1144
1145* Fix highlighting in search suggestions
1146+
1147The provided suggestions should highlight the part that the user has
1148already typed as bold text. This only worked for the first operator.
David Pursehouse20627352013-06-23 20:49:32 +09001149For suggestions of any further operator no highlighting was done.
Edwin Kempin39462122013-03-27 09:18:19 +01001150
1151* Fix style of hint text in search box on initial page load
1152+
1153The hint text should be a light gray on the white background,
1154but was coming up black on initial page load due to a style setup
1155ordering issue between the SearchPanel and the HintTextBox.
1156
1157* link:https://code.google.com/p/gerrit/issues/detail?id=1661[Issue 1661]:
David Pursehouse253611e2013-06-13 09:09:11 +02001158 Update links to Change-Id and Signed-off-by documentation on project info
Edwin Kempin39462122013-03-27 09:18:19 +01001159 screen
1160
1161* Use href="javascript;" for All {Side-by-Side,Unified} links
1162+
1163These links shouldn't have an anchor location. There is nothing for
1164the browser to remember or visit if it were opened in a new tab for
1165example.
1166
1167* Improve message for unsatisfiable dependencies
1168+
1169If a change cannot be merged due to unsatisfiable dependencies a
1170comment is added to the change that lists the missing commits and says
1171that a rebase is necessary.
1172+
1173For each missing commit the comment said "Depends on patch set X
1174of ..., however the current patch set is Y."
1175+
1176If multiple commits are missing it may be that for some commits the
1177dependency is not outdated (X == Y). In this case the message was
1178confusing.
1179+
1180", however the current patch set is Y." is now skipped if Y == X.
1181
David Pursehousef59de422013-05-20 16:14:38 +09001182* link:https://code.google.com/p/gerrit/issues/detail?id=1843[Issue 1843]:
1183 Enable the "Create Project" and "Create Group" buttons when pasting the name
1184 into the text box.
1185
1186* link:https://code.google.com/p/gerrit/issues/detail?id=1370[Issue 1370]:
1187 Fix PatchScreen leak when moving between files.
1188
1189* Prevent account's full name from being set to empty string. Set it to
1190 null instead.
1191
David Pursehouse75d549f2013-06-04 13:20:15 +09001192* link:https://code.google.com/p/gerrit/issues/detail?id=1682[Issue 1682]:
1193Correctly handle paths with URL-escaped characters
1194+
1195URL-unescape the path portion of a change history token to correctly
1196handle paths with URL-escapable characters, i.e. '+', ' ', etc.
1197
David Pursehouse253611e2013-06-13 09:09:11 +02001198* link:https://code.google.com/p/gerrit/issues/detail?id=1915[Issue 1915]:
1199Don't show non-visible drafts in the diff screens.
1200
David Ostrovsky75d06772013-06-14 09:59:27 +02001201* link:https://code.google.com/p/gerrit/issues/detail?id=1801[Issue 1801]:
1202Correctly keep patch set ordering after a new patch set is added via
1203the Web UI.
David Pursehouse75d549f2013-06-04 13:20:15 +09001204
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001205=== REST API
Edwin Kempin7e960ac2013-03-27 13:28:12 +01001206* Fix returning of 'Email Reviewers' capability via REST
1207+
1208The `/accounts/self/capabilities/` didn't return the 'Email Reviewers'
1209capability when it was not explicitly assigned, although by default
1210everyone has the 'Email Reviewers' capability.
1211+
1212If 'Email Reviewers' capability was allowed or denied,
1213`/accounts/self/capabilities/` returned the 'Email Reviewers'
1214capability always as true, which was wrong for the DENY case.
1215
1216* Provide a more descriptive error message for unauthenticated REST
1217 API access
1218
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001219=== Git
David Pursehouse9542a8c2013-02-27 17:30:46 +09001220* The wildcard `.` is now permitted in reference regex rules.
Edwin Kempind73a8452013-03-27 11:34:16 +01001221
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08001222* Checking if a change is mergeable no longer writes to the repository.
David Pursehouse673bace2013-02-27 18:14:29 +09001223
Shawn O. Pearcea890daa2012-11-08 23:22:56 -08001224* Submitted but unmerged changes are periodically retried. This is
1225 necessary for a multi-master configuration where the second master
1226 may need to retry a change not yet merged by the first. Please note
1227 we still do not believe this is sufficient to enable multi-master.
1228
Edwin Kempind73a8452013-03-27 11:34:16 +01001229* Retry merge after LOCK_FAILURE when updating branch
1230+
1231If the project requires fast-forwards, the merge cannot succeed once
1232a lock failure occurs, but in other cases, it is safe to retry the
1233merge immediately.
1234
1235* Do not automatically add reviewers from footer lines to draft patch sets
1236+
1237Gerrit already avoids adding reviewers from footer lines when a new
1238draft change is created. Now the same is done for draft patch sets.
1239
1240* Add users mentioned in commit footer as reviewers on draft publish
1241
1242* Hide any existing magic branches during push
1243+
1244If there is a magic branch visible during push, just hide it from the
1245client. Administrators can clear these by accessing the repository
1246directly.
1247
1248* Prevent from deleting `refs/changes/`
1249+
1250Everything under `refs/changes/` should be protected by Gerrit, users
1251shouldn't be able to delete a particular patch set or a whole change
1252from the review process.
1253
1254* Update description file in Git
1255+
1256When writing the description to `project.config`, it is also necessary
1257to write it to the description file in the repository so the same text
1258is visible in CGit or GitWeb.
1259
1260* Write valid reflog for `HEAD` when creating the `All-Projects`
1261 project
1262+
1263When the `All-Projects` project is created during the schema
1264initialization, `HEAD` is set to point to the `refs/meta/config`
1265branch. When `HEAD` is updated an entry into the reflog is written.
1266This ref log entry should contain the ID of the initial commit as
1267target, but instead the target was the zero ID.
1268
1269* link:https://code.google.com/p/gerrit/issues/detail?id=1702[Issue 1702]:
1270 Fix: 'internal server error' when pushing the same commit twice
1271+
1272On the second push of the same commit to `refs/for/<branch name>`, Gerrit
1273returns 'no new changes'.
1274+
1275However if the user pushed to 'refs/changes/<change id>', Gerrit returned
1276'internal server error'.
1277
1278* Match all git fetch/clone/push commands to the command executor
1279+
1280Route not just `/p/` but any Git access to the same thread pool as the
1281SSH server is using, allowing all requests to compete fairly for
1282resources.
1283
1284* Fix auto closing of changes on direct push
1285+
1286When a commit was directly pushed into a repository (bypassing code
1287review) and this commit had a Change-Id in its commit message then the
1288corresponding change was not automatically closed if it was open.
1289
1290* Set change state to NEW if merge fails due to non-existing dest branch
1291+
1292If a submitted change failed to merge because the destination branch
1293didn't exist anymore, it stayed in state 'Submitted, Merge Pending'.
1294This meant Gerrit was re-attempting to merge this change (e.g. on
1295startup), but this didn't make sense. Either the branch did still not
1296exist (then there was no need to try merging it) or a new branch with
1297the old name was created (then it was questionable if the change should
1298still be merged into this branch). This is why it's better to set the
1299change back to the 'Review in Progress' state and update it with a
1300message saying that it couldn't be merged because the destination
1301branch doesn't exist anymore.
1302+
1303In addition Gerrit was writing an error into the error log if a change
David Pursehouse20627352013-06-23 20:49:32 +09001304couldn't be merged because the destination branch was missing.
Edwin Kempind73a8452013-03-27 11:34:16 +01001305That was not really a server error and is not logged anymore.
1306
1307* Fix NPE when pushing a patch with an invalid author with
1308 `Forge Author` permissions
1309
1310* Fix duplicated GitReferenceUpdated event on project creation.
1311+
1312Creating a new Gerrit project was firing the GitReferenceUpdated event
1313for the `refs/meta/config` branch two times.
1314
1315* Fix error log message in ReceiveCommits
1316+
1317When the creation of one or more references failed ReceiveCommits failed
1318with 'internal server error' and wrote the following error log:
1319"Only X of Y new change refs created in xxx; aborting"
1320The printed value for Y could be wrong since it didn't include the
1321replaceCount. As a result, a confusing message like
1322"Only 0 of 0 new change refs created in xxx; aborting"
1323could appear in the error log.
Dave Borowitz1bec65a2013-03-13 10:59:01 -07001324
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001325=== SSH
David Pursehouse50abd452013-03-05 15:43:34 +09001326* `review --restore` allows a review score to be added on the restored change.
Edwin Kempinbf22ad52013-03-26 10:26:12 +01001327
David Pursehouse50abd452013-03-05 15:43:34 +09001328* link:https://code.google.com/p/gerrit/issues/detail?id=1721[Issue 1721]:
Edwin Kempinbf22ad52013-03-26 10:26:12 +01001329 `review --message` only adds the message once.
David Pursehouse50abd452013-03-05 15:43:34 +09001330
David Pursehouseb58a18d2013-03-06 15:37:03 +09001331* `ls-groups` prints "N/A" if the group's name is not set.
David Pursehousedc018df2013-03-06 15:37:24 +09001332
Edwin Kempinbf22ad52013-03-26 10:26:12 +01001333* `set-project-parent --children-of`: Fix getting parent for level 1 projects
1334+
1335For direct child projects of the `All-Projects` project the name of the
1336parent project was incorrectly retrieved if the parent name was not
1337explicitly stored as `All-Projects` in the project.config file.
1338
Edwin Kempind73a8452013-03-27 11:34:16 +01001339* Fix NPE when abandoning change with invalid author
1340+
1341If the author of a change isn't known to Gerrit (pushed with
1342`Forge Author` permissions), trying to abandon that change over SSH
1343failed with an NPE.
1344
David Pursehousef59de422013-05-20 16:14:38 +09001345* Fix setting account's full name via ssh.
1346
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001347=== Query
Edwin Kempinbf22ad52013-03-26 10:26:12 +01001348* link:https://code.google.com/p/gerrit/issues/detail?id=1729[Issue 1729]:
1349 Fix query by 'label:Verified=0'
1350
1351* link:https://code.google.com/p/gerrit/issues/detail?id=1772[Issue 1772]:
1352 Set `_more_changes` if result is limited due to configured query limit
1353
1354* Fix query cost for "status:merged commit:c0ffee"
1355
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001356=== Plugins
Edwin Kempin25b5b002013-03-27 10:01:02 +01001357* Skip disabled plugins on rescan
1358+
1359In a background thread Gerrit periodically scans for new or changed
1360plugins. On every such a rescan disabled plugins were loaded and a new
1361copy of their jar files was stored in the review site's tmp folder.
1362
1363* Fix cleanup of plugins from tmp folder on graceful Gerrit shutdown
1364+
1365Loaded plugin jars are copied to the review site's tmp folder to support
1366hot updates of the plugin jars in the plugins folder. On Gerrit shutdown
1367these copies of the jar files should be cleaned up. For this purpose a
1368CleanupHandle is created, but the CleanupHandle wasn't enqueued in the
1369cleanupQueue which is why cleanup on Gerrit shutdown didn't happen.
1370
1371* Reattempt deletion of plugin jars from tmp folder on JVM termination
1372+
1373Loaded plugin jars are copied to the review site's tmp folder to support
1374hot updates of the plugin jars in the plugins folder. On Gerrit shutdown
1375these copies of the jar files should be cleaned up. For this purpose a
1376CleanupHandle is created. The deletion of the tmp file in the
1377CleanupHandle can fail although the jar file was closed. In this case
1378reattempt the deletion on termination of the virtual machine. This
1379normally succeeds.
1380
1381* Fix unloading of plugins
1382+
1383When two plugins, say pluginA, and pluginB had been loaded, and pluginA
1384was removed from $sitePath/plugins, pluginA got stopped, and a cleaning
1385run was ordered. But this cleaning run cleaned both plugins and both
1386plugins had their jars removed. This left pluginB visible to Gerrit
1387although it's backing jar was gone. Upon calling not yet initialized
1388parts of pluginB (e.g.: viewing not yet viewed Documentation pages of
1389pluginB), exceptions as following were thrown:
1390+
1391----
1392 java.lang.IllegalStateException: zip file closed
1393 at java.util.zip.ZipFile.ensureOpen(ZipFile.java:420)
1394 at java.util.zip.ZipFile.getEntry(ZipFile.java:165)
1395----
1396
1397* Fix double bound exception when loading extensions
1398+
1399ServerInformation class was already bound, therefore it shouldn't be
1400bound a second time for Gerrit extensions.
1401
1402* Do not call onModuleLoad() second time
1403+
1404onModuleLoad() method is automatically called by GWT framework. Calling
1405it once again in PluginGenerator caused double plugin initialization.
1406
1407* Require `Administrate Server` capability to GET /plugins/
1408+
1409Listing plugins requires being an administrator. This was missed in the
1410REST API.
1411
David Pursehousef59de422013-05-20 16:14:38 +09001412* link:https://code.google.com/p/gerrit/issues/detail?id=1827[Issue 1827]:
1413 Allow InternalUser (aka plugins) to see any internal group, and run
1414 plugin startup and shutdown as PluginUser.
1415
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001416=== Email
David Pursehousedc018df2013-03-06 15:37:24 +09001417* Merge failure emails are only sent once per day.
1418* Unused macros are removed from the mail templates.
1419* Unnecessary ellipses are no longer applied to email subjects.
Edwin Kempine742e912013-03-26 14:38:12 +01001420* The empty diff output from an "octopus merge" is now explained in change notification emails.
David Pursehousedc018df2013-03-06 15:37:24 +09001421* link:https://code.google.com/p/gerrit/issues/detail?id=1480[Issue 1480]:
1422Proper error message is shown when registering an email address fails.
1423
1424* link:https://code.google.com/p/gerrit/issues/detail?id=1692[Issue 1692]:
1425Review comments are sorted before being added to notification emails.
1426
Edwin Kempine742e912013-03-26 14:38:12 +01001427* Fix watching of 'All Comments' on `All-Projects`
1428+
1429If a user is watching 'All Comments' on `All-Projects` this should
1430apply to all projects.
1431
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001432=== Misc
Edwin Kempin218f5582013-03-27 16:35:38 +01001433* Provide more descriptive message for NoSuchProjectException
1434
1435* On internal error due to receive timeout include the value of
1436 `receive.timeout` into the log message
1437
1438* Silence INFO/DEBUG output from apache.http
1439+
1440This spammed the log when using OpenID, for each and every login.
1441
1442* Remove `mysql_nextval` script
1443+
1444This function does not work on binary logging enabled servers,
1445as MySQL is unable to execute the function on slaves without
1446causing possible corruption. Drop the function since it was only
1447created to help administrators, and is unsafe.
1448
1449* link:https://code.google.com/p/gerrit/issues/detail?id=1312[Issue 1312]:
1450 Fix relative URL detection in submodules
1451+
1452Relative submodules do not start with `/`. Instead they start with
1453`../`. Fix the Submodule Subscriptions engine to recognize relative
1454submodules.
1455
1456* link:https://code.google.com/p/gerrit/issues/detail?id=1622[Issue 1622]:
1457 Fix NPE in LDAP Helper class if username is null
1458
1459* Fix commit-msg hook failure with spaces in path
1460+
1461If the project absolute path had any whitespace, the commit
1462hook failed to complete because a script variable was not
1463enclosed in double quotes.
1464
1465* Drop the trailing ".git" suffix of the name of new project
1466
1467* Prevent possible NPE when running `change-merged` hook
1468+
1469It's possible that the submitter is null. Add a check for this
1470before invoking the `change-merged` hook with it.
1471
1472* Keep change open if its commit is pushed to another branch.
1473
1474* Fire GitReferenceUpdated event when BanCommit updates the
1475 `refs/meta/reject-commits` branch.
1476
1477* Fix GitWeb Caching
1478+
1479GitWeb Caching was not working when its cgi file was executed from
1480outside. The same approach will also work with vanilla GitWeb.
1481
1482* Fix infinite loops when walking project hierarchy
1483
1484* Fix resource leak in MarkdownFormatter
1485
1486* Query all external groups for internal group memberships
1487+
1488When asking for the known groups a user belongs to they may belong
1489to an internal group by way of membership in a non-internal group,
1490such as LDAP. Cache in memory the complete list of any non-internal
1491group UUIDs used as members of an internal group. These must get
1492checked for membership before completing the known group data from
1493the internal backend.
1494
1495* Handle sorting groups with no name to avoid NPE
1496
1497* `gerrit.sh`
1498** Don't suggest site init if schema version is newer than expected
1499** Improve error messages in schema check
1500** Suggest changing `gerrit.config` when JDK not found
1501** Explicitly set a shell
1502** Determine `GERRIT_SITE` from current working directory.
1503** Fix `gerrit.sh restart` for relative paths
1504** Fix site path computation if '.' occurs in path
1505** Whitespace fixes
1506
1507* Display the reason of an Init injection failure.
1508
1509* link:https://code.google.com/p/gerrit/issues/detail?id=1821[Issue 1821]:
1510 Warn if `cache.web_sessions.maxAge` is to small
1511+
1512Setting `maxAge` to a small value can result in the browser endlessly
1513redirecting trying to setup a new valid session. Warn administrators
1514that the value is set smaller than 5 minutes.
1515
1516* link:https://code.google.com/p/gerrit/issues/detail?id=1821[Issue 1821]:
1517 Support `cache.web_sessions.maxAge` < 1 minute
1518
1519* Use SECONDS as default time unit for `cache.web_sessions.maxAge`
1520+
1521DefaultCacheFactory already uses SECONDS as default time unit for
1522`cache.*.maxAge`.
1523+
1524Update the described default time unit for `cache.*.maxAge` in the
1525documentation.
1526+
1527Administrators may need to update their configuration to for the new
1528default time unit.
1529
1530* Add pylint configuration for contributed Python scripts
1531
1532* Various fixes and improvements of the `contrib/trivial_rebase.py`
1533 script
1534+
1535** Adapt options to Gerrit 2.6
1536** Use change-url flag for ChangeId
1537** Prevent exception for empty commit
1538** Fix pylint errors
David Pursehousef3af82f2013-04-26 11:41:55 +09001539** Call `gerrit review` instead of `gerrit approve`
1540** Make the private key argument optional
1541** Support alternative ssh executable, for example `plink`
1542** Support custom review labels
1543** Correctly handle empty patch ID
1544+
1545If only one of the patch IDs is empty, it should not be considered
1546a trivial rebase.
1547
Edwin Kempin218f5582013-03-27 16:35:38 +01001548** Use plain python instead of python2.6
1549+
1550Windows installation only has python.exe
1551
1552* Correct MIME type of `favicon.ico` reference
1553+
1554This is not a GIF, it is an "MS Windows icon resource".
1555Some browsers may skip the image if the type is wrong.
1556
1557* Use `<link rel="shortcut icon">` for `favicon.ico` reference
1558+
1559IE looks for a two-word "shortcut icon" relationship. Other browsers
1560interpret this as two relationships, one of which is "icon", so they
1561can handle this syntax as well.
1562+
1563See:
1564+
1565** http://msdn.microsoft.com/en-us/library/ms537656(VS.85).aspx
1566** http://jeffcode.blogspot.com/2007/12/why-doesnt-favicon-for-my-site-appear.html
1567
1568* Remove `servlet-api` from `WAR/lib`
1569+
1570It is wrong to include the servlet API in a WAR's `WEB-INF/lib`
1571directory. This confuses some servlet containers who refuse to
1572load the Gerrit WAR. Instead package the Jetty runtime and the
1573servlet API in a new `WEB-INF/pgm-lib` directory.
1574
1575* link:https://code.google.com/p/gerrit/issues/detail?id=1822[Issue 1822]:
David Pursehouse20627352013-06-23 20:49:32 +09001576 Verify session matches container authentication header
Edwin Kempin218f5582013-03-27 16:35:38 +01001577+
1578If the user alters their identity in the container invalidate
1579the Gerrit user session and force a new one to begin.
1580
1581* link:https://code.google.com/p/gerrit/issues/detail?id=1743[Issue 1743]:
1582 Move RPC auth token from `Authorization` header to `X-Gerrit-Auth`
1583+
1584Servers that run with auth.type = HTTP or HTTP_LDAP are unable to
1585use the web UI because the Authorization code supplied by the UI
1586overrides the browser's native `Authorization` header and causes the
1587request to be blocked at the HTTP reverse proxy, before Gerrit even
1588sees the request.
1589+
1590Instead insert a unique token into `X-Gerrit-Auth`, leaving the HTTP
1591standard `Authorization` header unspecified and available for use in
1592HTTP reverse proxies.
1593
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001594== Documentation
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001595
David Pursehousef59de422013-05-20 16:14:38 +09001596The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/index.html[
1597documentation index] is restructured to make it easier to use for different kinds of
1598users.
1599
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001600=== User Documentation
Edwin Kempin60ab8532013-03-27 14:33:46 +01001601* Split link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api.html[
1602 REST API documentation] and have one page per top level resource
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001603
Edwin Kempin60ab8532013-03-27 14:33:46 +01001604* Add executable examples for GET requests to
1605 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api.html[
1606 REST API documentation]
1607+
1608Add examples for GET requests to the REST API documentation on which
1609the user can click to fire the requests. This allows users to
1610immediately try out the requests and play around with them.
1611
1612* Document the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#block[
1613 BLOCK access rule].
1614
1615* Added documentation of
1616 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-upload.html#http[
1617 how to authenticate uploads over HTTP].
1618
1619* Added documentation of the
1620 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.editFullNameUrl[auth.editFullNameUrl] and
1621 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.httpPasswordUrl[auth.httpPasswordUrl]
1622 configuration parameters.
1623
1624* Add link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html[
1625 submit_rule examples] from Gerrit User Summit 2012.
1626
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001627* Improved the push tag examples in the access control documentation.
Edwin Kempin60ab8532013-03-27 14:33:46 +01001628
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001629* Improved documentation of error messages related to commit message footer content.
Edwin Kempin60ab8532013-03-27 14:33:46 +01001630
1631* Added documentation of the
1632 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/error-commit-already-exists.html[
1633 commit already exists] error message.
1634
1635* Added missing documentation of the ssh
1636 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-version.html[
1637 version] command.
1638
1639* link:https://code.google.com/p/gerrit/issues/detail?id=1369[Issue 1369]:
1640 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gitweb.html[
1641 Gitweb Instruction Updates]
1642
1643* link:https://code.google.com/p/gerrit/issues/detail?id=1594[Issue 1594]:
1644 Document execute permission for commit-msg in
1645 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-changeid.html#creation[
1646 Change-Id docs]
1647
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001648* link:https://code.google.com/p/gerrit/issues/detail?id=1602[Issue 1602]:
1649Corrected references to `refs/changes` in the access control documentation.
1650
Edwin Kempin60ab8532013-03-27 14:33:46 +01001651* Update documentation of
1652 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#trackingid.name.match[
1653 maximal length for tracking ids]
1654
1655* Added missing documentation of
1656 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/json.html[JSON attributes].
1657
1658* Rename `custom-dashboards.html` to
1659 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html[user-dashboards.html]
1660+
1661This document no longer deals exclusively with custom dashboards, it now describes project level dashboards also.
1662
1663* Separate the
1664 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-login-register.html[
1665 initial user setup instructions] to a shared file
1666
1667* Separate the
1668 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/database-setup.html[
1669 database setup instructions] to a shared file
1670
1671* Improve the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/database-setup.html[
1672 instructions for PgSQL setup]
1673
1674* Fix the order of steps in the
1675 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/install-j2ee.html[
1676 J2EE Installation document]
1677+
1678It is better to first define the JNDI data source in the application
1679server and then deploy Gerrit than opposite. This should avoid errors
1680like "No DataSource" on the first deployment.
1681
1682* Clarify documentation of
1683 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#ldap.groupName[
1684 LDAP group name setting]
1685
David Pursehousef59de422013-05-20 16:14:38 +09001686* Improve the documentation of
1687 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-submodule.html[
1688 git submodule subscription handling]
1689
1690* Clarify the documentation of change cache setup.
1691
1692* Improve the explanation of path conflicts in the
1693 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/project-setup.html[
1694 project setup documentation].
1695
1696* Add explanations of special/magic refs in the
1697 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#references[
1698 access control documentation].
1699
1700* Clarify how to set Global Capabilities.
1701* Correct documentation of the `create-account` ssh command.
1702* Add documentation of the `database.connectionPool` setting.
Edwin Kempin60ab8532013-03-27 14:33:46 +01001703* Adapt documentation to having 'Projects' as top level menu
1704* Added missing documentation of mail templates.
1705* Added documentation of contributor agreements.
1706* Fix `init.d` symbolic link commands.
1707* Remove obsolete diskbuffer setting from example config file.
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001708* Various minor grammatical and formatting corrections.
Edwin Kempin60ab8532013-03-27 14:33:46 +01001709* Fix external links in 2.0.21 and 2.0.24 release notes
David Ostrovsky681b1d42013-03-03 22:42:38 +01001710* Manual pages can be optionally created/installed for core gerrit ssh commands.
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001711
Yuxuan 'fishy' Wang4f5ad9d2016-05-03 16:18:58 -07001712=== Developer And Maintainer Documentation
Edwin Kempin60ab8532013-03-27 14:33:46 +01001713* Updated the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-eclipse.html#maven[
1714 Maven plugin installation instructions] for Eclipse 3.7 (Indigo).
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001715
Edwin Kempin60ab8532013-03-27 14:33:46 +01001716* Document link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-contributing.html#commit-message[
1717 usage of the past tense in commit messages]
1718
1719* Add link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-contributing.html[
1720 instructions] on how to configure git for pushing to Gerrit's Gerrit
1721
1722* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-contributing.html#process[
1723 Stable branches process documentation]
1724
1725* Improved the
1726 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-release.html[
1727 release documentation].
1728
1729* Document that plans for
1730 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-release.html#stable[
1731 stable-fix releases] should be announced
1732
1733* Document process for
1734 link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-release.html#security[
1735 security-fix releases]
1736
David Pursehouse1a3f9cc2013-02-28 18:12:28 +09001737* The release notes are now made when a release is created by running the `tools/release.sh` script.
1738