blob: 1c63983f5a86492e2537b72cfc2dfe1701e6490d [file] [log] [blame]
Release notes for Gerrit 2.8
============================
Gerrit 2.8 is now available:
link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.8.war[
http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.8.war]
Schema Change
-------------
*WARNING:* This release contains schema changes. To upgrade:
----
java -jar gerrit.war init -d site_path
----
*WARNING:* Upgrading to 2.8.x requires the server be first upgraded to 2.1.7 (or
a later 2.1.x version), and then to 2.8.x. If you are upgrading from 2.2.x.x or
later, you may ignore this warning and upgrade directly to 2.8.x.
Release Highlights
------------------
* Lots of new link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api.html[
REST API endpoints].
* New link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/js-api.html[
JavaScript API].
* New build system using link:http://facebook.github.io/buck/[Facebook Buck].
New Features
------------
Configuration
~~~~~~~~~~~~~
* Project owners can define `receive.maxObjectSizeLimit` in the
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config-gerrit.html#receive.maxObjectSizeLimit[
project configuration] to further reduce the global setting.
* Site administrators can define a
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config-mail.html#_footer_vm[
footer template] that will be appended to the end of all outgoing emails after
the 'ChangeFooter' and 'CommentFooter'.
* New `topic-changed` hook and stream event is fired when a change's topic is
edited from the Web UI or via a REST API.
* New options `--list-plugins` and `--install-plugins` on the
link:[http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/pgm-init.html[
site initialization command].
* New `auth.httpDisplaynameHeader` and `auth.httpEmailHeader` in the
link:[http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config_gerrit.html#_a_id_auth_a_section_auth[
authentication configuration].
+
When using HTTP-based authentication, the SSO can be delegated to check not only
the user credentials but also to fetch the full user-profile.
+
With the config properties `auth.httpDisplaynameHeader` and `auth.httpEmailHeader`
it is possible to configure the name of the headers used for propagating this extra
information and enforce them on the user profile during login and beyond.
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config_gerrit.html#_a_id_httpd_a_section_httpd[
Customizable registration page for HTTP authentication].
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config_gerrit.html#_a_id_httpd_a_section_httpd[
Configurable external `robots.txt` file].
* Support for
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/database-setup.html#createdb_oracle[
Oracle database].
Web UI
~~~~~~
Global
^^^^^^
* The change status is shown in a separate column on dashboards and search results.
Change Screens
^^^^^^^^^^^^^^
* New button to cherry-pick the change to another branch.
* When issuing a rebase via the Web UI, the committer is now the logged in
user, rather than "Gerrit Code Review".
+
If the user has more than one email address, the preferred email address will
be used.
* Default user's full name to git committer name if user has not configured a
full name in their profile.
* Include comment author attributes in comment panels.
+
Comment author's email address and name are included as attributes in comment
panels. This makes it easier to filter out CI-based comments using user
scripts.
* Copy reviewed flag to new patch sets for identical files.
+
If a user has already seen and reviewed a file, the 'reviewed' flag is forwarded
on to the next patch set when the content of the file in the next patch set is
identical to the reviewed file.
REST API
~~~~~~~~
* Several new link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api.html[
REST API endpoints] are added.
* REST views can determine how long their response should be cached.
* REST views can handle 'HTTP 422 Unprocessable Entity' responses.
Access Rights
^^^^^^^^^^^^^
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-access.html#list-access[
List access rights for project(s)]
Accounts
^^^^^^^^
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#create-account[
Create account]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#get-account-name[
Get account full name]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#set-account-name[
Set account full name]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#delete-account-name[
Delete account full name]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#list-account-emails[
List account email addresses]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#get-account-email[
Get account email address]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#set-preferred-email[
Set account preferred email address]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#create-account-email[
Create account email]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#delete-account-email[
Delete account email]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#get-active[
Get account state]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#set-active[
Set account state to active]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#delete-active[
Set account state to inactive]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#get-http-password[
Get account HTTP password]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#set-http-password[
Set or generate account HTTP password]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#delete-http-password[
Delete account HTTP password]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#list-ssh-keys[
List account SSH keys]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#get-ssh-key[
Get account SSH key]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#add-ssh-key[
Add account SSH key]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#delete-ssh-key[
Delete account SSH key]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-accounts.html#get-username[
Get account username]
Changes
^^^^^^^
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-changes.html#rebase-change[
Rebase change]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-changes.html#cherry-pick[
Cherry-pick revision]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-changes.html#get-content[
Get content of a file in a revision]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-changes.html#get-patch[
Get revision as a formatted patch]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-changes.html#get-diff[
Get diff of a file in a revision]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-changes.html#get-commit[
Get parsed commit of a revision]
Config
^^^^^^
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-config.html#get-capabilities[
Get capabilities]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-config.html#get-version[
Get version] (of the Gerrit server)
Projects
^^^^^^^^
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#list-branches[
List branches]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#get-branch[
Get branch]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#create-branch[
Create branch]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#delete-branch[
Delete branch]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#list-child-projects[
List child projects]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#get-child-project[
Get child project]
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/rest-api-projects.html#set-config[
Set configuration]
Capabilities
~~~~~~~~~~~~
New global capabilities are added.
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/access_control.html#capability_generateHttpPassword[
Generate Http Password] allows non-administrator users to generate HTTP
passwords for users other than themselves.
+
This capability would typically be assigned to a non-interactive group
to be able to generate HTTP passwords for users from a tool or web service
that uses the Gerrit REST API.
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/access_control.html#capability_runAs[
Run As] allows users to impersonate other users by setting the `X-Gerrit-RunAs`
HTTP header on REST API calls.
+
Site administrators do not inherit this capability; it must be granted
explicitly.
Emails
~~~~~~
* The `RebasedPatchSet` template is removed. Email notifications for rebased
changes are now sent with the `ReplacePatchSet` template.
* Comment notification emails now include context of comments that are replied
to, and links to the file(s) in which comments are made.
Plugins
~~~~~~~
Global
^^^^^^
* Plugins may now contribute buttons to various parts of the UI using the
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/js-api.html[
JavaScript API].
* Plugins may now provide an 'About' section on their documentation index page.
* Plugins may now provide separate sections for REST API and servlet
documentation on their index page.
* Plugins may now provide
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config-validation.html#pre-merge-validation[
pre-merge validation steps].
* Plugins may now provide
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/dev-plugins.html#capabilities[
Global capabilities].
* The "hello world" plugin is replaced with the "cookbook plugin" which has more
examples of the plugin API's usage.
Commit Message Length Checker
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* Commits whose subject or body length exceeds the limit can be rejected.
Replication
^^^^^^^^^^^
* The `{$name}` placeholder is optional when replicating a single project,
allowing a single project to be replicated under a different name.
* Project names can be matched with wildcard or regex patterns in `replication.config`.
* The `replication start` command does not exit until replication is finished
when the `--wait` option is used.
* The `replication start` command displays a summary of the replication status.
* Retry counts are added to replication task names, so they can be seen in the
output of the `show-queue` command.
* The `remoteNameStyle` option can be set to `basenameOnly` to replicate projects
using only the basename on the target server.
* The `startReplication` global capability is now provided by the plugin.
ssh
~~~
* The `commit-msg` hook installation command is now
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/config_gerrit.html#gerrit.installCommitMsgHookCommand[
configurable].
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-ls-members.html[
New `ls-members` command].
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-set-members.html[
New `set-members` command].
+
New command to manipulate group membership. Members can be added or removed
and groups can be included or excluded in one specific group or number of groups.
* The full commit message is now included in the data sent by the
link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-stream-events.html[
`stream-events` command].
* The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-show-queue.html[
`show-queue` command] now shows the time that a task was added to the queue.
Daemon
~~~~~~
* Add `--init` option to Daemon to initialize site on daemon start.
+
The `--init` option will also upgrade an already existing site and is processed in
non-interactive (batch) mode.
Bug Fixes
---------
General
~~~~~~~
* Use the parent change on the same branch for rebases.
+
Since there can be multiple changes with the same commit on different branches,
use the parent change on the same branch during rebase.
* link:https://code.google.com/p/gerrit/issues/detail?id=600[Issue 600]:
Fix change stuck in SUBMITTED state but actually merged.
Configuration
~~~~~~~~~~~~~
* Do not persist default project state in `project.config`.
* Honor the `gerrit.cannonicalWebUrl` setting when opening the browser after init.
* Fix 'query disabled' error when Query Limit is set.
* Honor the `gerrit.createChangeId` setting from the git config in the
The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-hook-commit-msg.html[
`commit-msg` hook].
* link:https://code.google.com/p/gerrit/issues/detail?id=2045[Issue 2045]:
Define user scope when parsing server config.
* link:https://code.google.com/p/gerrit/issues/detail?id=1990[Issue 1990]:
Support optional Certificate Revocation List (CRL) with `CLIENT_SSL_CERT_LDAP`.
Web UI
~~~~~~
Global
^^^^^^
* link:https://code.google.com/p/gerrit/issues/detail?id=1574[Issue 1574]:
Correctly highlight matches of text in escaped HTML entities in suggestion results.
* link:https://code.google.com/p/gerrit/issues/detail?id=1996[Issue 1996]:
The "Keyboard Shortcuts" help popup can be closed by pressing the Escape key.
* link:https://code.google.com/p/gerrit/issues/detail?id=2013[Issue 2013]:
Correctly populate the list of watched changes when watching more than one project.
Change Screens
^^^^^^^^^^^^^^
* Default review comment visibility is changed to expand all recent.
+
By default all comments within the last week are expanded, rather than
only the most recent.
* link:https://code.google.com/p/gerrit/issues/detail?id=1814[Issue 1814]:
Sort labels alphabetically by name in the approval table.
Project Screens
^^^^^^^^^^^^^^^
* Only enable the delete branch button when branches are selected.
* Disable the delete branch button while branch deletion requests are
still being processed.
User Profile Screens
^^^^^^^^^^^^^^^^^^^^
* The preferred email address field is shown as empty if the user has no
preferred email address.
REST API
~~~~~~~~
* Support raw input also in POST requests.
* Show granted date for labels/all when using `/changes/`.
* Return all revisions when `o=ALL_REVISIONS` is set on `/changes/`.
ssh
~~~
* The `--force-message` option is removed from the
The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-review.html[
`review` command].
* link:https://code.google.com/p/gerrit/issues/detail?id=1908[Issue 1908]:
Provide more informative error messages when rejecting updates.
* Remove the limit in the query of patch sets by revision.
* Add `isDraft` in the `patchSet` attribute of `stream-events` data.
+
This allows consumers of the event stream to determine whether or not
the event is related to a draft patch set.
* Normalize the case of review labels submitted via the
The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/cmd-review.html[
`review` command].
* The `@CommandMetaData(descr)` annotation is deprecated in favor of `@CommandMetaData(description)`.
Emails
~~~~~~
* Email notifications are sent for new changes created via actions in the
Web UI such as cherry-picking or reverting a change.
Tools
~~~~~
* git-exproll.sh: return non-zero on errors
Documentation
-------------
* The link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.8/index.html[
documentation index page] is rewritten in a hierarchical structure.
* Various spelling mistakes are corrected in the documentation and previous
release notes.