Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1 | = Release notes for Gerrit 2.6 |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 2 | |
| 3 | Gerrit 2.6 is now available: |
| 4 | |
Shawn Pearce | 6d7ebc6 | 2015-06-12 16:34:42 -0700 | [diff] [blame] | 5 | link:https://www.gerritcodereview.com/download/gerrit-2.6.war[https://www.gerritcodereview.com/download/gerrit-2.6.war] |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 6 | |
Edwin Kempin | a7d2b63 | 2013-03-06 09:10:08 +0100 | [diff] [blame] | 7 | Gerrit 2.6 includes the bug fixes done with |
David Pursehouse | bc125c0 | 2013-05-20 15:27:05 +0900 | [diff] [blame] | 8 | link:ReleaseNotes-2.5.1.html[Gerrit 2.5.1], |
| 9 | link:ReleaseNotes-2.5.2.html[Gerrit 2.5.2], |
| 10 | link:ReleaseNotes-2.5.3.html[Gerrit 2.5.3], and |
| 11 | link:ReleaseNotes-2.5.4.html[Gerrit 2.5.4]. These bug fixes are *not* |
Edwin Kempin | a7d2b63 | 2013-03-06 09:10:08 +0100 | [diff] [blame] | 12 | listed in these release notes. |
| 13 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 14 | == Schema Change |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 15 | *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 |
| 21 | a later 2.1.x version), and then to 2.6.x. If you are upgrading from 2.2.x.x or |
| 22 | newer, you may ignore this warning and upgrade directly to 2.6.x. |
| 23 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 24 | == Reverse Proxy Configuration Changes |
Steffen Gebert | 832014f | 2013-06-03 21:42:47 +0200 | [diff] [blame] | 25 | |
| 26 | If you are running a reverse proxy in front of Gerrit (e.g. Apache or Nginx), |
| 27 | make sure to check your configuration, especially if you are encountering |
| 28 | 'Page Not Found' errors when opening the change screen. |
| 29 | See the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-reverseproxy.html[ |
| 30 | Reverse Proxy Configuration] for details. |
| 31 | |
| 32 | Gerrit now requires passed URLs to be unchanged by the proxy. |
| 33 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 34 | == Release Highlights |
Shawn Pearce | 9770672 | 2013-03-28 16:29:05 -0400 | [diff] [blame] | 35 | * 42x improvement on `git clone` and `git fetch` |
| 36 | + |
| 37 | Running link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[ |
| 38 | gerrit gc] allows JGit to optimize a repository to serve clone and fetch |
| 39 | faster than C Git can, with massively lower server CPU required. Typically |
| 40 | Gerrit 2.6 can completely transfer a project to a client faster than C Git |
| 41 | can finish "Counting" the objects. |
| 42 | |
| 43 | * Completely customizable workflow |
| 44 | + |
| 45 | Individual projects can add (or remove) score categories through |
| 46 | link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-labels.html[ |
| 47 | labels] and link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html[ |
| 48 | Prolog rules]. |
| 49 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 50 | == New Features |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 51 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 52 | === Web UI |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 53 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 54 | ==== Global |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 55 | |
Edwin Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 56 | * New Login Screens |
| 57 | + |
| 58 | New form based HTML screens for login allow browsers to offer the |
| 59 | choice to save the login data locally in the user's password store. |
| 60 | |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 61 | * 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 Greene | 7d979b1 | 2013-04-20 13:10:44 -0400 | [diff] [blame] | 75 | The 'Working ...' message is relatively positioned from the top of |
| 76 | the browser, so that the message is always visible, even if the user |
| 77 | has scrolled down the page. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 78 | |
| 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 Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 87 | * Add a link to the REST API documentation in the top menu. |
| 88 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 89 | ==== Search |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 90 | * Suggest projects, groups and users in search panel |
| 91 | + |
| 92 | Suggest projects, groups and users in the search panel as parameter for |
| 93 | those 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 | + |
| 99 | The values that are suggested for the search operators in the search |
| 100 | panel are now only quoted if they contain a whitespace. |
| 101 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 102 | ==== Change Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 103 | |
| 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 | + |
| 114 | The coloring enables authors to quickly identify if another reviewer |
| 115 | is 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 | + |
| 122 | This is similar to cherry pick, but honors change dependency |
| 123 | information. |
| 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 | + |
| 129 | When a change is rebased in the UI by pressing the rebase button, a |
| 130 | comment is added onto the review. Instead of only saying 'Rebased' the |
| 131 | message is now more verbose, e.g. 'Patch Set 1 was rebased'. |
Edwin Kempin | ca24f5c | 2013-03-26 13:23:20 +0100 | [diff] [blame] | 132 | |
| 133 | * The submit type that is used for submitting a change is shown on the |
| 134 | change screen in the info block. |
| 135 | + |
| 136 | This is useful because the submit type of a change can now be |
| 137 | link:#submit-type-from-prolog[controlled by Prolog]. |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 138 | |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 139 | * Replace the All Diff buttons on the change screen with links |
| 140 | + |
| 141 | The action buttons to open the diff for all files in own tabs consumed |
| 142 | too much space due to the long label texts. |
David Pursehouse | 86581ab | 2013-02-25 09:46:51 +0900 | [diff] [blame] | 143 | |
Dave Borowitz | 01c1b1f | 2013-02-27 13:49:04 -0800 | [diff] [blame] | 144 | * 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 Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 148 | * Voting on draft changes is now possible. |
| 149 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 150 | * Recommend rebase on Path Conflict. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 151 | |
| 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 | + |
| 155 | After clicking on the 'Up to change' link on a patch screen, the patch |
| 156 | set that was just reviewed is automatically expanded on the change |
| 157 | screen. |
| 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 | + |
| 166 | Users don't really need the ID column present. For most changes the |
| 167 | subject is descriptive and unique enough to identify the correct |
| 168 | change. |
| 169 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 170 | * Do not wrap project/branch/owner fields in change table. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 171 | + |
| 172 | This makes it easier to use Gerrit on narrow screens. |
| 173 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 174 | * Rename "Old Version History" to "Reference Version". |
| 175 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 176 | ==== Patch Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 177 | |
| 178 | * Support for file comments |
| 179 | + |
| 180 | It 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 | + |
| 184 | Reviewers normally review patches top down, finishing the review when |
| 185 | they reach the bottom of the patch. To use the streamlined review |
| 186 | workflow they now don't need to scroll back to the top to find the |
| 187 | reviewed 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 | + |
| 192 | This avoids alignment errors when syntax highlighting is enabled. |
| 193 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 194 | * 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' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 198 | ==== Project Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 199 | |
| 200 | * Support filtering of projects in the project list screen |
| 201 | + |
| 202 | Filter matches are highlighted by bold printing. |
| 203 | + |
| 204 | The filter is reflected by the `filter` URL parameter. |
| 205 | |
| 206 | * Support filtering of projects in ProjectListPopup |
| 207 | + |
| 208 | Filter 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 | + |
| 215 | The top menus are submenus to the Project Menu and they appear only |
| 216 | when a project has been selected. |
| 217 | |
| 218 | * Remember the last Project Screen used |
| 219 | + |
| 220 | Remember the last project screen used every time a project screen is |
| 221 | loaded. Go to the remembered screen when selecting a new project from |
| 222 | the project list instead of always going to the project info screen. |
| 223 | |
| 224 | * Remember the last project viewed |
| 225 | + |
| 226 | Remember the last project viewed when navigating away from a project |
| 227 | screen. If there is a remembered project, then the extra project links |
| 228 | are 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 | + |
| 239 | Accessing a project URL was failing with 'Not Found - The page you |
| 240 | requested was not found, or you do not have permission to view this |
| 241 | page' 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 |
| 243 | afterwards shows the project to the user if it exists and is visible. |
| 244 | If the project doesn't exist or is not visible, the user will still get |
| 245 | the Not Found screen after sign in. |
| 246 | |
| 247 | * Improve error handling on branch creation |
| 248 | + |
| 249 | Improve the error messages that are displayed in the WebUI if the |
| 250 | creation of a branch fails due to invalid user input. |
| 251 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 252 | ==== Group Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 253 | |
| 254 | * Support filtering of groups in the group list screen |
| 255 | + |
| 256 | Filter matches are highlighted by bold printing. |
| 257 | + |
| 258 | The filter is reflected by the `filter` URL parameter. |
| 259 | |
| 260 | * Remove group type from group info screen |
| 261 | + |
| 262 | The information about the group type was not much helpful. All groups |
| 263 | that can be seen in Gerrit are of type 'INTERNAL', except a few |
| 264 | well-known system groups which are of type 'SYSTEM'. The system groups |
| 265 | are so well-known that there is no need to display the type for them. |
| 266 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 267 | ==== Dashboard Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 268 | |
| 269 | * Link dashboard title to a URL version of itself |
| 270 | + |
| 271 | When using a stable project dashboard URL, the URL obfuscates the |
| 272 | content of the dashboard which can make it hard to debug a dashboard or |
| 273 | copy and modify it. In the special case of stable dashboards, make the |
| 274 | title a link to an unstable URL version of the dashboard with the URL |
| 275 | reflecting the actual dashboard contents the way a custom dashboard |
| 276 | does. |
| 277 | |
| 278 | * Increase time span for "Recently Closed" section in user dashboard to 4 weeks. |
| 279 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 280 | ==== Account Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 281 | |
| 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 | + |
| 285 | Display a description of how to generate an SSH Key in an expandable |
| 286 | section in the SshPanel instead of linking to the GitHub SSH tutorial. |
| 287 | The GitHub SSH tutorial was partially not relevant and confused users. |
| 288 | |
| 289 | * Make the text for "Register" customizable |
| 290 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 291 | ==== Plugin Screens |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 292 | |
| 293 | * Show status for enabled plugins in the WebUI as 'Enabled' |
| 294 | + |
| 295 | Earlier no status was shown for enabled plugins, which was confusing to |
| 296 | some users. |
David Pursehouse | 86581ab | 2013-02-25 09:46:51 +0900 | [diff] [blame] | 297 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 298 | === REST API |
Edwin Kempin | 7e960ac | 2013-03-27 13:28:12 +0100 | [diff] [blame] | 299 | |
| 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 | + |
| 303 | The REST API is *NOT* complete yet and some functionality is still missing. |
| 304 | + |
| 305 | To find out which functionality is available, check the REST endpoint documentation for |
| 306 | link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html[projects], |
| 307 | link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-changes.html[changes], |
| 308 | link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-groups.html[groups] and |
| 309 | link: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 | + |
| 316 | Allow generating Audit events related to REST API execution. The |
| 317 | structure of the AuditEvent has been extended to support the new |
| 318 | name-multivalue pairs used in the REST API. |
| 319 | + |
| 320 | This is breaking compatibility with the 2.5 API as it changes the |
| 321 | params data type, this is needed anyway as the previous list of |
| 322 | Objects was not providing all the necessary information of |
| 323 | "what relates to what" in terms of parameters info. |
| 324 | + |
| 325 | Existing support for SSH and JSON-RPC events have been adapted in |
| 326 | order to fit into the new name-multivalue syntax: this allow a |
| 327 | generic audit plug-in to capture all parameters regardless of where |
| 328 | they have been generated. |
| 329 | |
| 330 | * Remove support for deprecated `--format` option when listing changes |
| 331 | + |
| 332 | Querying changes via REST is now always producing JSON output. |
| 333 | |
| 334 | * Introduce `id` property on REST entities |
| 335 | + |
| 336 | The `/changes/` entities now use `id` to include a triplet of the |
| 337 | project, branch and change-id string to uniquely identify that change |
| 338 | on the server. This moves the old `id` field to be named `change_id`, |
| 339 | which is a breaking change. |
| 340 | |
| 341 | * Accept common forms of malformed JSON |
| 342 | + |
| 343 | Some clients may send JSON-ish instead of JSON. Be nice to those |
| 344 | clients 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 | + |
| 360 | If the response begins with the JSON magic string, remove it before |
| 361 | parsing. If a response is missing this leading string, parse the |
| 362 | response as-is. |
| 363 | |
| 364 | * Accept simple form encoded data for REST APIs |
| 365 | + |
| 366 | Simple cases like `/review` or `/abandon` can now accept standard form |
| 367 | values for basic properties, making it simple for tools to directly |
| 368 | post 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 | + |
| 377 | Form field names are JSON field names in the top level object. If dot |
| 378 | appears in the name the part to the left is taken as the JSON field |
| 379 | name and the part to the right as the key for a Map. This nicely fits |
| 380 | with the labels structure used by `/review`, but doesn't support the |
| 381 | much more complex inline comment case. Clients that need to use more |
| 382 | complex fields must use JSON formatting for the request body. |
| 383 | |
| 384 | * Allow administrators to see other user capabilities |
| 385 | + |
| 386 | Expand `/accounts/{id}/capabilities` to permit an administrator |
| 387 | to inspect another user's effective capabilities. |
| 388 | |
| 389 | * Declare kind in JSON API results |
| 390 | + |
| 391 | This is recommended to hint to clients what the entity type is when |
| 392 | processing the JSON payload. |
| 393 | |
| 394 | * Format h/help output as plain text not JSON |
| 395 | + |
| 396 | The output produced when the client requested the h or help property |
| 397 | from a JSON API is always produced from constant compiled into the |
| 398 | server. Assume this safe to return to the client as text/plain content |
| 399 | and avoid wrapping it into an HTML escaped JSON string. |
| 400 | |
| 401 | * Use string for JSON encoded plain text replies |
| 402 | + |
| 403 | Instead of wrapping the value into an object, just return the |
| 404 | string by itself. This better matches what happens with the plain |
| 405 | text return format. |
| 406 | |
| 407 | * Wrap possible HTML plain text in JSON on GET |
| 408 | + |
| 409 | If the HTML appears like MSIE might guess it is HTML (such as if it |
| 410 | contains `<`) encode the response as a JSON object instead of as a |
| 411 | simple plain text string. This won't show up very often for clients, |
| 412 | and protects MSIE users stuck on ancient versions (pre MSIE 8). |
| 413 | |
| 414 | * Ask MSIE to never sniff content types on REST API responses |
| 415 | + |
| 416 | Newer versions of MSIE can disable the content sniffing feature if the |
| 417 | server asks it to by setting an extension header. It is annoying, but |
| 418 | necessary, that a server needs to say "No really, I _am_ telling you |
| 419 | the right Content-Type, trust it." |
| 420 | + |
| 421 | This feature was added in MSIE 8 Beta 2 so it doesn't protect users |
| 422 | running MSIE 6 or 7, but those are ancient and users should upgrade. |
| 423 | + |
| 424 | Enable this on the REST API responses because we sometimes send back |
| 425 | text/plain results that are really just plain text. Existing JSON |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 426 | responses are protected from accidental sniffing and treatment as |
Edwin Kempin | 7e960ac | 2013-03-27 13:28:12 +0100 | [diff] [blame] | 427 | HTML thanks to Gson encoding HTML control characters using Unicode |
| 428 | character escapes within JSON strings. |
| 429 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 430 | === Project Dashboards |
Edwin Kempin | 861d4e1 | 2013-03-27 10:28:18 +0100 | [diff] [blame] | 431 | * link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html#project-dashboards[ |
| 432 | Support for storing custom dashboards for projects] |
| 433 | + |
| 434 | Custom dashboards can now be stored in the projects |
| 435 | `refs/meta/dashboards/*` branches. |
| 436 | + |
| 437 | The project dashboards are shown in a new project screen and can be |
| 438 | link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html#dashboard-endpoints[ |
| 439 | accessed 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 | + |
| 446 | In dashboards queries the `${project}` token can be used as placeholder |
| 447 | for the project name. This token will be replaced with the project to |
| 448 | which 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 | + |
| 455 | The `foreach` parameter which will get appended to all the queries in |
| 456 | the dashboard. |
| 457 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 458 | === Access Controls |
Edwin Kempin | 3e6303c | 2013-03-26 09:16:38 +0100 | [diff] [blame] | 459 | * Allow to overrule `BLOCK` permissions on the same project |
| 460 | + |
| 461 | It was impossible to block a permission for a group and allow the same |
| 462 | permission for a sub-group of that group as the `BLOCK` permission |
| 463 | always won over any `ALLOW` permission. For example, it was impossible |
| 464 | to block the "Forge Committer" permission for all users and then allow |
| 465 | it only for a couple of privileged users. |
| 466 | + |
| 467 | An `ALLOW` permission has now priority over a `BLOCK` permission when |
| 468 | they are defined in the same access section of a project. To achieve the |
| 469 | above mentioned policy the following could be defined: |
| 470 | + |
| 471 | [access "refs/heads/*"] |
| 472 | forgeCommitter = block group Anonymous Users |
| 473 | forgeCommitter = group Privileged Users |
| 474 | + |
| 475 | Across projects the `BLOCK` permission still wins over any `ALLOW` |
| 476 | permission. This way one cannot override an inherited `BLOCK` |
| 477 | permission in a subproject. |
| 478 | + |
| 479 | Overruling of `BLOCK` permissions with `ALLOW` permissions also works |
| 480 | for labels i.e. permission ranges. If a dedicated 'Verifiers' group |
| 481 | need to be the only group who can vote in the 'Verified' label and it |
| 482 | must be ensured that even project owners cannot change this policy, |
| 483 | then 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 | + |
| 492 | Users can now propose changes to the global capabilities for review |
| 493 | from 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 Pursehouse | 7457396 | 2013-03-08 12:23:37 +0900 | [diff] [blame] | 506 | + |
| 507 | Previously site administrators had this capability by default. Now it has |
| 508 | to be explicitly assigned, even for site administrators. |
| 509 | |
David Pursehouse | 345f2be | 2013-03-04 11:02:20 +0900 | [diff] [blame] | 510 | * link:https://code.google.com/p/gerrit/issues/detail?id=1585[Issue 1585]: |
Edwin Kempin | 3e6303c | 2013-03-26 09:16:38 +0100 | [diff] [blame] | 511 | 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 Pursehouse | 345f2be | 2013-03-04 11:02:20 +0900 | [diff] [blame] | 513 | |
| 514 | * link:https://code.google.com/p/gerrit/issues/detail?id=1675[Issue 1675]: |
Edwin Kempin | 3e6303c | 2013-03-26 09:16:38 +0100 | [diff] [blame] | 515 | 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. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 518 | |
David Pursehouse | b1d656f | 2013-04-04 09:51:36 +0900 | [diff] [blame] | 519 | * Grant most permissions when creating `All-Projects` |
Edwin Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 520 | + |
David Pursehouse | b1d656f | 2013-04-04 09:51:36 +0900 | [diff] [blame] | 521 | Make Gerrit more like a Git server out-of-the box by granting both |
Edwin Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 522 | Administrators and Project Owners permissions to review changes, submit |
| 523 | them, create branches, create tags, and push directly to branches. |
| 524 | |
Edwin Kempin | 3e6303c | 2013-03-26 09:16:38 +0100 | [diff] [blame] | 525 | * 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. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 528 | * Kerberos authentication to LDAP servers is now supported. |
| 529 | |
Edwin Kempin | 3e6303c | 2013-03-26 09:16:38 +0100 | [diff] [blame] | 530 | * Basic project properties are now inherited by default from parent |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 531 | projects: Use Content Merge, Require Contributor Agreement, Require |
| 532 | Change Id, Require Signed Off By. |
| 533 | |
Edwin Kempin | 3e6303c | 2013-03-26 09:16:38 +0100 | [diff] [blame] | 534 | * Allow assigning `Push` for `refs/meta/config` on `All-Projects` |
| 535 | + |
| 536 | The `refs/meta/config` branch of the `All-Projects` project should only |
| 537 | be modified by Gerrit administrators because being able to do |
| 538 | modifications on this branch means that the user could assign himself |
| 539 | administrator permissions. |
| 540 | + |
| 541 | In addition to being administrator Gerrit requires that the |
| 542 | administrator has the `Push` access right for `refs/meta/config` in |
| 543 | order to be able to modify it (just as with all other branches |
| 544 | administrators do not have edit permissions by default). |
| 545 | + |
| 546 | The problem was that assigning the `Push` access right for |
| 547 | `refs/meta/config` on the `All-Projects` project was not allowed. |
| 548 | + |
| 549 | Having the `Push` access right for `refs/meta/config` on the |
| 550 | `All-Projects` project without being administrator has no effect. |
| 551 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 552 | === Hooks |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 553 | * Change topic is passed to hooks as `--topic NAME`. |
David Pursehouse | 673bace | 2013-02-27 18:14:29 +0900 | [diff] [blame] | 554 | * link:https://code.google.com/p/gerrit/issues/detail?id=1200[Issue 1200]: |
| 555 | New `reviewer-added` hook and stream event when a reviewer is added. |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 556 | |
David Pursehouse | b58a18d | 2013-03-06 15:37:03 +0900 | [diff] [blame] | 557 | * link:https://code.google.com/p/gerrit/issues/detail?id=1237[Issue 1237]: |
| 558 | New `merge-failed` hook and stream event when a change cannot be submitted due to failed merge. |
| 559 | |
Chris Harris | 8944f43 | 2013-03-21 17:07:30 -0400 | [diff] [blame] | 560 | * link:https://code.google.com/p/gerrit/issues/detail?id=925[Issue 925]: |
| 561 | New `ref-update` hook run before a push is accepted by Gerrit. |
| 562 | |
Edwin Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 563 | * Add `--is-draft` parameter to `comment-added` hook |
| 564 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 565 | === Git |
Edwin Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 566 | * Add options to `refs/for/` magic branch syntax |
| 567 | + |
| 568 | Git doesn't want to modify the network protocol to support passing |
| 569 | data from the git push client to the server. Work around this by |
| 570 | embedding 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 | + |
| 576 | is 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 | + |
| 585 | If `%` is used the extra information after the branch name is |
| 586 | parsed as options with args4j. Each option is delimited by `,`. |
| 587 | + |
| 588 | Selecting 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 Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 598 | * Enable content merge by default |
| 599 | + |
| 600 | Most teams seem to expect Gerrit to manage simple merges within a |
David Pursehouse | b1d656f | 2013-04-04 09:51:36 +0900 | [diff] [blame] | 601 | source code file. Enable this out-of-the-box. |
Edwin Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 602 | |
Edwin Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 603 | * 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]: |
| 607 | Commits pushed without a Change-Id now warn with instructions on how |
| 608 | to download and install the commit-msg hook. |
| 609 | |
| 610 | * Add `oldObjectId` and `newObjectId` to the `GitReferenceUpdatedListener.Update` |
| 611 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 612 | === SSH |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 613 | * New SSH command to http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[ |
| 614 | run Git garbage collection] |
| 615 | + |
| 616 | All GC runs are logged in a GC log file. |
| 617 | |
David Ostrovsky | 6e37b78 | 2013-02-27 00:52:49 +0100 | [diff] [blame] | 618 | * Descriptions are added to ssh commands. |
| 619 | + |
| 620 | If `gerrit` is called without arguments, it will now show a list of available |
| 621 | commands with their descriptions. |
| 622 | |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 623 | * `create-account --http-password` enables setting/resetting the |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 624 | 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. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 628 | |
| 629 | * `ls-projects --has-acl-for` lists projects that mention a group |
| 630 | in an ACL, identifying where rights are granted. |
| 631 | |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 632 | * `review` command supports project-specific labels |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 633 | |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 634 | * `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' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 641 | === Query |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 642 | * Allow `{}` to be used for quoting in query expressions |
| 643 | + |
| 644 | This makes it a little easier to query for group names that contain |
| 645 | a 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 Pursehouse | 50abd45 | 2013-03-05 15:43:34 +0900 | [diff] [blame] | 656 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 657 | === Plugins |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 658 | * 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 Pursehouse | 86581ab | 2013-02-25 09:46:51 +0900 | [diff] [blame] | 663 | * 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 Kempin | 25b5b00 | 2013-03-27 10:01:02 +0100 | [diff] [blame] | 667 | * 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 Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 671 | * Allow HTTP plugins to change `static` or `docs` prefixes |
| 672 | + |
| 673 | An HTTP plugin may want more control over its URL space, but still |
| 674 | delegate to the plugin servlet's magic handling for static files and |
| 675 | documentation. Add JAR attributes to configure these prefixes. |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 676 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 677 | === Prolog |
Edwin Kempin | ca24f5c | 2013-03-26 13:23:20 +0100 | [diff] [blame] | 678 | [[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 | + |
| 682 | Similarly like the `submit_rule` there is now a `submit_type` predicate |
| 683 | which returns the allowed submit type for a change. When the |
| 684 | `submit_type` predicate is not provided in the `rules.pl` then the |
| 685 | project default submit type is used for all changes of that project. |
| 686 | + |
| 687 | Filtering the results of the `submit_type` is also supported in the |
| 688 | same way like filtering the results of the `submit_rule`. Using a |
| 689 | `submit_type_filter` predicate one can enforce a particular submit type |
| 690 | from 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 | + |
| 697 | A new method `gerrit:commit_stats(-Files,-Insertions, -Deletions)` was |
| 698 | added. |
| 699 | |
| 700 | * A new `max_with_block` predicate was added for more convenient usage |
| 701 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 702 | === Email |
Edwin Kempin | e742e91 | 2013-03-26 14:38:12 +0100 | [diff] [blame] | 703 | * 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 Pursehouse | 673bace | 2013-02-27 18:14:29 +0900 | [diff] [blame] | 711 | * link:https://code.google.com/p/gerrit/issues/detail?id=1531[Issue 1531]: |
| 712 | Email footers now include `Gerrit-HasComments: {Yes|No}`. |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 713 | * `#if($email.hasInlineComments())` can be used in templates to test |
| 714 | if there are comments to be included in this email. |
David Pursehouse | dc018df | 2013-03-06 15:37:24 +0900 | [diff] [blame] | 715 | * 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 Kempin | e742e91 | 2013-03-26 14:38:12 +0100 | [diff] [blame] | 718 | * 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 | + |
| 721 | This may help automated systems to be less noisy. Tools can now choose |
| 722 | which review updates should send email, and which categories of users |
| 723 | on a change should get that email. |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 724 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 725 | === Labels |
Dave Borowitz | 01c1b1f | 2013-02-27 13:49:04 -0800 | [diff] [blame] | 726 | * 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 Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 730 | * 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 Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 733 | * Don't create `Verify` category by default |
| 734 | + |
| 735 | Most project teams seem confused with the out-of-the-box experience |
| 736 | needing to vote on both `Code-Review` and `Verified` categories in |
David Pursehouse | b1d656f | 2013-04-04 09:51:36 +0900 | [diff] [blame] | 737 | order to submit a change. Simplify the out-of-the-box workflow to only |
Edwin Kempin | 204b07a | 2013-04-03 14:30:20 +0200 | [diff] [blame] | 738 | have `Code-Review`. When a team installs the Hudson/Jenkins integration |
| 739 | or their own build system they can now trivially add the `Verified` |
| 740 | category by pasting 5 lines into `project.config`. |
Dave Borowitz | 01c1b1f | 2013-02-27 13:49:04 -0800 | [diff] [blame] | 741 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 742 | === Dev |
Edwin Kempin | 57fa179 | 2013-03-27 10:43:41 +0100 | [diff] [blame] | 743 | |
| 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 | + |
| 749 | An infrastructure for testing the Gerrit daemon via REST and/or SSH |
| 750 | protocols has been added. Gerrit daemon is run in the headless mode and |
| 751 | in the same JVM where the tests run. Besides using REST/SSH, the tests |
| 752 | can also access Gerrit server internals to prepare the test environment |
| 753 | and to perform assertions. |
| 754 | + |
| 755 | A new review site is created for each test and the Gerrit daemon is |
| 756 | started on that site. When the test has finished the Gerrit daemon is |
| 757 | shutdown. |
| 758 | |
| 759 | * Lightweight LDAP server for debugging |
| 760 | |
| 761 | * Add asciidoc checks in the documentation makefile |
| 762 | + |
| 763 | Exit with error if the asciidoc executable is not available or has |
| 764 | version lower than 8.6.3. |
| 765 | + |
| 766 | The 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 Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 772 | * Source files generated by Prolog are now correctly included in the Eclipse |
| 773 | project. |
| 774 | |
| 775 | * Core plugins are now included as git submodules. |
| 776 | |
| 777 | * `mvn package` now generates the documentation by default. |
| 778 | + |
| 779 | The documentation will always be generated unless `-Dgerrit.documentation.skip` |
| 780 | is given on the command line. |
| 781 | |
| 782 | * `mvn verify` now runs acceptance tests by default. |
| 783 | + |
| 784 | The `acceptance` profile is no longer used. Acceptance tests will always |
| 785 | be 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' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 791 | === Performance |
Edwin Kempin | 7f66a27 | 2013-03-26 16:19:49 +0100 | [diff] [blame] | 792 | * Bitmap Optimizations |
| 793 | + |
| 794 | On running the http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[ |
Shawn Pearce | 9770672 | 2013-03-28 16:29:05 -0400 | [diff] [blame] | 795 | garbage collection] JGit creates bitmap data that is saved to an |
Edwin Kempin | 7f66a27 | 2013-03-26 16:19:49 +0100 | [diff] [blame] | 796 | auxiliary file. The bitmap optimizations improve the clone and fetch |
| 797 | performance. git-core will ignore the bitmap data. |
| 798 | |
| 799 | * Improve suggest user performance when adding a reviewer. |
| 800 | + |
| 801 | Do not check the visibility of the change for each suggested account if |
| 802 | the ref is visible by all registered users. |
| 803 | + |
| 804 | On a system with about 2-3000 users, where most of the projects are |
| 805 | visible by every registered user, this improves the performance of the |
| 806 | suggesting reviewer by a factor of 1000 at least. |
| 807 | |
| 808 | * Cache RefControl.isVisible() |
| 809 | + |
| 810 | For Git repositories with many changes the time for calculating visible |
| 811 | refs is reduced by 30-50%. |
| 812 | |
| 813 | * Allow admins to disable magic ref check on upload |
| 814 | + |
| 815 | Some sites manage to run their repositories in a way that prevents |
| 816 | users from ever being able to create `refs/for`, `refs/drafts` or |
| 817 | `refs/publish` names in a repository. Allow admins on those servers |
| 818 | to disable this (somewhat) expensive check before every upload. |
| 819 | |
| 820 | * Permit ProjectCacheClock to be completely disabled |
| 821 | + |
| 822 | Some admins may just want to require all updates to projects to be |
| 823 | made through the web interface, and avoid the small expense of a |
| 824 | background thread ticking off changes. |
| 825 | |
| 826 | * Batch read Change objects during query |
| 827 | |
| 828 | * Default `core.streamFileThreshold` to a larger value |
| 829 | + |
| 830 | If this value is not configured by the server administrator |
| 831 | performance on larger text files suffers considerably and |
| 832 | Gerrit may grind to a halt and be unable to answer users. |
| 833 | + |
| 834 | Default to either 25% of the available JVM heap or ~2048m. |
| 835 | |
| 836 | * Improve performance of ReceiveCommits for repositories with many refs |
| 837 | + |
| 838 | Avoid adding `refs/changes/` and `refs/tags/` to RevWalk's as |
| 839 | uninteresting since JGit RevWalk doesn't perform well when a large |
| 840 | number of objects is marked as uninteresting. |
| 841 | |
| 842 | * PatchSet.isRef()-optimizations. |
| 843 | + |
| 844 | PatchSet.isRef() is used extensively when preparing for a ref |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 845 | advertisement and the regular expression used by isRefs() was notably |
Edwin Kempin | 7f66a27 | 2013-03-26 16:19:49 +0100 | [diff] [blame] | 846 | costly in these circumstances, especially since it could not be |
| 847 | pre-compiled. |
| 848 | + |
| 849 | The regular expression is removed and the check is now directly |
| 850 | implemented. As result the performance of `git ls-remote` could be |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 851 | increased by up to 15%. |
Edwin Kempin | 7f66a27 | 2013-03-26 16:19:49 +0100 | [diff] [blame] | 852 | |
| 853 | * New config option `receive.checkReferencedObjectsAreReachable` |
| 854 | + |
| 855 | If set to true, Gerrit will validate that all referenced objects that |
| 856 | are not included in the received pack are reachable by the user. |
| 857 | + |
| 858 | Carrying out this check on Git repositories with many refs and commits |
| 859 | can be a very CPU-heavy operation. For non public Gerrit servers it may |
| 860 | make 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 | + |
| 866 | This joins up 3 requests into a single call, which should speed up |
| 867 | initial page load for most users. |
| 868 | |
| 869 | * Only gzip compress responses that are smaller compressed |
| 870 | |
| 871 | * Caching of changes |
| 872 | + |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 873 | During Ref Advertisements (via VisibleRefFilter), all changes need to |
Edwin Kempin | 7f66a27 | 2013-03-26 16:19:49 +0100 | [diff] [blame] | 874 | be fetched from the database to allow Gerrit to figure out which change |
| 875 | refs are visible and should be advertised to the user. To reduce |
| 876 | database traffic a cache for changes was introduced. This cache is |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 877 | disabled by default since it can mess up multi-server setups. |
Edwin Kempin | 7f66a27 | 2013-03-26 16:19:49 +0100 | [diff] [blame] | 878 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 879 | === Misc |
Edwin Kempin | 218f558 | 2013-03-27 16:35:38 +0100 | [diff] [blame] | 880 | * Add config parameter to make new groups by default visible to all |
| 881 | + |
| 882 | Add a new http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#groups.newGroupsVisibleToAll[ |
| 883 | Gerrit configuration parameter] that controls whether newly |
| 884 | created groups should be by default visible to all registered users. |
| 885 | |
| 886 | * Support for OpenID domain filtering |
| 887 | + |
| 888 | Added the ability to only allow email addresses under specific domains |
| 889 | to be used for OpenID login. |
| 890 | + |
| 891 | The allowed domains can be configured by setting |
| 892 | http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.openIdDomain[ |
| 893 | auth.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 | + |
| 899 | Gerrit has been requiring this field for several versions now, but init |
| 900 | did not configure it. Ensure there is a value set so the server is not |
| 901 | confused at runtime. |
| 902 | |
| 903 | * Add submodule subscriptions fetching by projects |
| 904 | + |
| 905 | While submodule subscriptions can be fetched by branch, some plugins |
| 906 | (e.g.: delete-project) would rather need to access all submodule |
| 907 | subscriptions of a project (regardless of the branch). Instead of |
| 908 | iterating over all branches of a project, and fetching the |
| 909 | subscription for each branch separately, we allow fetching of |
| 910 | subscriptions 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 | + |
| 915 | Authentication with CLIENT_SSL_CERT_LDAP didn't work if the certificate |
| 916 | contained email address. |
| 917 | |
| 918 | * Guess LDAP type of Active Directory LDS as ActiveDirectory |
| 919 | + |
| 920 | If Gerrit connects to an AD LDS [1] server it will guess its type as |
| 921 | RCF_2307 instead of ActiveDirectory. The reason is that an AD LDS |
| 922 | doesn't support the "1.2.840.113556.1.4.800" capability. However, |
| 923 | AD LDS behaves like ActiveDirectory and Gerrit also needs to guess |
| 924 | its type as ActiveDirectory to make the default query patterns work |
| 925 | properly. |
| 926 | + |
| 927 | Extend 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 |
| 929 | server runs ActiveDirectory as AD LDS [2]. |
| 930 | + |
| 931 | Also remove the check for the presence of the "defaultNamingContext" |
| 932 | attribute as we don't use it anywhere and, by default, this attribute is |
| 933 | not 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 | + |
| 941 | Some backends have external management interfaces that are not |
| 942 | embedded into Gerrit Code Review. Allow those backends to supply |
| 943 | a URL to the web management interface for a group, so a user can |
| 944 | manage their membership, view current members, or do whatever other |
| 945 | features the group system might support. |
| 946 | + |
| 947 | Some backends also have an email address associated with every |
| 948 | group. Sending email to that address will distribute the message to |
| 949 | the group's members. Permit backends to supply an optional email |
| 950 | address, and use this in the project level notification system if |
| 951 | a group is selected as the target for a message. |
| 952 | |
| 953 | * Allow group backends to guess on relevant UUIDs |
| 954 | + |
| 955 | Expose all cheaply known group UUIDs from the ProjectCache, |
| 956 | enumerating groups used by access controls. This allows a backend |
| 957 | that has a large number of groups to filter its getKnownGroups() |
| 958 | output to only groups that may be relevant for this Gerrit server. |
| 959 | + |
| 960 | The best use case to consider is an LDAP server at a large |
| 961 | organization. A typical user may belong to 50 LDAP groups, but only |
| 962 | 3 are relevant to this Gerrit server. Taking the intersection of |
| 963 | the two groups limits the output Gerrit displays to users, or uses |
| 964 | when considering same group visibility. |
| 965 | |
| 966 | * Add more forbidden characters for project names |
| 967 | + |
| 968 | `?`, `%`, `*`, `:`, `<`, `>`, `|`, `$`, `\r` are now forbidden in |
| 969 | project 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 | + |
| 979 | Add `--headless` option to the Daemon which will start Gerrit daemon |
| 980 | without the Web UI front end (headless mode). |
| 981 | + |
| 982 | This may be useful for running Gerrit server with an alternative (rest |
| 983 | based) UI or when starting Gerrit server for the purpose of automated |
| 984 | REST/SSH based testing. |
| 985 | + |
| 986 | Currently this option is only supported via the `--headless` option of |
| 987 | the daemon program. We would need to introduce a config option in order |
| 988 | to support this feature for deployed war mode. |
| 989 | |
| 990 | * Show path to gerrit.war in command for upgrade schema |
| 991 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 992 | === Upgrades |
David Pursehouse | 673bace | 2013-02-27 18:14:29 +0900 | [diff] [blame] | 993 | * link:https://code.google.com/p/gerrit/issues/detail?id=1619[Issue 1619]: |
| 994 | Embedded Jetty is now 8.1.7.v20120910. |
| 995 | |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 996 | * ASM bytecode library is now 4.0. |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 997 | * JGit is now 2.3.1.201302201838-r.208-g75e1bdb. |
David Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 998 | * asciidoc 8.6.3 is now required to build the documentation. |
David Pursehouse | b58a18d | 2013-03-06 15:37:03 +0900 | [diff] [blame] | 999 | * link:https://code.google.com/p/gerrit/issues/detail?id=1155[Issue 1155]: |
| 1000 | prettify is now r225 |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 1001 | |
Edwin Kempin | f30921c | 2013-03-27 09:27:01 +0100 | [diff] [blame] | 1002 | * The used GWT version is now 2.5.0 |
| 1003 | + |
| 1004 | Fixes some issues with IE9 and IE10. |
| 1005 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1006 | == Bug Fixes |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 1007 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1008 | === Web UI |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1009 | * 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 | + |
| 1012 | This error message was incorrectly displayed if a permission without |
| 1013 | rules 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 | + |
| 1017 | This error message was incorrectly displayed if multiple sections for |
| 1018 | the same ref were added, although the save was actually successful. |
| 1019 | |
David Pursehouse | 673bace | 2013-02-27 18:14:29 +0900 | [diff] [blame] | 1020 | * Links to CGit were broken when `remove-suffix` was enabled. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1021 | |
David Pursehouse | b58a18d | 2013-03-06 15:37:03 +0900 | [diff] [blame] | 1022 | * link:https://code.google.com/p/gerrit/issues/detail?id=926[Issue 926]: |
| 1023 | Internet Explorer versions 9 and 10 are supported. |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 1024 | |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1025 | * 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 | + |
| 1030 | The Gerrit server may enforce several restrictions on the commit |
| 1031 | message (change-id required, signed-off-by, etc). A user was able to |
| 1032 | get 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 | + |
| 1037 | Following the navigation link in the dependencies table on the |
| 1038 | change screen, the user can directly navigate to dependent changes. |
| 1039 | The value for 'Old Version History' of the current change was |
| 1040 | incorrectly applied to the new change. If the value was invalid for |
| 1041 | the 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 | + |
| 1046 | The ListBox was not always cleared and as result the same entries were |
| 1047 | sometimes added multiple times e.g. after rebasing a change in the |
| 1048 | WebUI. |
| 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 | + |
| 1053 | When two patches were compared that were identical 'No Differences' is |
| 1054 | displayed to the user. In this case the patch headers disappeared and |
| 1055 | as 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 | + |
| 1060 | In some cases displaying the intraline diff failed with an exception like |
| 1061 | this: |
| 1062 | + |
| 1063 | ---- |
| 1064 | java.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 | + |
| 1074 | This happened when the old line was: |
| 1075 | + |
| 1076 | ---- |
| 1077 | foo-old<LF> |
| 1078 | ---- |
| 1079 | + |
| 1080 | and the new line was: |
| 1081 | + |
| 1082 | ---- |
| 1083 | foo-new<CRLF> |
| 1084 | ---- |
| 1085 | |
| 1086 | * Prevent leading and trailing spaces on user's Full Name |
| 1087 | + |
| 1088 | Strip off the leading and trailing spaces from the Full Name that the |
| 1089 | user 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 | + |
| 1102 | If in the top level menu 'All' is selected and the user navigates to |
| 1103 | a change and then from the change to the project by clicking on the |
| 1104 | project link in the ChangeInfoBlock, the project screen is loaded but |
| 1105 | the '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 Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 1111 | ** Fix duplicated border line between comments. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1112 | ** 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 Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 1117 | stayed and some border lines of neighbor comments disappeared. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1118 | |
| 1119 | * In diff view don't let arrow column accept clicks. |
| 1120 | |
| 1121 | * Fix display of commit message |
| 1122 | + |
| 1123 | If 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 | + |
| 1127 | In the change screen, after clicking on an element of the 'Add |
| 1128 | Reviewer' suggestion list, users expect to be able to add the reviewer |
| 1129 | by hitting enter. This did not work in Firefox. |
| 1130 | |
| 1131 | * Fix enter key detection in project creation screen |
| 1132 | + |
| 1133 | The 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 | + |
| 1140 | If we load a page without a query string, such as Projects->List, |
| 1141 | My->Changes, or Settings, it might be confusing to show the old query |
| 1142 | string from the previous page. The query string is now cleared out |
| 1143 | when switching pages, leaving the help text visible. |
| 1144 | |
| 1145 | * Fix highlighting in search suggestions |
| 1146 | + |
| 1147 | The provided suggestions should highlight the part that the user has |
| 1148 | already typed as bold text. This only worked for the first operator. |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 1149 | For suggestions of any further operator no highlighting was done. |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1150 | |
| 1151 | * Fix style of hint text in search box on initial page load |
| 1152 | + |
| 1153 | The hint text should be a light gray on the white background, |
| 1154 | but was coming up black on initial page load due to a style setup |
| 1155 | ordering issue between the SearchPanel and the HintTextBox. |
| 1156 | |
| 1157 | * link:https://code.google.com/p/gerrit/issues/detail?id=1661[Issue 1661]: |
David Pursehouse | 253611e | 2013-06-13 09:09:11 +0200 | [diff] [blame] | 1158 | Update links to Change-Id and Signed-off-by documentation on project info |
Edwin Kempin | 3946212 | 2013-03-27 09:18:19 +0100 | [diff] [blame] | 1159 | screen |
| 1160 | |
| 1161 | * Use href="javascript;" for All {Side-by-Side,Unified} links |
| 1162 | + |
| 1163 | These links shouldn't have an anchor location. There is nothing for |
| 1164 | the browser to remember or visit if it were opened in a new tab for |
| 1165 | example. |
| 1166 | |
| 1167 | * Improve message for unsatisfiable dependencies |
| 1168 | + |
| 1169 | If a change cannot be merged due to unsatisfiable dependencies a |
| 1170 | comment is added to the change that lists the missing commits and says |
| 1171 | that a rebase is necessary. |
| 1172 | + |
| 1173 | For each missing commit the comment said "Depends on patch set X |
| 1174 | of ..., however the current patch set is Y." |
| 1175 | + |
| 1176 | If multiple commits are missing it may be that for some commits the |
| 1177 | dependency is not outdated (X == Y). In this case the message was |
| 1178 | confusing. |
| 1179 | + |
| 1180 | ", however the current patch set is Y." is now skipped if Y == X. |
| 1181 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 1182 | * 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 Pursehouse | 75d549f | 2013-06-04 13:20:15 +0900 | [diff] [blame] | 1192 | * link:https://code.google.com/p/gerrit/issues/detail?id=1682[Issue 1682]: |
| 1193 | Correctly handle paths with URL-escaped characters |
| 1194 | + |
| 1195 | URL-unescape the path portion of a change history token to correctly |
| 1196 | handle paths with URL-escapable characters, i.e. '+', ' ', etc. |
| 1197 | |
David Pursehouse | 253611e | 2013-06-13 09:09:11 +0200 | [diff] [blame] | 1198 | * link:https://code.google.com/p/gerrit/issues/detail?id=1915[Issue 1915]: |
| 1199 | Don't show non-visible drafts in the diff screens. |
| 1200 | |
David Ostrovsky | 75d0677 | 2013-06-14 09:59:27 +0200 | [diff] [blame] | 1201 | * link:https://code.google.com/p/gerrit/issues/detail?id=1801[Issue 1801]: |
| 1202 | Correctly keep patch set ordering after a new patch set is added via |
| 1203 | the Web UI. |
David Pursehouse | 75d549f | 2013-06-04 13:20:15 +0900 | [diff] [blame] | 1204 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1205 | === REST API |
Edwin Kempin | 7e960ac | 2013-03-27 13:28:12 +0100 | [diff] [blame] | 1206 | * Fix returning of 'Email Reviewers' capability via REST |
| 1207 | + |
| 1208 | The `/accounts/self/capabilities/` didn't return the 'Email Reviewers' |
| 1209 | capability when it was not explicitly assigned, although by default |
| 1210 | everyone has the 'Email Reviewers' capability. |
| 1211 | + |
| 1212 | If 'Email Reviewers' capability was allowed or denied, |
| 1213 | `/accounts/self/capabilities/` returned the 'Email Reviewers' |
| 1214 | capability 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' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1219 | === Git |
David Pursehouse | 9542a8c | 2013-02-27 17:30:46 +0900 | [diff] [blame] | 1220 | * The wildcard `.` is now permitted in reference regex rules. |
Edwin Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 1221 | |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 1222 | * Checking if a change is mergeable no longer writes to the repository. |
David Pursehouse | 673bace | 2013-02-27 18:14:29 +0900 | [diff] [blame] | 1223 | |
Shawn O. Pearce | a890daa | 2012-11-08 23:22:56 -0800 | [diff] [blame] | 1224 | * 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 Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 1229 | * Retry merge after LOCK_FAILURE when updating branch |
| 1230 | + |
| 1231 | If the project requires fast-forwards, the merge cannot succeed once |
| 1232 | a lock failure occurs, but in other cases, it is safe to retry the |
| 1233 | merge immediately. |
| 1234 | |
| 1235 | * Do not automatically add reviewers from footer lines to draft patch sets |
| 1236 | + |
| 1237 | Gerrit already avoids adding reviewers from footer lines when a new |
| 1238 | draft 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 | + |
| 1244 | If there is a magic branch visible during push, just hide it from the |
| 1245 | client. Administrators can clear these by accessing the repository |
| 1246 | directly. |
| 1247 | |
| 1248 | * Prevent from deleting `refs/changes/` |
| 1249 | + |
| 1250 | Everything under `refs/changes/` should be protected by Gerrit, users |
| 1251 | shouldn't be able to delete a particular patch set or a whole change |
| 1252 | from the review process. |
| 1253 | |
| 1254 | * Update description file in Git |
| 1255 | + |
| 1256 | When writing the description to `project.config`, it is also necessary |
| 1257 | to write it to the description file in the repository so the same text |
| 1258 | is visible in CGit or GitWeb. |
| 1259 | |
| 1260 | * Write valid reflog for `HEAD` when creating the `All-Projects` |
| 1261 | project |
| 1262 | + |
| 1263 | When the `All-Projects` project is created during the schema |
| 1264 | initialization, `HEAD` is set to point to the `refs/meta/config` |
| 1265 | branch. When `HEAD` is updated an entry into the reflog is written. |
| 1266 | This ref log entry should contain the ID of the initial commit as |
| 1267 | target, 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 | + |
| 1272 | On the second push of the same commit to `refs/for/<branch name>`, Gerrit |
| 1273 | returns 'no new changes'. |
| 1274 | + |
| 1275 | However 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 | + |
| 1280 | Route not just `/p/` but any Git access to the same thread pool as the |
| 1281 | SSH server is using, allowing all requests to compete fairly for |
| 1282 | resources. |
| 1283 | |
| 1284 | * Fix auto closing of changes on direct push |
| 1285 | + |
| 1286 | When a commit was directly pushed into a repository (bypassing code |
| 1287 | review) and this commit had a Change-Id in its commit message then the |
| 1288 | corresponding 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 | + |
| 1292 | If a submitted change failed to merge because the destination branch |
| 1293 | didn't exist anymore, it stayed in state 'Submitted, Merge Pending'. |
| 1294 | This meant Gerrit was re-attempting to merge this change (e.g. on |
| 1295 | startup), but this didn't make sense. Either the branch did still not |
| 1296 | exist (then there was no need to try merging it) or a new branch with |
| 1297 | the old name was created (then it was questionable if the change should |
| 1298 | still be merged into this branch). This is why it's better to set the |
| 1299 | change back to the 'Review in Progress' state and update it with a |
| 1300 | message saying that it couldn't be merged because the destination |
| 1301 | branch doesn't exist anymore. |
| 1302 | + |
| 1303 | In addition Gerrit was writing an error into the error log if a change |
David Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 1304 | couldn't be merged because the destination branch was missing. |
Edwin Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 1305 | That 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 | + |
| 1312 | Creating a new Gerrit project was firing the GitReferenceUpdated event |
| 1313 | for the `refs/meta/config` branch two times. |
| 1314 | |
| 1315 | * Fix error log message in ReceiveCommits |
| 1316 | + |
| 1317 | When the creation of one or more references failed ReceiveCommits failed |
| 1318 | with 'internal server error' and wrote the following error log: |
| 1319 | "Only X of Y new change refs created in xxx; aborting" |
| 1320 | The printed value for Y could be wrong since it didn't include the |
| 1321 | replaceCount. As a result, a confusing message like |
| 1322 | "Only 0 of 0 new change refs created in xxx; aborting" |
| 1323 | could appear in the error log. |
Dave Borowitz | 1bec65a | 2013-03-13 10:59:01 -0700 | [diff] [blame] | 1324 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1325 | === SSH |
David Pursehouse | 50abd45 | 2013-03-05 15:43:34 +0900 | [diff] [blame] | 1326 | * `review --restore` allows a review score to be added on the restored change. |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 1327 | |
David Pursehouse | 50abd45 | 2013-03-05 15:43:34 +0900 | [diff] [blame] | 1328 | * link:https://code.google.com/p/gerrit/issues/detail?id=1721[Issue 1721]: |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 1329 | `review --message` only adds the message once. |
David Pursehouse | 50abd45 | 2013-03-05 15:43:34 +0900 | [diff] [blame] | 1330 | |
David Pursehouse | b58a18d | 2013-03-06 15:37:03 +0900 | [diff] [blame] | 1331 | * `ls-groups` prints "N/A" if the group's name is not set. |
David Pursehouse | dc018df | 2013-03-06 15:37:24 +0900 | [diff] [blame] | 1332 | |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 1333 | * `set-project-parent --children-of`: Fix getting parent for level 1 projects |
| 1334 | + |
| 1335 | For direct child projects of the `All-Projects` project the name of the |
| 1336 | parent project was incorrectly retrieved if the parent name was not |
| 1337 | explicitly stored as `All-Projects` in the project.config file. |
| 1338 | |
Edwin Kempin | d73a845 | 2013-03-27 11:34:16 +0100 | [diff] [blame] | 1339 | * Fix NPE when abandoning change with invalid author |
| 1340 | + |
| 1341 | If the author of a change isn't known to Gerrit (pushed with |
| 1342 | `Forge Author` permissions), trying to abandon that change over SSH |
| 1343 | failed with an NPE. |
| 1344 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 1345 | * Fix setting account's full name via ssh. |
| 1346 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1347 | === Query |
Edwin Kempin | bf22ad5 | 2013-03-26 10:26:12 +0100 | [diff] [blame] | 1348 | * 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' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1356 | === Plugins |
Edwin Kempin | 25b5b00 | 2013-03-27 10:01:02 +0100 | [diff] [blame] | 1357 | * Skip disabled plugins on rescan |
| 1358 | + |
| 1359 | In a background thread Gerrit periodically scans for new or changed |
| 1360 | plugins. On every such a rescan disabled plugins were loaded and a new |
| 1361 | copy 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 | + |
| 1365 | Loaded plugin jars are copied to the review site's tmp folder to support |
| 1366 | hot updates of the plugin jars in the plugins folder. On Gerrit shutdown |
| 1367 | these copies of the jar files should be cleaned up. For this purpose a |
| 1368 | CleanupHandle is created, but the CleanupHandle wasn't enqueued in the |
| 1369 | cleanupQueue which is why cleanup on Gerrit shutdown didn't happen. |
| 1370 | |
| 1371 | * Reattempt deletion of plugin jars from tmp folder on JVM termination |
| 1372 | + |
| 1373 | Loaded plugin jars are copied to the review site's tmp folder to support |
| 1374 | hot updates of the plugin jars in the plugins folder. On Gerrit shutdown |
| 1375 | these copies of the jar files should be cleaned up. For this purpose a |
| 1376 | CleanupHandle is created. The deletion of the tmp file in the |
| 1377 | CleanupHandle can fail although the jar file was closed. In this case |
| 1378 | reattempt the deletion on termination of the virtual machine. This |
| 1379 | normally succeeds. |
| 1380 | |
| 1381 | * Fix unloading of plugins |
| 1382 | + |
| 1383 | When two plugins, say pluginA, and pluginB had been loaded, and pluginA |
| 1384 | was removed from $sitePath/plugins, pluginA got stopped, and a cleaning |
| 1385 | run was ordered. But this cleaning run cleaned both plugins and both |
| 1386 | plugins had their jars removed. This left pluginB visible to Gerrit |
| 1387 | although it's backing jar was gone. Upon calling not yet initialized |
| 1388 | parts of pluginB (e.g.: viewing not yet viewed Documentation pages of |
| 1389 | pluginB), 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 | + |
| 1399 | ServerInformation class was already bound, therefore it shouldn't be |
| 1400 | bound a second time for Gerrit extensions. |
| 1401 | |
| 1402 | * Do not call onModuleLoad() second time |
| 1403 | + |
| 1404 | onModuleLoad() method is automatically called by GWT framework. Calling |
| 1405 | it once again in PluginGenerator caused double plugin initialization. |
| 1406 | |
| 1407 | * Require `Administrate Server` capability to GET /plugins/ |
| 1408 | + |
| 1409 | Listing plugins requires being an administrator. This was missed in the |
| 1410 | REST API. |
| 1411 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 1412 | * 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' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1416 | === Email |
David Pursehouse | dc018df | 2013-03-06 15:37:24 +0900 | [diff] [blame] | 1417 | * 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 Kempin | e742e91 | 2013-03-26 14:38:12 +0100 | [diff] [blame] | 1420 | * The empty diff output from an "octopus merge" is now explained in change notification emails. |
David Pursehouse | dc018df | 2013-03-06 15:37:24 +0900 | [diff] [blame] | 1421 | * link:https://code.google.com/p/gerrit/issues/detail?id=1480[Issue 1480]: |
| 1422 | Proper 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]: |
| 1425 | Review comments are sorted before being added to notification emails. |
| 1426 | |
Edwin Kempin | e742e91 | 2013-03-26 14:38:12 +0100 | [diff] [blame] | 1427 | * Fix watching of 'All Comments' on `All-Projects` |
| 1428 | + |
| 1429 | If a user is watching 'All Comments' on `All-Projects` this should |
| 1430 | apply to all projects. |
| 1431 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1432 | === Misc |
Edwin Kempin | 218f558 | 2013-03-27 16:35:38 +0100 | [diff] [blame] | 1433 | * 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 | + |
| 1440 | This spammed the log when using OpenID, for each and every login. |
| 1441 | |
| 1442 | * Remove `mysql_nextval` script |
| 1443 | + |
| 1444 | This function does not work on binary logging enabled servers, |
| 1445 | as MySQL is unable to execute the function on slaves without |
| 1446 | causing possible corruption. Drop the function since it was only |
| 1447 | created 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 | + |
| 1452 | Relative submodules do not start with `/`. Instead they start with |
| 1453 | `../`. Fix the Submodule Subscriptions engine to recognize relative |
| 1454 | submodules. |
| 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 | + |
| 1461 | If the project absolute path had any whitespace, the commit |
| 1462 | hook failed to complete because a script variable was not |
| 1463 | enclosed 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 | + |
| 1469 | It's possible that the submitter is null. Add a check for this |
| 1470 | before 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 | + |
| 1479 | GitWeb Caching was not working when its cgi file was executed from |
| 1480 | outside. 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 | + |
| 1488 | When asking for the known groups a user belongs to they may belong |
| 1489 | to an internal group by way of membership in a non-internal group, |
| 1490 | such as LDAP. Cache in memory the complete list of any non-internal |
| 1491 | group UUIDs used as members of an internal group. These must get |
| 1492 | checked for membership before completing the known group data from |
| 1493 | the 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 | + |
| 1512 | Setting `maxAge` to a small value can result in the browser endlessly |
| 1513 | redirecting trying to setup a new valid session. Warn administrators |
| 1514 | that 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 | + |
| 1521 | DefaultCacheFactory already uses SECONDS as default time unit for |
| 1522 | `cache.*.maxAge`. |
| 1523 | + |
| 1524 | Update the described default time unit for `cache.*.maxAge` in the |
| 1525 | documentation. |
| 1526 | + |
| 1527 | Administrators may need to update their configuration to for the new |
| 1528 | default 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 Pursehouse | f3af82f | 2013-04-26 11:41:55 +0900 | [diff] [blame] | 1539 | ** 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 | + |
| 1545 | If only one of the patch IDs is empty, it should not be considered |
| 1546 | a trivial rebase. |
| 1547 | |
Edwin Kempin | 218f558 | 2013-03-27 16:35:38 +0100 | [diff] [blame] | 1548 | ** Use plain python instead of python2.6 |
| 1549 | + |
| 1550 | Windows installation only has python.exe |
| 1551 | |
| 1552 | * Correct MIME type of `favicon.ico` reference |
| 1553 | + |
| 1554 | This is not a GIF, it is an "MS Windows icon resource". |
| 1555 | Some browsers may skip the image if the type is wrong. |
| 1556 | |
| 1557 | * Use `<link rel="shortcut icon">` for `favicon.ico` reference |
| 1558 | + |
| 1559 | IE looks for a two-word "shortcut icon" relationship. Other browsers |
| 1560 | interpret this as two relationships, one of which is "icon", so they |
| 1561 | can handle this syntax as well. |
| 1562 | + |
| 1563 | See: |
| 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 | + |
| 1570 | It is wrong to include the servlet API in a WAR's `WEB-INF/lib` |
| 1571 | directory. This confuses some servlet containers who refuse to |
| 1572 | load the Gerrit WAR. Instead package the Jetty runtime and the |
| 1573 | servlet 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 Pursehouse | 2062735 | 2013-06-23 20:49:32 +0900 | [diff] [blame] | 1576 | Verify session matches container authentication header |
Edwin Kempin | 218f558 | 2013-03-27 16:35:38 +0100 | [diff] [blame] | 1577 | + |
| 1578 | If the user alters their identity in the container invalidate |
| 1579 | the 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 | + |
| 1584 | Servers that run with auth.type = HTTP or HTTP_LDAP are unable to |
| 1585 | use the web UI because the Authorization code supplied by the UI |
| 1586 | overrides the browser's native `Authorization` header and causes the |
| 1587 | request to be blocked at the HTTP reverse proxy, before Gerrit even |
| 1588 | sees the request. |
| 1589 | + |
| 1590 | Instead insert a unique token into `X-Gerrit-Auth`, leaving the HTTP |
| 1591 | standard `Authorization` header unspecified and available for use in |
| 1592 | HTTP reverse proxies. |
| 1593 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1594 | == Documentation |
David Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1595 | |
David Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 1596 | The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/index.html[ |
| 1597 | documentation index] is restructured to make it easier to use for different kinds of |
| 1598 | users. |
| 1599 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1600 | === User Documentation |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1601 | * 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 Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1603 | |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1604 | * 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 | + |
| 1608 | Add examples for GET requests to the REST API documentation on which |
| 1609 | the user can click to fire the requests. This allows users to |
| 1610 | immediately 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 Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1627 | * Improved the push tag examples in the access control documentation. |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1628 | |
David Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1629 | * Improved documentation of error messages related to commit message footer content. |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1630 | |
| 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 Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1648 | * link:https://code.google.com/p/gerrit/issues/detail?id=1602[Issue 1602]: |
| 1649 | Corrected references to `refs/changes` in the access control documentation. |
| 1650 | |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1651 | * 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 | + |
| 1661 | This 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 | + |
| 1678 | It is better to first define the JNDI data source in the application |
| 1679 | server and then deploy Gerrit than opposite. This should avoid errors |
| 1680 | like "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 Pursehouse | f59de42 | 2013-05-20 16:14:38 +0900 | [diff] [blame] | 1686 | * 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 Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1703 | * 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 Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1708 | * Various minor grammatical and formatting corrections. |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1709 | * Fix external links in 2.0.21 and 2.0.24 release notes |
David Ostrovsky | 681b1d4 | 2013-03-03 22:42:38 +0100 | [diff] [blame] | 1710 | * Manual pages can be optionally created/installed for core gerrit ssh commands. |
David Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1711 | |
Yuxuan 'fishy' Wang | 4f5ad9d | 2016-05-03 16:18:58 -0700 | [diff] [blame] | 1712 | === Developer And Maintainer Documentation |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1713 | * 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 Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1715 | |
Edwin Kempin | 60ab853 | 2013-03-27 14:33:46 +0100 | [diff] [blame] | 1716 | * 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 Pursehouse | 1a3f9cc | 2013-02-28 18:12:28 +0900 | [diff] [blame] | 1737 | * The release notes are now made when a release is created by running the `tools/release.sh` script. |
| 1738 | |