Release notes for Gerrit 2.1.1, 2.1.1.1
=======================================

Gerrit 2.1.1.1 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 release contains a schema change.  To upgrade:
----
  java -jar gerrit.war init -d site_path
----

Patch 2.1.1.1
-------------

* Update MINA SSHD to SVN 897374
+
A deadlock was recently discovered in the SSHD, causing an
IoProcessor thread to freeze and stop servicing clients.  This
manifests itself as spotty SSH service; sometimes a connection
works, sometimes it hangs and never executes the command.  Fixed.

* issue 376    Fix deletion of comments on publish comments screen
+
Discarding a comment from the publish comments screen caused
a ConcurrentModificationException.  Fixed.

New Features
------------

* issue 322    Update to GWT 2.0.0
+
JavaScript code generation is now based upon GWT 2.0, which
is the latest stable release available.  One benefit of this
is the initial JavaScript download is smaller, by omitting
less-frequently used sections of the UI like the admin screens
or user preferences.

* Support creating new users in `DEVELOPMENT_BECOME_ANY_`...
+
Developers can now create new users (to facilitate testing
scenarios) through the /become URL, rather than manually
inserting account records or switching over to OpenID/LDAP.

* issue 371    Make gitweb url links customizable, add support for c...
+
The linkage to gitweb is now more configurable, and we also
support linking to cgit, a popular C based alternative to the
Perl based gitweb.cgi.

* Log SSH activity to $site_path/logs/sshd_log
+
SSH authentication failures and commands are now logged, including
execution times, so administrators can monitor server activity.
The log file is local to the server running the daemon process,
and came about to help replace the lastUsedOn columns which were
dropped from the database (see below).

* Drop the lastUsedOn from AccountSshKeys, AccountExternalIds
* Implement automatic schema upgrading
+
The lastUsedOn column is no longer updated in the database,
and was actually removed by a schema upgrade in this release.

* issue 162    Record submitters as the author of a merge commit
+
Merge commits created by Gerrit during change submission now
use the submitter's identity as the author identity, and generic
Gerrit user identity as the committer identity.

* issue 162    Summarize single change merges with short description
+
The short description of a merge commit including exactly
one change into the branch now includes that change's short
description, making the log easier to read.

* Reload GerritSiteHeader, GerritSiteFooter, GerritSite...
+
The site header/footer files are reloaded on the fly if they are
modified, allowing the administrator to abuse the header for a
"message of the day" feature, if desired.

* Reduce the size (and cost) of the host page
* Use server side permutation selection
* Allow ?s=0 to disable server side permutation
+
The host page was compacted slightly, and the CPU time used on
the server to send it to a client was reduced by reusing as much
work as possible between sessions.
Additionally, the host page now selects the correct JavaScript
based on the User-Agent HTTP header, removing one HTTP round
trip during initial page load, and saving ~5 KiB of transfer.

* Make hyperlinks update URL when screen is visible
+
The address bar now only updates when the corresponding content
is actually visible.  This matches the behavior used within
other AJAX applications like Gmail.

* Use a glass pane behind our dialogs, make most modal
+
Error dialogs are now more noticeable, and less easily dismissed
by an accidental click.  This is especially useful when there
is a merge error during submit.

Bug Fixes
---------

* issue 359    Allow updates of commits where only the parent changes
+
Commit replacements were sometimes rejected when the only thing
that changed as the parent pointer, e.g. rebasing a change because
the parent's commit message was modified to correct a typo.
We now allow these replacements, with a warning to the console.

* gsql: Fix \d table missing first column
+
The gsql tool skipped the first column of any table, e.g. when
showing "\d accounts" the registered_on column wasn't displayed.

* Default to the en locale
* Limit permutations to only the en locale
+
The WAR file shrank because we deleted a large chunk of JavaScript
which was never used.  GWT created this code in case the browser
didn't get forced into the 'en' locale, but we always force it to
use the 'en' locale because the top of our HTML page demands it.

* issue 364    Fix SchemaCreatorTest to work when localized errors a...
+
This test failed when the JVM's default locale wasn't en_US, as it
was testing a translated string against an English expected value.

* issue 365    Skip CommitMsgHookTest on Win32
+
This test failed on Windows platforms, where there is no shell
or perl available from a native Win32 application like the JVM.
For now, we skip the test.

* issue 369    Add missing repositories to build search path
+
The out-of-the-box build of Gerrit's own source code didn't work,
due to missing Maven repository URLs in our pom.xml.  I never
noticed the failure because my local repository already had the
required JARs present.

* Fix MSIE 8 compatibility
+
Releases between 2.0.18 and 2.1.1 have not supported MSIE 8,
due to a broken GWT upgrade.  Fixed.

* Ensure gitweb.cgi pipes are closed
+
Exceptions may have allowed our internal gitweb CGI invocations
to leak file descriptors, as pipes to the external CGI were not
always closed.  Fixed.

Other
-----
* Switch to ClientBundle
* Update to gwtexpui-1.2.0-SNAPSHOT
* Merge branch 'master' into gwt-2.0
* Use gwt-maven's -Dgwt.style rather than our own
* Don't build the "Story of Your Compile" report by def...
* Drop the com.google.gerrit.httpd.auth.become system p...
* Move all of our CSS rules into our CssResource
* Start splitting our code to reduce initial download
* Defer our large JavaScript parsing until later
* Move prettify to be loaded as part of our patch split...
* issue 363    Update Google Code Prettify to 3-Dec-2009
* Start next release development
* Merge branch 'gwt-2.0'
* documentation: Remove Eclipse user library
* Fix disclosure panel CSS
* Simplify pretty printer loading
* Fix formatting of whitespace errors
* Correct URL to apache license in CSS headers
* Restore the CSS linker for GWT's stylesheet
* documentation: Correct calculation of QPS
* Consolidate windows platform tests to a single class
* documentation: Correct other calculations of QPS
* issue 370    Revert "Defer our large JavaScript parsing until late...
* Merge change If238e2bd
* Remove unnecessary /login/`*` URLs when auth.type = LDAP
* Stop using AccountExternalId lastUsedOn for most rece...
* Revert "Remove unnecessary /login/* URLs when auth.ty...
* Document why LoginRedirectServlet is required
* Cleanup Maven build by pushing component dependencies...
* Cleanup Maven build by using common plugin management
* Fix package-before-copyright in GerritLauncher
* Fix unified patch view
* Fix background of RPC loading status message
* Use @def for common CSS definitions
* Correct comment panel border styles
* Improve keyapplet referencing
* Remove the duplicate Version class
* Be specific about the Maven plugin groupId
* Fix automatic formatting in SshPanel
* Remove unnecessary compile scope tags
* Disable unnecessary class operations
* Use the full name 'Gerrit Code Review' in sign-in dia...
* init: Defer all prune executions until upgrade cycle ...
* Fix automatic formatting in LdapRealm
* Update gwtorm, gwtjsonrpc, gwtexpui
* Push Command.destroy down through DispatchCommand red...
* Quote usernames in the sshd_log if necessary
* Document why ReplicationUser doesn't use registered g...
* Configure the gwtorm KeyUtil.Encoder during module lo...