|  | = Release notes for Gerrit 2.4 | 
|  |  | 
|  | Gerrit 2.4 is now available: | 
|  |  | 
|  | link:https://www.gerritcodereview.com/download/gerrit-2.4.war[https://www.gerritcodereview.com/download/gerrit-2.4.war] | 
|  |  | 
|  | == Schema Change | 
|  | *WARNING:* This release contains schema changes.  To upgrade: | 
|  | ---- | 
|  | java -jar gerrit.war init -d site_path | 
|  | ---- | 
|  |  | 
|  | *WARNING:* Upgrading to 2.4.x requires the server be first upgraded to 2.1.7 (or | 
|  | a later 2.1.x version), and then to 2.4.x.  If you are upgrading from 2.2.x.x or | 
|  | newer, you may ignore this warning and upgrade directly to 2.4.x. | 
|  |  | 
|  | == New Features | 
|  |  | 
|  | === Security | 
|  |  | 
|  | * Restrict visibility to arbitrary user dashboards | 
|  | + | 
|  | Administrators have some expectation when using the 'suggest.accounts' | 
|  | visibility restriction feature that users cannot get the names or | 
|  | email addresses for arbitrary accounts. In fact, because account IDs | 
|  | are sequential, it would be easy for an adversary to get personal | 
|  | information of all users on the server by requesting every user's | 
|  | dashboard. | 
|  | + | 
|  | This includes changing the meaning of the 'suggest.accounts' config | 
|  | option to be a boolean indicating whether account suggestion should | 
|  | happen at all, which is now orthogonal to the account visibility | 
|  | restriction policy. We still recognize the old values for | 
|  | 'suggest.accounts', with the slight behavior change that | 
|  | 'suggest.accounts=OFF' now means that users cannot access the dashboards | 
|  | of any other users. Administrators who do not want this behavior can | 
|  | update their configuration. | 
|  |  | 
|  | * Indicate that 'not found' may actually be a permission issue | 
|  |  | 
|  | === Web | 
|  |  | 
|  | * Add user preference to mark files reviewed automatically or manually | 
|  | + | 
|  | Add a checkbox to the preferences header on the diff | 
|  | screen which allows a user to specify whether they | 
|  | want manual-reviewing enabled or disabled.  Previously, | 
|  | every file was auto marked reviewed when a user first | 
|  | displayed it.  The new manual mode prevents this auto | 
|  | marking and only marks a file reviewed when the user | 
|  | explicitly clicks on the reviewed checkbox. | 
|  |  | 
|  | * Use 'Auto Merge' for merge commit's base comparison | 
|  | + | 
|  | When reviewing a merge commit, the old wording in the version history dropdown | 
|  | of 'Base' doesn't really match Gerrit's behavior.  Updating this to use | 
|  | 'Auto Merge' as suggested by Shawn Pearce on IRC. | 
|  |  | 
|  | * issue 1035 Add rebase button to the change screen | 
|  | + | 
|  | This change adds a rebase button along with the rest of | 
|  | the action buttons in the change page. When pressing the | 
|  | button, the most recent patch set will be rebased onto | 
|  | the tip of the destination branch or the latest patchset | 
|  | of the change we depend upon. A new patch set containing | 
|  | the rebased commit will be produced and added to the | 
|  | change. | 
|  | + | 
|  | Rebasing of a change in web UI is restricted to change owner, submitter or | 
|  | those with the (new) 'rebase' permission. | 
|  |  | 
|  | * Add a new permission 'rebase' to permit rebasing changes in the web UI | 
|  |  | 
|  | * Make a user's dashboard visible if any of the changes are visible to the | 
|  | current user. | 
|  |  | 
|  | * Change 'Loading ...' to say 'Working ...' as, often, there is more going on | 
|  | than just loading a response. | 
|  |  | 
|  | === Performance | 
|  |  | 
|  | * Asynchronously send email so it does not block the UI | 
|  | * Optimize queries for open/merged changes by project + branch | 
|  |  | 
|  | === Git | 
|  |  | 
|  | * Implement a multi-sub-task progress monitor for ReceiveCommits | 
|  |  | 
|  | * Close corresponding change when pushing to 'refs/heads/*' | 
|  | + | 
|  | Gerrit would not close the open changes with matching change-ids, | 
|  | when the user pushes commits directly to 'refs/heads/*'. | 
|  | + | 
|  | This issue could be triggered for two reasons: | 
|  |  | 
|  | . It is triggered when Gerrit detects no changes between the | 
|  | pushed commits and the current patchset on the open changes. This | 
|  | patch make sure that the matching open change is always closed when | 
|  | pushing to 'refs/heads/*', even if no visible changes is detected. | 
|  |  | 
|  | . The same commit exists on another branch than the destination | 
|  | branch. This could trick gerrit into just "re-closing" the wrong | 
|  | change. | 
|  |  | 
|  | * Run ReceiveCommits in a shared thread pool | 
|  | + | 
|  | Since the work to ReceiveCommits may take a long, potentially unbounded | 
|  | amount of time, we would like to have it run in the background so it | 
|  | can be monitored for timeouts and cancelled, and have stalls reported | 
|  | to the user from the main thread. | 
|  |  | 
|  | === Search | 
|  |  | 
|  | * Add the '--dependencies' option to the 'query' command. | 
|  | + | 
|  | This option includes information about patch sets which depend on, or are | 
|  | needed by, each patch set. | 
|  |  | 
|  | * Branch Operator: Support full branch names | 
|  | + | 
|  | The search operator for branches required the provided value to be the | 
|  | short branch name that is shown in the web interface (without the | 
|  | 'refs/heads/' prefix). Change the branch operator so that it also | 
|  | supports full branch names as value. | 
|  | + | 
|  | It is intuitive that searching with 'branch:master' and searching with | 
|  | 'branch:refs/for/master' deliver the same result. So far | 
|  | 'branch:refs/for/master' was the same as searching with | 
|  | 'refs:refs/heads/refs/heads/master' which is unexpected for most users. | 
|  |  | 
|  | * Add comment inclusion via '&comments=true' over HTTP | 
|  | + | 
|  | With this change, we can fetch the comments on a patchset by sending a | 
|  | request to 'https://site/query?comments=true' | 
|  |  | 
|  | === Access Rights | 
|  |  | 
|  | * Added the 'emailReviewers' as a global capability. | 
|  | + | 
|  | This replaces the 'emailOnlyAuthors' flag of account groups. | 
|  |  | 
|  | === Dev | 
|  |  | 
|  | * issue 1272 Add scripts to create release notes from git log | 
|  | + | 
|  | These script generates a list of commits from git log between two given commits | 
|  | and outputs the asciidoc format containing list of commits subject and body. | 
|  |  | 
|  | * Update URL for m2eclipse | 
|  | + | 
|  | The project is now under the Eclipse Foundation umbrella. | 
|  |  | 
|  | * Add missing ignore for m2e prefs in gerrit-ehcache | 
|  |  | 
|  | * Add '--issues' and '--issue_numbers' options to the 'gitlog2asciidoc.py' | 
|  |  | 
|  | === Miscellaneous | 
|  |  | 
|  | * Remove perl from 'commit-msg' hook | 
|  | + | 
|  | Removing perl from the commit-msg hook reduces the dependencies | 
|  | gerrit imposes on its users. | 
|  |  | 
|  | * updating contrib 'trivial_rebase.py' for 2.2.2.1 | 
|  |  | 
|  | == Upgrades | 
|  |  | 
|  | * Updated to Guice 3.0. | 
|  | * Updated to gwtorm 1.4. | 
|  | * Update JGit to 1.3.0.201202151440-r.75-gff13648 | 
|  | * Update to gwtjsonrpc 1.3 | 
|  | + | 
|  | The change also shrinks the built WAR from 38M to 23M | 
|  | by excluding the now unnecessary GWT server code. | 
|  |  | 
|  | == Bug Fixes | 
|  |  | 
|  | * issue 904 Users who starred a change should receive all the emails about a change. | 
|  |  | 
|  | * Fix: 'Diff All Side-by-Side' and 'Diff All Unified' buttons | 
|  | + | 
|  | When pressing the 'Diff All Side-by-Side' or | 
|  | 'Diff All Unified' button on the change screen, the | 
|  | opened browser windows/tabs shows diffs using "Base" | 
|  | as old version and the latest one as active patch set, | 
|  | regardless what has been set using the | 
|  | "Old Version History:" drop down menu and what is | 
|  | currently active patch set. | 
|  | + | 
|  | Gerrit doesn't remember the base patch set in the URL, | 
|  | making it impossible to copy-and-paste the URL to | 
|  | co-workers to show them the same diff a user is | 
|  | looking at. | 
|  | + | 
|  | This change fixes this behavior to make sure that | 
|  | the opened new browser windows shows diffs using the | 
|  | correct old patch set and active patch set. | 
|  |  | 
|  | * Fix NPEs looking up groups by UUID in GroupCache | 
|  |  | 
|  | * Fix default 'receive.timeout' | 
|  | + | 
|  | This should be in milliseconds, not seconds. Set the default to be | 
|  | 2 minutes in milliseconds and update the documentation to reflect | 
|  | that milliseconds are the default unit of time used here. | 
|  |  | 
|  | * Fix 'development_become_any_account' redirects | 
|  | * issue 1299 Allow configuration of optional pattern for gitweb file history link | 
|  | * Use servlet context path during logout | 
|  |  | 
|  | * issue 1353 Fix case check for project name so that symlinks work again | 
|  | * Fix merging of access sections | 
|  | * Fix inconsistent behavior when replicating refs/meta/config | 
|  | * Fix duplicated results on status:open project:P branch:B | 
|  |  | 
|  | == Documentation | 
|  |  | 
|  | === Access Rights | 
|  | * Capabilities introduced | 
|  | * Kill and priority capabilities | 
|  | * Administrate server capability | 
|  | * Create account capability | 
|  | * Create group and project capability | 
|  | * Flush caches capability | 
|  | * Capability replication and view caches | 
|  | * Capability view conn. & queue | 
|  | * Example roles introduced | 
|  | * Developer example role | 
|  | * CI system example role | 
|  | * Integrator example role | 
|  | * Project owner example role | 
|  | * Administrator example role | 
|  |  | 
|  | === Miscellaneous | 
|  | * User upload documentation: Replace changes | 
|  | * Add visible-to-all flag in the documentation for cmd-create-group | 
|  | * Add a contributing guideline for annotations | 
|  | * Add missing header for suggest.accounts documentation | 
|  | * Fix anchors for description of gitweb config parameters | 
|  | * Add missing section name to config-gerrit documentation | 
|  | * Fix documentation of ls-projects |