blob: 0e1155005fb64e95350046d8b0bf66704d4020e9 [file] [log] [blame]
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