378 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			378 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Release notes for Gerrit 2.1
 | 
						|
============================
 | 
						|
 | 
						|
Gerrit 2.1 is now available in the usual location:
 | 
						|
 | 
						|
link:https://www.gerritcodereview.com/download/index.html[https://www.gerritcodereview.com/download/index.html]
 | 
						|
 | 
						|
 | 
						|
New site_path Layout
 | 
						|
--------------------
 | 
						|
 | 
						|
The layout of the `$site_path` directory has been changed in 2.1.
 | 
						|
Configuration files are now stored within the `etc/` subdirectory
 | 
						|
and will be automatically moved there by the init subcommand.
 | 
						|
 | 
						|
Upgrading From 2.0.x
 | 
						|
--------------------
 | 
						|
 | 
						|
  If the server is running a version older than 2.0.24, upgrade the
 | 
						|
  database schema to the current schema version of 19.  Download
 | 
						|
  'schema-upgrades003_019.zip' from the download area and run the
 | 
						|
  scripts by hand as listed in README until the server is caught up.
 | 
						|
 | 
						|
Run init to convert the layout of $site_path:
 | 
						|
----
 | 
						|
  java -jar gerrit.war init -d $site_path
 | 
						|
----
 | 
						|
 | 
						|
If there is a GerritServer.properties file handy, ensure it is in the
 | 
						|
current working directory or inside of $site_path when running init.
 | 
						|
If present, init will reuse this information rather than prompting
 | 
						|
for it.  If the file is not found, init will prompt for database
 | 
						|
connection information.
 | 
						|
 | 
						|
While moving the server's configuration files into the new
 | 
						|
etc/ subdirectory, init will also move secret settings such as
 | 
						|
sendemail.smtpPass and ldap.password out of gerrit.config into a
 | 
						|
read-protected secure.config file.
 | 
						|
 | 
						|
New Daemon Mode
 | 
						|
---------------
 | 
						|
 | 
						|
Gerrit 2.1 and later embeds the Jetty servlet container, and
 | 
						|
runs it automatically as part of `java -jar gerrit.war daemon`.
 | 
						|
This is the preferred method of running Gerrit Code Review, and is
 | 
						|
how sites like review.source.android.com are operating.
 | 
						|
 | 
						|
To simplify management on UNIX systems an rc.d style startup script
 | 
						|
is created in `$site_path/bin/gerrit.sh`.  This script can be used
 | 
						|
to start and stop the background daemon process.  When started
 | 
						|
from this script the daemon calls itself `GerritCodeReview` in ps,
 | 
						|
but may still show up in top as `java`.
 | 
						|
 | 
						|
Configuration of the daemon is handled by gerrit.config.  For more
 | 
						|
information see the 2.1 documentation.
 | 
						|
 | 
						|
link:http://gerrit.googlecode.com/svn/documentation/2.1/index.html[http://gerrit.googlecode.com/svn/documentation/2.1/index.html]
 | 
						|
 | 
						|
 | 
						|
New Features
 | 
						|
------------
 | 
						|
 | 
						|
* issue 19     Link to issue tracker systems from commits
 | 
						|
+
 | 
						|
Hyperlinks from commit messages and any inline comments to
 | 
						|
bug tracking systems can be enabled by configuring one or
 | 
						|
more commentlink regular expressions in gerrit.config.
 | 
						|
 | 
						|
* Git replication security
 | 
						|
+
 | 
						|
Git replication can now be controlled on the sending side by
 | 
						|
configuring one or more authGroups for a remote and granting
 | 
						|
READ +1 access to only certain projects.
 | 
						|
 | 
						|
* Better repo upload/git push throughput
 | 
						|
+
 | 
						|
MINA SSHD was misconfiguring the host's TCP/IP stack, this
 | 
						|
limited throughput of git push to under 16 KiB/s.  Fixed.
 | 
						|
Its such a huge improvement that its an important feature,
 | 
						|
rather than a bug fix.  :-)
 | 
						|
 | 
						|
* issue 320    Queue SSH commands and ensure consistent throughput
 | 
						|
+
 | 
						|
SSH commands are entered into a queue and executed in FIFO order
 | 
						|
as processor capacity becomes available.  The queue enables
 | 
						|
the server to work on a finite number of commands at once and
 | 
						|
ensures running commands complete in a timely fashion, no matter
 | 
						|
how many concurrent connections are being established.
 | 
						|
The queue allows sites to maintain consistent throughput without
 | 
						|
thrashing, even as the number of requests increase beyond server
 | 
						|
capacity.  The change was made in anticipation of `repo sync`
 | 
						|
learning how to fetch all projects at once, inducing a load of
 | 
						|
over 200 concurrent commands per user/Android checkout.
 | 
						|
Server administrative commands such as kill or gsql (below) bypass
 | 
						|
the queue and are allowed to execute as soon as they are received.
 | 
						|
 | 
						|
* kill: Support killing any queued task
 | 
						|
+
 | 
						|
A new administrative kill command was introduced to terminate
 | 
						|
any queued or running tasks.  Unlike UNIX kill, a killed task
 | 
						|
will continue until its next safe interruption point, which is
 | 
						|
usually at the next network read or write.
 | 
						|
 | 
						|
* issue 327    gsql: query tool on command line and SSH
 | 
						|
+
 | 
						|
Gerrit supports an interactive SQL query tool for administrators.
 | 
						|
The query tool is available over SSH as `gerrit gsql`, or locally
 | 
						|
as `java -jar gerrit.war gsql`.  The query tool is primarily
 | 
						|
useful with H2 databases, where the database is only accessible
 | 
						|
to the running Java process.
 | 
						|
 | 
						|
* issue 202    Self contained daemon mode
 | 
						|
* issue 328    daemon: Automatically log into $site_path/logs
 | 
						|
* daemon: Automatically compress our log files
 | 
						|
+
 | 
						|
As noted above, Jetty 7.0.1.v20091125 is now bundled, making new
 | 
						|
site installation easier.  Logs from daemon mode are written
 | 
						|
out to the site's logs/ subdirectory.  Logs are rotated and
 | 
						|
compressed daily.
 | 
						|
 | 
						|
* issue 330    init: Create a command to setup a new site
 | 
						|
* issue 343    init: Create database indexes during schema creation
 | 
						|
* Remove CreateSchema command
 | 
						|
+
 | 
						|
The init command can be used to initialize a new site, or
 | 
						|
as noted above, to upgrade an existing site to the current
 | 
						|
software version.  Since init now does the work of CreateSchema,
 | 
						|
and everything else that used to be listed out as individual
 | 
						|
steps in the installation guide, CreateSchema was deleted.
 | 
						|
 | 
						|
* issue 325    Allow secure.config to overlay gerrit.config
 | 
						|
* Configure database from gerrit.config
 | 
						|
+
 | 
						|
Database connectivity is now configured out of gerrit.config
 | 
						|
and secure.config, rather than GerritServer.properties.
 | 
						|
 | 
						|
* Bundle PostgreSQL, H2, DBCP, MySQL, Bouncy Castle
 | 
						|
+
 | 
						|
JDBC drivers for PostgreSQL, H2, and the Apache Commons DBCP
 | 
						|
connection pool implementation are now bundled, reducing the
 | 
						|
number of external dependencies that must be obtained before
 | 
						|
getting a working installation.
 | 
						|
The MySQL driver is automatically downloaded and verified by
 | 
						|
init if required, as is the Bouncy Castle Crypto provider.
 | 
						|
These JARs are not packaged in the standard distribution due to
 | 
						|
export and/or license restrictions.
 | 
						|
 | 
						|
* issue 183    Support invoking gitweb from within Gerrit
 | 
						|
+
 | 
						|
The standard gitweb.cgi can now be automatically configured and
 | 
						|
executed through Gerrit's servlet container, making it easier to
 | 
						|
publish a repository for browsing on the web.
 | 
						|
Project level access controls are honored when browsing through
 | 
						|
this gitweb interface.
 | 
						|
 | 
						|
* issue 105    Support OpenID when behind an HTTP proxy
 | 
						|
* issue 323    Use JGit's http_proxy based initialization
 | 
						|
+
 | 
						|
HTTP proxies are now supported for OpenID authentication, as
 | 
						|
well as for init's optional external library download.
 | 
						|
 | 
						|
* Add a Register link when using LDAP authentication
 | 
						|
+
 | 
						|
When auth.type is LDAP the Register link in the top right corner
 | 
						|
can point to an administrator defined URL.  This external URL
 | 
						|
might be as simple as a 'mailto:...' link, to help the user
 | 
						|
request a new LDAP account from the directory administrators.
 | 
						|
 | 
						|
* Switch remote JSON services to use JSON-RPC 2.0
 | 
						|
+
 | 
						|
The JSON-RPC interface now speaks the JSON-RPC 2.0 draft
 | 
						|
specification, in addition to the prior JSON-RPC 1.1
 | 
						|
specification previously used.
 | 
						|
 | 
						|
* issue 336    Update MINA SSHD to SVN 891122
 | 
						|
* issue 324    Update JGit to 0.5.1.51-g96b2e76
 | 
						|
* Update JUnit to 3.8.2
 | 
						|
* Update args4j to 2.0.16
 | 
						|
* Update slf4j-log4j12 to 1.5.8
 | 
						|
* Update Ehcache to 1.7.1
 | 
						|
* Update commons-pool to 1.5.4
 | 
						|
* Update H2 to 1.2.125
 | 
						|
* Update to gwtjsonrpc 1.2.0, gwtexpui 1.1.4
 | 
						|
+
 | 
						|
Most dependencies were updated to their current stable versions.
 | 
						|
 | 
						|
Bug Fixes
 | 
						|
---------
 | 
						|
 | 
						|
* issue 259    Improve search hint to include owner:email
 | 
						|
+
 | 
						|
The hint text in the search box in the upper right corner has
 | 
						|
been improved to suggest owner:email and reviewer:email, as
 | 
						|
these tags were not discoverable.
 | 
						|
 | 
						|
* issue 335    daemon: Refuse to launch unless gerrit.config exists
 | 
						|
+
 | 
						|
Gerrit now refuses to launch until the site path has been
 | 
						|
properly initialized with init.  This is true both in daemon
 | 
						|
mode and also when deployed inside of any servlet container.
 | 
						|
 | 
						|
* issue 152    Allow adding users who are missing a preferred email
 | 
						|
+
 | 
						|
The user suggestion boxes now permit adding a user that has not
 | 
						|
yet selected a preferred email address on their contact panel.
 | 
						|
 | 
						|
* issue 319    Automatically set preferred email to first configured
 | 
						|
+
 | 
						|
If a user has no email addresses, the first address they register
 | 
						|
through the next OpenID login, LDAP login, or 'Register New Email'
 | 
						|
feature will be automatically set as the preferred email address
 | 
						|
for their account.
 | 
						|
 | 
						|
* issue 356    Fix committer identity on cherry-pick
 | 
						|
+
 | 
						|
The committer identity created when cherry-picking a change was
 | 
						|
formatted incorrectly, it used the internal account identity.
 | 
						|
Fixed to use the submitter's preferred email address only.
 | 
						|
 | 
						|
* issue 345    Make "call11" readable in file content
 | 
						|
+
 | 
						|
The prior font made the string "call11" (c-a-ell-ell-one-one)
 | 
						|
impossible to read because the ell and one looked the same.
 | 
						|
Fixed by changing to different fonts for the fixed width file
 | 
						|
content display.
 | 
						|
 | 
						|
* Automatically make first user account administrator
 | 
						|
+
 | 
						|
To simplify installation, the first user to login to a brand
 | 
						|
new site is added to the 'Administrators' group.  This avoids
 | 
						|
the need to update the database manually via SQL and restart
 | 
						|
the daemon to have it be picked up.
 | 
						|
 | 
						|
* Always trim Change-Id lines to handle whitespace
 | 
						|
+
 | 
						|
Some users were adding trailing whitespace on a Change-Id line
 | 
						|
by accident, causing Gerrit to not always honor it when uploading
 | 
						|
a replacement patch.  Fixed.
 | 
						|
 | 
						|
* Fix duplicate branches in the branches panel
 | 
						|
+
 | 
						|
The Branches tab under a project displayed the HEAD branch twice,
 | 
						|
but every other branch once.  Fixed.
 | 
						|
 | 
						|
* Enforce all HTTP requests through SSL
 | 
						|
+
 | 
						|
JSON-RPC requests are now required to be over SSL if the site
 | 
						|
prefers to use SSL for communication.
 | 
						|
Prior to 2.1 the JSON-RPC requests from the web UI were performed
 | 
						|
over https:// if the web UI loaded over https://, but JSON-RPC
 | 
						|
requests from other tools (e.g. a command line script) were
 | 
						|
still allowed over plain text HTTP.
 | 
						|
 | 
						|
* Work around NPE when patch list fails to compute
 | 
						|
+
 | 
						|
Rather than return NullPointerException to the browser return
 | 
						|
a "not found" error, as the source of the null pointer is the
 | 
						|
underlying diff operation returned no results.
 | 
						|
 | 
						|
* Fix stuck "Loading Gerrit Code Review ..."
 | 
						|
+
 | 
						|
Many users have noticed that after about a week of server uptime
 | 
						|
Gerrit no longer loads in their browser, until the server is
 | 
						|
restarted.  This was usually caused by Jetty unpacking the WAR
 | 
						|
file contents to /tmp, and the system having a cron task that
 | 
						|
deleted files more than a week old from /tmp.
 | 
						|
Under the daemon command the WAR file contents are unpacked into
 | 
						|
`$HOME/.gerritcodereview/tmp`, which should be isolated from
 | 
						|
the host system's /tmp cleaner.
 | 
						|
 | 
						|
Other=
 | 
						|
------
 | 
						|
 | 
						|
* Pick up gwtexpui 1.1.4-SNAPSHOT
 | 
						|
* Merge change Ia64286d3
 | 
						|
* Merge branch 'maint-2.0.24.1'
 | 
						|
* Merge change Ic6f00304
 | 
						|
* Merge branch 'maint-2.0.24.2'
 | 
						|
* Add H2 database as a test dependency
 | 
						|
* Update Ehcache to 1.7.0
 | 
						|
* Fix formatting
 | 
						|
* Rewrite our build as modular maven components
 | 
						|
* Forbid use of anonymous servlets on any container
 | 
						|
* Use listeners to manage server startup/shutdown
 | 
						|
* Load additional JARs from $site_path/lib
 | 
						|
* Fix PostgreSQL/H2 access under gwtdebug sessions
 | 
						|
* Fix Become link in hosted mode debugging sessions
 | 
						|
* Fix ssh:// URLs on change pages
 | 
						|
* daemon: Update help for --slave option
 | 
						|
* daemon: Remove -DGerritServer from documentation
 | 
						|
* Launcher: Clarify the purpose of the daemon command
 | 
						|
* daemon: Fix --site-path documentation
 | 
						|
* Remove unused imports from pgm.DataSourceProvider
 | 
						|
* launcher: Don't print stack trace with reflection frames
 | 
						|
* Move H2 database down into $site_path/db
 | 
						|
* Remove dead code identified by Eclipse 3.5.1
 | 
						|
* Add missing default serialVersionUID
 | 
						|
* pgm_daemon: Remove unnecessary -DGerritServer flag
 | 
						|
* Move configuration files under $site_path/etc
 | 
						|
* Update documentation to point to etc subdirectory
 | 
						|
* Display the full stack trace if requested
 | 
						|
* init: Don't delete site path on database creation fail
 | 
						|
* Simplify errors reported by command line database fail
 | 
						|
* init: Correct defaults for httpd.listenUrl in --batch
 | 
						|
* issue 341    gsql: Fix \d on H2
 | 
						|
* gsql: Improve formatting of column types and indexes
 | 
						|
* pgm: Move non commands into a util package
 | 
						|
* issue 342    gsql: Reduce connections used to only 1
 | 
						|
* WorkQueue: Drop the word "-thread" from thread names
 | 
						|
* documentation: Correct links in dev-design
 | 
						|
* Fix port number in ssh pull lines in emails
 | 
						|
* Update MINA SSHD to 0.3.0
 | 
						|
* Update Jetty to 7.0.1.v20091125
 | 
						|
* launcher: Refactor how we return the status code
 | 
						|
* cat, ls: move inside our main program package
 | 
						|
* Default temporary directory to $HOME/.gerritcodereview
 | 
						|
* Clean up stale empty temporary directories
 | 
						|
* daemon: Unpack the WAR contents to a local directory
 | 
						|
* daemon: Run correctly under Eclipse debugger
 | 
						|
* Create a rc.d style start/stop script for our daemon
 | 
						|
* Remove unused ADMIN_PEOPLE link
 | 
						|
* Ignore unsupported ulimit -x errors
 | 
						|
* Use more portable printf instead of echo -n
 | 
						|
* Support starting as current user without start-stop-daemon
 | 
						|
* Make startup output universally the same
 | 
						|
* Get the canonical path to our temporary directory
 | 
						|
* init: Start daemon and open web browser when done
 | 
						|
* documentation: Clean up references to 'Gerrit2'
 | 
						|
* Cleanup the reflog identity generation
 | 
						|
* Update to gwtjsonrpc 1.2.0-SNAPSHOT
 | 
						|
* init: Configure gerrit.canonicalWebUrl if reverse proxy
 | 
						|
* tools/version.sh: Quick hack to edit our Maven version
 | 
						|
* Call the next version 2.1
 | 
						|
* documentation: Rewrite installation guide
 | 
						|
* Fix gerrit.sh to run properly on SuSE systems
 | 
						|
* documentation: Fix formatting of remote.name.authGroup
 | 
						|
* Fix missing @Override warning in IoUtil
 | 
						|
* Don't enable replication if replication.config is empty
 | 
						|
* Give H2 a canonical file path
 | 
						|
* init: Add --no-auto-start to prevent starting the daemon
 | 
						|
* init: Support updating an existing site configuration
 | 
						|
* init: Open browser to gerrit.canonicalWebUrl
 | 
						|
* daemon: Allow httpd.listenUrl to end with /
 | 
						|
* issue 358    init: Don't abort on empty directory
 | 
						|
* init: Initialize system_config.site_path
 | 
						|
* Remove dead class MessagePanel
 | 
						|
* issue 331    documentation: Update developer docs
 | 
						|
* documentation: Link to apache2 reverse proxy setup
 | 
						|
* init: Fix LDAP prompts to store to ldap section
 | 
						|
* init: Store httpd.sslKeyPasword in secure.config
 | 
						|
* init: Fix a minor source code formatting error
 | 
						|
* commentlink: Support raw HTML replacements
 | 
						|
* documentation: Cleanup formatting in gerrit-config
 | 
						|
* Delete legacy schema upgrade scripts
 | 
						|
* Remove legacy tools/to_jetty.sh
 | 
						|
* Remove standalone Jetty 6.x support scripts
 | 
						|
* Move all resource files into src/main/resources
 | 
						|
* init: Move optional library download configuration
 | 
						|
* init: Refactor init to be small parts created
 | 
						|
* Test SitePaths class
 | 
						|
* Test SocketUtil class
 | 
						|
* Test init's Libraries class
 | 
						|
* Test init's upgrade from 2.0.x layout to 2.1 layout
 | 
						|
* pgm_daemon launch: Run ../test_site like docs suggest...
 | 
						|
* tools/version.sh: Don't mangle the git describe output
 | 
						|
* Use SitePaths to locate the logs directory
 | 
						|
* Resolve out any symlinks before starting logging
 | 
						|
* Mark compressed log files read-only
 | 
						|
* tools/release.sh: Simplify our release build process
 | 
						|
* Teach Main to check the Java runtime version
 | 
						|
* documentation: Mention Google Code Prettify in licens...
 | 
						|
* Refactor GitRepositoryManager to be an interface
 | 
						|
* issue 346    Fix duplicate branches showing in the Branches tab
 | 
						|
* Completely remove GerritServer.properties
 | 
						|
* Clean up the DWIMery for database.* configuration set...
 | 
						|
* Never compress a pid file under $site_path/logs
 | 
						|
* Fix reading the $site_path/etc/ssh_host_key in serial...
 | 
						|
* gerrit 2.1 |