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