6d7ebc6318
Change-Id: Ibd0aa9a14f533771986cc1d43a712716457d424c
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 |