= 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...