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
