blob: 6f10c0b8b219f479423cc124a554b353d9800a30 [file] [log] [blame]
Sasa Zivkovd39763d2012-04-23 15:52:14 +02001Release notes for Gerrit 2.4
2============================
3
4Gerrit 2.4 is now available:
5
6link: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]
7
8Schema Change
9-------------
10*WARNING:* This release contains schema changes. To upgrade:
11----
12 java -jar gerrit.war init -d site_path
13----
14
15*WARNING:* Upgrading to 2.4.x requires the server be first upgraded to 2.1.7 (or
16a later 2.1.x version), and then to 2.4.x. If you are upgrading from 2.2.x.x or
17newer, you may ignore this warning and upgrade directly to 2.4.x.
18
19New Features
20------------
21
22Security
23~~~~~~~~
24
25* Restrict visibility to arbitrary user dashboards
26+
27Administrators have some expectation when using the 'suggest.accounts'
28visibility restriction feature that users cannot get the names or
29email addresses for arbitrary accounts. In fact, because account IDs
30are sequential, it would be easy for an adversary to get personal
31information of all users on the server by requesting every user's
32dashboard.
33+
34This includes changing the meaning of the 'suggest.accounts' config
35option to be a boolean indicating whether account suggestion should
36happen at all, which is now orthogonal to the account visibility
37restriction policy. We still recognize the old values for
38'suggest.accounts', with the slight behavior change that
39'suggest.accounts=OFF' now means that users cannot access the dashboards
40of any other users. Administrators who do not want this behavior can
41update their configuration.
42
43* Indicate that 'not found' may actually be a permission issue
44
45Web
46~~~
47
48* Add user preference to mark files reviewed automatically or manually
49+
50Add a checkbox to the preferences header on the diff
51screen which allows a user to specify whether they
52want manual-reviewing enabled or disabled. Previously,
53every file was auto marked reviewed when a user first
54displayed it. The new manual mode prevents this auto
55marking and only marks a file reviewed when the user
56explicitly clicks on the reviewed checkbox.
57
58* Use 'Auto Merge' for merge commit's base comparison
59+
60When reviewing a merge commit, the old wording in the version history dropdown
61of 'Base' doesn't really match Gerrit's behavior. Updating this to use
62'Auto Merge' as suggested by Shawn Pearce on IRC.
63
64* issue 1035 Add rebase button to the change screen
65+
66This change adds a rebase button along with the rest of
67the action buttons in the change page. When pressing the
68button, the most recent patch set will be rebased onto
69the tip of the destination branch or the latest patchset
70of the change we depend upon. A new patch set containing
71the rebased commit will be produced and added to the
72change.
Sasa Zivkov63a0fcc2012-05-23 13:10:24 +020073+
74Rebasing of a change in web UI is restricted to change owner, submitter or
75those with the (new) 'rebase' permission.
76
77* Add a new permission 'rebase' to permit rebasing changes in the web UI
Sasa Zivkovd39763d2012-04-23 15:52:14 +020078
79* Make a user's dashboard visible if any of the changes are visible to the
80current user.
81
82* Change 'Loading ...' to say 'Working ...' as, often, there is more going on
83than just loading a response.
84
85Performance
86~~~~~~~~~~~
87
88* Asynchronously send email so it does not block the UI
89* Optimize queries for open/merged changes by project + branch
90
91Git
92~~~
93
94* Implement a multi-sub-task progress monitor for ReceiveCommits
95
96* Close corresponding change when pushing to 'refs/heads/*'
97+
98Gerrit would not close the open changes with matching change-ids,
99when the user pushes commits directly to 'refs/heads/*'.
100+
101This issue could be triggered for two reasons:
102
103. It is triggered when Gerrit detects no changes between the
104pushed commits and the current patchset on the open changes. This
105patch make sure that the matching open change is always closed when
106pushing to 'refs/heads/*', even if no visible changes is detected.
107
108. The same commit exists on another branch than the destination
109branch. This could trick gerrit into just "re-closing" the wrong
110change.
111
112* Run ReceiveCommits in a shared thread pool
113+
114Since the work to ReceiveCommits may take a long, potentially unbounded
115amount of time, we would like to have it run in the background so it
116can be monitored for timeouts and cancelled, and have stalls reported
117to the user from the main thread.
118
119Search
120~~~~~~
121
122* Add the '--dependencies' option to the 'query' command.
123+
124This option includes information about patch sets which depend on, or are
125needed by, each patch set.
126
127* Branch Operator: Support full branch names
128+
129The search operator for branches required the provided value to be the
130short branch name that is shown in the web interface (without the
131'refs/heads/' prefix). Change the branch operator so that it also
132supports full branch names as value.
133+
David Pursehouse4d7ac772013-06-25 17:14:30 +0900134It is intuitive that searching with 'branch:master' and searching with
Sasa Zivkovd39763d2012-04-23 15:52:14 +0200135'branch:refs/for/master' deliver the same result. So far
136'branch:refs/for/master' was the same as searching with
137'refs:refs/heads/refs/heads/master' which is unexpected for most users.
138
139* Add comment inclusion via '&comments=true' over HTTP
140+
141With this change, we can fetch the comments on a patchset by sending a
142request to 'https://site/query?comments=true'
143
144Access Rights
145~~~~~~~~~~~~~
146
147* Added the 'emailReviewers' as a global capability.
148+
149This replaces the 'emailOnlyAuthors' flag of account groups.
150
151Dev
152~~~
153
154* issue 1272 Add scripts to create release notes from git log
155+
156These script generates a list of commits from git log between two given commits
David Pursehouse4d7ac772013-06-25 17:14:30 +0900157and outputs the asciidoc format containing list of commits subject and body.
Sasa Zivkovd39763d2012-04-23 15:52:14 +0200158
159* Update URL for m2eclipse
160+
161The project is now under the Eclipse Foundation umbrella.
162
163* Add missing ignore for m2e prefs in gerrit-ehcache
164
165* Add '--issues' and '--issue_numbers' options to the 'gitlog2asciidoc.py'
166
167Miscellaneous
168~~~~~~~~~~~~~
169
170* Remove perl from 'commit-msg' hook
171+
172Removing perl from the commit-msg hook reduces the dependencies
173gerrit imposes on its users.
174
175* updating contrib 'trivial_rebase.py' for 2.2.2.1
176
177Upgrades
178--------
179
180* Updated to Guice 3.0.
181* Updated to gwtorm 1.4.
182* Update JGit to 1.3.0.201202151440-r.75-gff13648
183* Update to gwtjsonrpc 1.3
184+
185The change also shrinks the built WAR from 38M to 23M
186by excluding the now unnecessary GWT server code.
187
188Bug Fixes
189---------
190
191* issue 904 Users who starred a change should receive all the emails about a change.
192
193* Fix: 'Diff All Side-by-Side' and 'Diff All Unified' buttons
194+
195When pressing the 'Diff All Side-by-Side' or
196'Diff All Unified' button on the change screen, the
197opened browser windows/tabs shows diffs using "Base"
198as old version and the latest one as active patch set,
199regardless what has been set using the
200"Old Version History:" drop down menu and what is
201currently active patch set.
202+
203Gerrit doesn't remember the base patch set in the URL,
204making it impossible to copy-and-paste the URL to
205co-workers to show them the same diff a user is
206looking at.
207+
208This change fixes this behavior to make sure that
209the opened new browser windows shows diffs using the
210correct old patch set and active patch set.
211
212* Fix NPEs looking up groups by UUID in GroupCache
213
214* Fix default 'receive.timeout'
215+
216This should be in milliseconds, not seconds. Set the default to be
2172 minutes in milliseconds and update the documentation to reflect
218that milliseconds are the default unit of time used here.
219
220* Fix 'development_become_any_account' redirects
221* issue 1299 Allow configuration of optional pattern for gitweb file history link
222* Use servlet context path during logout
223
Sasa Zivkovd35f3e82012-05-09 03:27:12 +0200224* issue 1353 Fix case check for project name so that symlinks work again
Sasa Zivkovc6ceefd2012-05-15 12:42:07 +0200225* Fix merging of access sections
David Pursehouse4d7ac772013-06-25 17:14:30 +0900226* Fix inconsistent behavior when replicating refs/meta/config
Sasa Zivkov3e8255e2012-05-22 16:56:31 +0200227* Fix duplicated results on status:open project:P branch:B
Sasa Zivkovd35f3e82012-05-09 03:27:12 +0200228
Sasa Zivkovd39763d2012-04-23 15:52:14 +0200229Documentation
230-------------
231
232Access Rights
233~~~~~~~~~~~~~
234* Capabilities introduced
235* Kill and priority capabilities
236* Administrate server capability
237* Create account capability
238* Create group and project capability
239* Flush caches capability
240* Capability replication and view caches
241* Capability view conn. & queue
242* Example roles introduced
243* Developer example role
244* CI system example role
245* Integrator example role
246* Project owner example role
247* Administrator example role
248
249Miscellaneous
250~~~~~~~~~~~~~
251* User upload documentation: Replace changes
252* Add visible-to-all flag in the documentation for cmd-create-group
253* Add a contributing guideline for annotations
254* Add missing header for suggest.accounts documentation
255* Fix anchors for description of gitweb config parameters
256* Add missing section name to config-gerrit documentation
257* Fix documentation of ls-projects