6d7ebc6318
Change-Id: Ibd0aa9a14f533771986cc1d43a712716457d424c
343 lines
14 KiB
Plaintext
343 lines
14 KiB
Plaintext
Release notes for Gerrit 2.0.21
|
|
===============================
|
|
|
|
Gerrit 2.0.21 is now available in the usual location:
|
|
|
|
link:https://www.gerritcodereview.com/download/index.html[https://www.gerritcodereview.com/download/index.html]
|
|
|
|
|
|
Schema Change
|
|
-------------
|
|
|
|
*WARNING: This version contains a schema change* (since 2.0.19)
|
|
|
|
* The schema change may be difficult to undo once applied.
|
|
+
|
|
Downgrading could be very difficult once the upgrade has been
|
|
started. Going back to 2.0.20 may not be possible.
|
|
|
|
* Do not run the schema change while the server is running.
|
|
+
|
|
This upgrade changes the primary key of a table, an operation
|
|
which shouldn't occur while end-users are able to make
|
|
modifications to the database. I _strongly_ suggest a full
|
|
shutdown, schema upgrade, then startup approach for this release.
|
|
|
|
* There may be some duplicate keys
|
|
+
|
|
This upgrade removes a column from the primary key of a table,
|
|
which may result in duplicates being found. You can search
|
|
for these duplicates before updating:
|
|
{{{
|
|
SELECT account_id,external_id FROM account_external_ids e
|
|
WHERE e.external_id IN (SELECT external_id
|
|
FROM account_external_ids
|
|
GROUP BY external_id
|
|
HAVING COUNT(*) > 1);
|
|
}}}
|
|
Resolving duplicates is left up to the administrator, in
|
|
general though you will probably want to remove one of the
|
|
duplicate records. E.g. in one case I had 3 users with the
|
|
same mailing list email address registered. I just deleted
|
|
those and sent private email asking the users to use their
|
|
personal/work address instead of a mailing list.
|
|
Apply the database specific schema script:
|
|
----
|
|
java -jar gerrit.war --cat sql/upgrade017_018_postgres.sql | psql reviewdb
|
|
java -jar gerrit.war --cat sql/upgrade017_018_mysql.sql | mysql reviewdb
|
|
----
|
|
|
|
|
|
Important Notices
|
|
-----------------
|
|
|
|
* Prior User Sessions
|
|
+
|
|
The cookie used to identify a signed-in user has been changed.
|
|
Again. All users will be automatically signed-out during
|
|
this upgrade, and will need to sign-in again after the upgrade
|
|
is complete. The new schema has more room for extensions, so
|
|
this might be the last time we will need to invalidate sessions.
|
|
|
|
* Harmless error on first startup
|
|
+
|
|
Starting 2.0.21 on an instance which previously had the diff
|
|
cache stored on disk will result in the following non-fatal error
|
|
in the server logs during the first launch of .21 on that system:
|
|
----
|
|
2009-09-02 18:50:07,446::INFO : com.google.gerrit.server.cache.CachePool - Enabling disk cache /home/gerrit2/android_codereview/disk_cache
|
|
Sep 2, 2009 6:50:07 PM net.sf.ehcache.store.DiskStore readIndex
|
|
SEVERE: Class loading problem reading index. Creating new index. Initial cause was com.google.gerrit.server.patch.DiffCacheKey
|
|
java.lang.ClassNotFoundException: com.google.gerrit.server.patch.DiffCacheKey
|
|
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
|
|
at java.security.AccessController.doPrivileged(Native Method)
|
|
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
|
|
...
|
|
----
|
|
This error can be safely ignored. It is caused by a change
|
|
in the diff cache's on disk schema, invalidating all existing
|
|
cache entries.
|
|
|
|
* Significantly larger "diff" cache
|
|
+
|
|
The diff cache schema change noted above changed the element
|
|
stored in the cache from per-file to per-patchset. That is,
|
|
a patch set which modifies 500 files will now occupy only 1
|
|
element in the diff cache, rather than 500 distinct elements.
|
|
Accordingly, the default `cache.diff.memoryLimit` setting has
|
|
been reduced to 128.
|
|
|
|
* Removed configuration settings
|
|
+
|
|
The following configuration settings are no longer honored:
|
|
`cache.maxAge`, `cache.memoryLimit`, `cache.diskLimit`, and
|
|
`cache.diskBuffer`. These settings may now only be set on a
|
|
per-cache basis (e.g. `cache.diff.maxAge`).
|
|
|
|
* Connection pool recommendation: Apache Commons DBCP
|
|
+
|
|
All of the servers I run now use Apache Commons DBCP instead
|
|
of c3p0 for their connection pools, and the setup guide and
|
|
sample jetty_gerrit.xml reference DBCP now.
|
|
We've run into problems with c3p0 under high loads, or when
|
|
the connection pool is completely exhausted. DBCP seems to
|
|
fail more gracefully, and seems to give us less trouble.
|
|
Changing pool implementations is not required, c3p0 is still
|
|
a supported provider. I just want to make it clear that I no
|
|
longer recommend it in production.
|
|
|
|
New Features
|
|
------------
|
|
|
|
* GERRIT-189 Show approval status in account dashboards
|
|
+
|
|
Account dashboards now show a summary of the approval status on
|
|
each change. Unreviewed changes are now highlighted to bring
|
|
the reviewer's attention to them. Tooltips when hovering over
|
|
a cell will bring up slightly more detailed information.
|
|
|
|
* GERRIT-276 Allow users to see what groups they are members of
|
|
+
|
|
Under Settings > Groups a user can now view what groups Gerrit
|
|
has placed them into. This may help administrators to debug
|
|
a user's access problems, as they can ask the user to verify
|
|
Gerrit is seeing what they expect.
|
|
|
|
* GERRIT-276 Show simple properties of an LDAP group
|
|
+
|
|
If auth.type is HTTP_LDAP, groups which are marked as automatic
|
|
membership now show non-repeating LDAP attributes below their
|
|
description under Admin > Groups. This display should help an
|
|
administrator to verify that Gerrit has mapped an LDAP group
|
|
correctly.
|
|
|
|
* Move Patch entity out of database and store in cache
|
|
+
|
|
The `patches` database table has been deleted, Gerrit now makes
|
|
the list of affected files on the fly and stores it within the
|
|
diff cache. This change is part of a long-running series to
|
|
remove redundant information from the database before we switch
|
|
to a pure Git backed data storage system.
|
|
|
|
* Only copy blocking negative votes to replacement patch
|
|
+
|
|
Previously Gerrit copied any negative vote in any approval
|
|
category whenever a replacement patch set was uploaded to
|
|
a change. Now Gerrit only copies "Code Review -2".
|
|
This change should make it easier for reviewers (and scripts
|
|
scanning `patch_set_approvals`) to identify updated changes
|
|
which might require a new review.
|
|
Adminstrators who have created their own categories and want to
|
|
copy the blocking negative vote should set `copy_min_score = 'Y'`
|
|
in the corresponding approval_categories records.
|
|
|
|
* show-caches: Make output more concise
|
|
+
|
|
Instead of showing ~12 lines of output per cache, each cache is
|
|
displayed as one line of a table.
|
|
|
|
* Handle multiple accountBase and groupBase
|
|
+
|
|
ldap.accountBase and ldap.groupBase may now be specified multiple
|
|
times in gerrit.config, to search more than one subtree within
|
|
the directory.
|
|
|
|
* Summarize collapsed comments
|
|
+
|
|
Collapsed comments (both inline on a file and on the change
|
|
itself) now show a short summary of the comment message, making
|
|
it faster to locate the relevant comment to expand for more
|
|
detailed reading.
|
|
|
|
* Edit inline drafts on Publish Comments screen
|
|
+
|
|
Inline comment drafts may now be directly edited on the Publish
|
|
Comments screen, which can be useful for fixing up a minor typo
|
|
prior to publication.
|
|
|
|
* Less toggly thingies on change screen
|
|
+
|
|
The change description and the approvals are no longer nested
|
|
inside of a foldy block. Most users never collapse these, but
|
|
instead just scroll the page to locate the information they are
|
|
looking for.
|
|
|
|
* Restore Enter/o to toggle collapse state of comments
|
|
+
|
|
Enter and 'o' now expand or collapse an inline comment on the
|
|
the current row of a file.
|
|
|
|
* Display abbreviated hexy Change-Id in screen titles
|
|
* Use hexy Change-Id in emails sent from Gerrit
|
|
+
|
|
Change-Id abbreviations are now used through more of the UI,
|
|
including emails sent by Gerrit and window/page titles. This
|
|
change breaks email threading for any existing review emails.
|
|
That is comments on a change created before the upgrade will
|
|
not appear under the original change notification thread.
|
|
|
|
* Add sendemail.from to control setting From header
|
|
+
|
|
Gerrit no longer forges the From header in notification emails.
|
|
To enable the prior forging behavior, set `sendemail.from`
|
|
to `USER` in gerrit.config. For more details see
|
|
link:http://gerrit.googlecode.com/svn/documentation/2.0/config-gerrit.html#sendemail.from[sendemail.from]
|
|
|
|
Bug Fixes
|
|
---------
|
|
|
|
* Fix ReviewDb to actually be per-request scoped
|
|
+
|
|
When we switched to Guice a misconfiguration allowed Guice to
|
|
give out multiple database connections per web or SSH request.
|
|
This could exhaust the connection pool faster than expected.
|
|
|
|
* Send no-cache headers during HTTP login
|
|
+
|
|
An oversight in the HTTP login code path may have allowed a proxy
|
|
server between the user's browser and the Gerrit server to cache
|
|
a user's session cookie. Fixed by sending the correct no-cache
|
|
headers, disallowing any caching of the authentication response.
|
|
|
|
* Fix project owner permissions
|
|
+
|
|
Folks reported on repo-discuss that a project owner also had to
|
|
have READ permission to use the Branches tab of their project.
|
|
This was a regression introduced when we refactored some of the
|
|
code when adding Guice to the project. Fixed.
|
|
|
|
* GERRIT-277 Fix hyperlinks in messages
|
|
+
|
|
Hyperlinks in commit messages such as "<http://foo>" were
|
|
including the trailing > in the URL, making the link broken.
|
|
The trailing > is now properly not included in the URL.
|
|
|
|
* GERRIT-266 Fix web session cookie refresh time
|
|
+
|
|
In 2.0.19 we introduced web sessions stored in Ehcache, but the
|
|
logic was causing sessions to expire roughly half-way through the
|
|
`cache.web_sessions.maxAge` time. At the default setting, active
|
|
sessions were expiring after 6 hours. The cache management has
|
|
been refactored to make this a lot less likely.
|
|
|
|
* Cleanup not signed in error to be more user friendly
|
|
+
|
|
The error message which comes up when your session is expired
|
|
is now much more useful. From the dialog you can restart your
|
|
session by clicking the "Sign-In" button, and return to the
|
|
screen you are currently on.
|
|
|
|
* Fix commit-msg hook to work with commit -v option
|
|
+
|
|
The commit-msg hook was buggy and did not handle `git commit -v`
|
|
correctly. It also did some bad insertions, placing the magic
|
|
`Change-Id: I...` line at the wrong position in the commit
|
|
message. The updated hook resolves most of these problems,
|
|
but must be recopied to individual Git repositories by end-users.
|
|
|
|
* Identify PGP configuration errors during startup
|
|
+
|
|
If the encrypted contact store is enabled, the required encryption
|
|
algorithms are checked at startup to ensure they are enabled
|
|
in the underlying JVM. This is necessary in case the JVM is
|
|
updated and the administrator forgot to install the unlimited
|
|
strength policy file in the new runtime directory. Recently
|
|
review.source.android.com was bitten by just such an upgrade.
|
|
|
|
* GERRIT-278 Fix missing reply comments on old patch set
|
|
+
|
|
Some comments were not visible because they were replies made
|
|
to a comment on say patch set 1 while looking at the difference
|
|
between patch set 1 and patch set 2 of a change. Fixed.
|
|
|
|
* Make external_id primary key of account_external_ids
|
|
+
|
|
The database schema incorrectly allowed two user accounts to have
|
|
the same email address, or to have the same OpenID auth token.
|
|
Fixed by asserting a unique constraint on the column.
|
|
|
|
Other Changes
|
|
-------------
|
|
* Start 2.0.21 development
|
|
* Support cleaning up a Commons DBCP connection pool
|
|
* Clarify which Factory we are importing in ApproveComma...
|
|
* Avoid loading Patch object in /cat/ servlet
|
|
* Remove unnecessary reference of patch key in save draft
|
|
* GERRIT-266 Tweak cache defaults to be more reasonable
|
|
* Merge change I131e6c4c
|
|
* Bring back the "No Differences" message when files are...
|
|
* Pick up gwtorm 1.1.2-SNAPSHOT
|
|
* Refactor GroupListScreen's inner table for reuse
|
|
* Do not normalize approval scores on closed changes in ...
|
|
* Don't obtain 0 approvals or submit approvals in dashbo...
|
|
* Update JGit to 0.5.0-93-g5b89a2c
|
|
* Add tests for Change-Id generating commit-msg hook
|
|
* Add test for commit-msg with commit -v
|
|
* Fix formatting error in ApprovalCategory
|
|
* Fix typo in change table column header "Last Update"
|
|
* Fix reference to the All Projects broken when we remov...
|
|
* Use category abbreviations in the dashboard approval c...
|
|
* Format approvals columns in change tables with minimal...
|
|
* Shrink the Last Updated column in dashboards and chang...
|
|
* Highlight changes which need to be reviewed by this us...
|
|
* Fix typo in ChangeTable comment
|
|
* Reduce the window used for "Mon dd" vs. "Mon dd yyyy" ...
|
|
* Don't assume "Anonymous Users" and "Registered Users" ...
|
|
* Log encrypted contact store failures
|
|
* Identify PGP configuration errors during startup
|
|
* Take the change description block out of the disclosure...
|
|
* Move the approval table out of a disclosure panel
|
|
* Explicitly show what value is needed to submit
|
|
* Modernize the display of comments on a change
|
|
* Modernize the display of inline comments on a file
|
|
* Fix "Publish Comments" when there are no inline drafts
|
|
* Merge change 11666
|
|
* Fix display of "Gerrit Code Review" authored comments
|
|
* Fix source code formatting error in FormatUtil
|
|
* Remove unnecessary fake author on inline comments
|
|
* Auto expand all drafts on publish comments screen
|
|
* Remove unused local variable in PublishCommentsScreen
|
|
* Remove unused import from PublishCommentsScreen
|
|
* Use gwtorm, gwtexpui release versions
|
|
* Add javadoc for Change.getKey
|
|
* Updated documentation for eclipse development.
|
|
* Merge change 11698
|
|
* Merge change 11699
|
|
* Merge change 11700
|
|
* Merge change 11703
|
|
* Merge change 11705
|
|
* Moved creation of GerritPersonIdent to a separate provi...
|
|
* Remove unused dependency on GerritServer.
|
|
* Renamed GerritServert to GitRepositoryManager and moved...
|
|
* Remove declaration of OrmException that is never thrown.
|
|
* Increase margin space between buttons of comment editors
|
|
* Simplify GerritCallback error handling
|
|
* Correct comment documenting SignInDialog
|
|
* Remove unused CSS class gerrit-ErrorDialog-ErrorMessage
|
|
* Clarify become any account servlet errors
|
|
* Fix anchor in sshd.reuseAddress documentation
|
|
* Extract parametrized string formatting out of LdapQuery
|
|
* Make cache APIs interfaces for mocking
|
|
* Add easymock 2.5.1 to our test dependencies
|
|
* Add sendemail.from to control setting From header
|
|
* gerrit 2.0.21 |