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.
+
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 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
* 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
