Release notes for Gerrit 2.4
============================

Gerrit 2.4 is now available:

link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.4.war[http://code.google.com/p/gerrit/downloads/detail?name=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.

* 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 intuive 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 containting 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 behaviour when replicating refs/meta/config

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
