|  | Release notes for Gerrit 2.8 | 
|  | ============================ | 
|  |  | 
|  |  | 
|  | Gerrit 2.8 is now available: | 
|  |  | 
|  | link:https://gerrit-releases.storage.googleapis.com/gerrit-2.8.war[ | 
|  | https://gerrit-releases.storage.googleapis.com/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. | 
|  |  | 
|  | *WARNING:* The replication plugin now automatically creates missing repositories | 
|  | on the destination if during the replication of a ref the target repository is | 
|  | found to be missing. This is a change in behavior of the replication plugin. To go | 
|  | back to the old behavior, set the parameter `remote.NAME.createMissingRepositories` | 
|  | in the `replication.config` file to `false`. | 
|  |  | 
|  | *WARNING:* The deprecated `approve` alias for the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-review.html[ | 
|  | review] SSH command has been removed. This is important for all users | 
|  | of the Jenkins link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger[ | 
|  | Gerrit Trigger Plugin] since this plugin by default uses the `approve` | 
|  | command to vote and comment on changes in Gerrit. If you use the Gerrit | 
|  | Trigger Plugin, go to its global configuration in Jenkins and adapt the | 
|  | Gerrit commands to use the `review` command instead of the `approve` | 
|  | command. | 
|  |  | 
|  | *WARNING:* The new change screen only displays download commands if the | 
|  | `download-commands` core plugin or any other plugin providing download | 
|  | commands is installed. The `download-commands` plugin provides the | 
|  | standard download schemes and commands. It is packaged together with | 
|  | Gerrit and can be installed during the | 
|  | link:https://gerrit-review.googlesource.com/Documentation/pgm-init.html[ | 
|  | site initialization]. | 
|  |  | 
|  |  | 
|  | Release Highlights | 
|  | ------------------ | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/intro-change-screen.html[ | 
|  | New change screen] with completely redesigned UI and fully using the REST API. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_index_a_section_index[ | 
|  | Secondary indexing with Lucene and Solr]. | 
|  |  | 
|  | * Lots of new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api.html[ | 
|  | REST API endpoints]. | 
|  |  | 
|  | * New | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#ui_extension[ | 
|  | UI extension] and | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/js-api.html[ | 
|  | JavaScript API] for plugins. | 
|  |  | 
|  | * New build system using Facebook's link:http://facebook.github.io/buck/[Buck]. | 
|  |  | 
|  | * New core plugin: Download Commands. | 
|  |  | 
|  |  | 
|  | New Features | 
|  | ------------ | 
|  |  | 
|  | Build | 
|  | ~~~~~ | 
|  |  | 
|  | * Gerrit is now built with | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-buck.html[ | 
|  | Buck]. | 
|  |  | 
|  | * Documentation is now built with Buck and link:http://asciidoctor.org[Asciidoctor]. | 
|  |  | 
|  |  | 
|  | Indexing and Search | 
|  | ~~~~~~~~~~~~~~~~~~~ | 
|  |  | 
|  | Gerrit can be configured to use a | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_index_a_section_index[ | 
|  | secondary index] with Lucene or Solr. | 
|  |  | 
|  | Existing search operations use the secondary index, when enabled, to increase | 
|  | performance and reduce resource usage. | 
|  |  | 
|  | The following additional search operations are possible when secondary indexing | 
|  | is enabled: | 
|  |  | 
|  | * New | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#comment[ | 
|  | `comment` search operator]. | 
|  |  | 
|  | * The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/user-search.html#file[ | 
|  | `file` operator] can be used to find changes on the specified file. | 
|  |  | 
|  | * Regular expressions are allowed in `file` searches. | 
|  |  | 
|  |  | 
|  | *WARNING:* After enabling the secondary index, the index must be built using the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/pgm-reindex.html[ | 
|  | reindex program] before restarting the Gerrit server. | 
|  |  | 
|  |  | 
|  | Configuration | 
|  | ~~~~~~~~~~~~~ | 
|  |  | 
|  | * Project owners can define `receive.maxObjectSizeLimit` in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#receive.maxObjectSizeLimit[ | 
|  | project configuration] to further reduce the global setting. | 
|  |  | 
|  | * Site administrators can define a | 
|  | link:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/pgm-init.html[ | 
|  | site initialization command]. | 
|  |  | 
|  | * New `auth.httpDisplaynameHeader` and `auth.httpEmailHeader` in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_httpd_a_section_httpd[ | 
|  | Customizable registration page for HTTP authentication]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#__a_id_httpd_a_section_httpd[ | 
|  | Configurable external `robots.txt` file]. | 
|  |  | 
|  | * Support for | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/database-setup.html#createdb_oracle[ | 
|  | Oracle database]. | 
|  |  | 
|  | * New bash completion script for autocompletion of parameters to the gerrit.sh wrapper. | 
|  |  | 
|  | * The site can be | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-auto-site-initialization.html[ | 
|  | auto-initialized on server startup]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#httpd.filterClass[ | 
|  | Configurable filtering of HTTP traffic through Gerrit's HTTP protocol]. | 
|  |  | 
|  | * Labels can be | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#httpd.label_copyAllScoresIfNoCodeChange[ | 
|  | configured to copy scores forward to new patch sets if there is no code change]. | 
|  |  | 
|  | * Labels can be | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-labels.html#httpd.label_copyAllScoresOnTrivialRebase[ | 
|  | configured to copy scores forward to new patch sets for trivial rebases]. | 
|  |  | 
|  | Web UI | 
|  | ~~~~~~ | 
|  |  | 
|  |  | 
|  | Global | 
|  | ^^^^^^ | 
|  |  | 
|  | * The change status is shown in a separate column on dashboards and search results. | 
|  |  | 
|  | Change Screens | 
|  | ^^^^^^^^^^^^^^ | 
|  |  | 
|  |  | 
|  | * New change screen with completely redesigned UI, using the REST API. | 
|  | + | 
|  | Site administrators can | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#gerrit.changeScreen[ | 
|  | configure which change screen is shown by default]. | 
|  | + | 
|  | Users can choose which one to use in their personal preferences, either using | 
|  | the site default or explicitly choosing the old one or new one. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=141[Issue 141]: | 
|  | In the new change screen, comments can be added on a range of lines. | 
|  |  | 
|  | * 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. | 
|  |  | 
|  | * "Uploaded Patch Set 1" change message is added on changes when they | 
|  | are uploaded. | 
|  |  | 
|  |  | 
|  | REST API | 
|  | ~~~~~~~~ | 
|  |  | 
|  | * Several new link:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-access.html#list-access[ | 
|  | List access rights for project(s)] | 
|  |  | 
|  | Accounts | 
|  | ^^^^^^^^ | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#create-account[ | 
|  | Create account] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-account-name[ | 
|  | Get account full name] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-account-name[ | 
|  | Set account full name] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-account-name[ | 
|  | Delete account full name] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#list-account-emails[ | 
|  | List account email addresses] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-account-email[ | 
|  | Get account email address] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-preferred-email[ | 
|  | Set account preferred email address] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#create-account-email[ | 
|  | Create account email] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-account-email[ | 
|  | Delete account email] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-active[ | 
|  | Get account state] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-active[ | 
|  | Set account state to active] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-active[ | 
|  | Set account state to inactive] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-http-password[ | 
|  | Get account HTTP password] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#set-http-password[ | 
|  | Set or generate account HTTP password] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-http-password[ | 
|  | Delete account HTTP password] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#list-ssh-keys[ | 
|  | List account SSH keys] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-ssh-key[ | 
|  | Get account SSH key] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#add-ssh-key[ | 
|  | Add account SSH key] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#delete-ssh-key[ | 
|  | Delete account SSH key] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-username[ | 
|  | Get account username] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#get-starred-changes[ | 
|  | Get starred changes] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#star-change[ | 
|  | Star change] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-accounts.html#unstar-change[ | 
|  | Unstar change] | 
|  |  | 
|  | Changes | 
|  | ^^^^^^^ | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#rebase-change[ | 
|  | Rebase change] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#cherry-pick[ | 
|  | Cherry-pick revision] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-content[ | 
|  | Get content of a file in a revision] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-patch[ | 
|  | Get revision as a formatted patch] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-diff[ | 
|  | Get diff of a file in a revision] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-commit[ | 
|  | Get parsed commit of a revision] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#publish-draft-change[ | 
|  | Publish draft change] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#delete-draft-change[ | 
|  | Delete draft change] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#suggest-reviewers[ | 
|  | Suggest reviewers] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-changes.html#get-included-in[ | 
|  | Get included in] | 
|  |  | 
|  |  | 
|  | Config | 
|  | ^^^^^^ | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-config.html#get-capabilities[ | 
|  | Get capabilities] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-config.html#get-version[ | 
|  | Get version] (of the Gerrit server) | 
|  |  | 
|  |  | 
|  | Projects | 
|  | ^^^^^^^^ | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#list-branches[ | 
|  | List branches] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#get-branch[ | 
|  | Get branch] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#create-branch[ | 
|  | Create branch] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#delete-branch[ | 
|  | Delete branch] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#list-child-projects[ | 
|  | List child projects] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#get-child-project[ | 
|  | Get child project] | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/rest-api-projects.html#set-config[ | 
|  | Set configuration] | 
|  |  | 
|  |  | 
|  | Capabilities | 
|  | ~~~~~~~~~~~~ | 
|  |  | 
|  |  | 
|  | New global capabilities are added. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#ui_extension[ | 
|  | UI extension] and | 
|  | link:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-validation.html#pre-merge-validation[ | 
|  | pre-merge validation steps]. | 
|  |  | 
|  | * Plugins may now provide | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#capabilities[ | 
|  | Global capabilities]. | 
|  |  | 
|  | * Plugins may now | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#plugin_name[ | 
|  | define their own name] and get the name injected at runtime. | 
|  |  | 
|  | * The "hello world" plugin is replaced with the "cookbook plugin" which has more | 
|  | examples of the plugin API's usage. | 
|  |  | 
|  | * Plugins may now trigger and listen to a "project deleted" | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#events[ | 
|  | event]. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2101[Issue 2101]: | 
|  | Plugins implementing LifecycleListener can use auto registration. | 
|  |  | 
|  | * Plugins may bind REST endpoints with empty view names. | 
|  |  | 
|  | * Plugins may now provide | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#top-menu-extensions[ | 
|  | entries in Gerrit's top menu]. | 
|  |  | 
|  | * Plugins may now | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#stream-events[ | 
|  | send events to the events stream]. | 
|  |  | 
|  | * Plugins may now bind multiple SSH commands to the same implementation class. | 
|  |  | 
|  | * Plugins may now provide | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/dev-plugins.html#download-commands[ | 
|  | download schemes and download commands]. | 
|  | + | 
|  | Commonly used download schemes and commands are moved out of core | 
|  | Gerrit and are now implemented by a new core plugin, `download-commands`. | 
|  |  | 
|  |  | 
|  |  | 
|  | Commit Message Length Checker | 
|  | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 
|  |  | 
|  |  | 
|  | * Commits whose subject or body length exceeds the limit can be rejected. | 
|  |  | 
|  | Replication | 
|  | ^^^^^^^^^^^ | 
|  |  | 
|  | * Automatically create missing repositories on the destination. | 
|  | + | 
|  | If during the replication of a ref the target repository is found to be missing, | 
|  | the repository is automatically created. | 
|  | + | 
|  | This is a change in behavior of the replication plugin. To go back to the old | 
|  | behavior, set the parameter `remote.NAME.createMissingRepositories` in the | 
|  | `replication.config` file to `false`. | 
|  |  | 
|  | * Support for replication of project deletions. | 
|  | + | 
|  | The replication plugin can now be configured to listen to project deletion events | 
|  | and to replicate the project deletions. By default project deletions are *not* | 
|  | replicated. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=1880[Issue 1880]: | 
|  | Make `{name}` placeholder optional when replicating a single project. | 
|  | + | 
|  | 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. | 
|  |  | 
|  | * Pushes to each destination URI are serialized. | 
|  | + | 
|  | Scheduling a retry to avoid collision with an in-flight push is differentiated | 
|  | from a retry due to a transport error.  In the case of collision avoidance, the | 
|  | job is rescheduled according to the replication delay, rather than the retry | 
|  | delay. | 
|  |  | 
|  |  | 
|  | ssh | 
|  | ~~~ | 
|  |  | 
|  |  | 
|  | * The `commit-msg` hook installation command is now | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-gerrit.html#gerrit.installCommitMsgHookCommand[ | 
|  | configurable]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-ls-members.html[ | 
|  | New `ls-members` command]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-stream-events.html[ | 
|  | `stream-events` command]. | 
|  |  | 
|  | * The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-show-queue.html[ | 
|  | `show-queue` command] now shows the time that a task was added to the queue. | 
|  |  | 
|  | * The deprecated `approve` alias of the `review` command is removed. | 
|  |  | 
|  | * The 'CHANGEID,PATCHSET' format for specifying a patch set in the `review` command | 
|  | is no longer considered to be a 'legacy' feature that will be removed in future. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=1699[Issue 1699]: | 
|  | Fix handling of projects with trailing ".git" suffix. | 
|  |  | 
|  | * Limit retrying of submitted changes to 12 hours. | 
|  |  | 
|  | * Don't allow project owners to delete branches if force push is blocked. | 
|  |  | 
|  | * Allow usernames to begin with digit. | 
|  |  | 
|  | * Verify access to source ref during add branch operation. | 
|  | + | 
|  | Previously Gerrit didn't check access to source ref during add branch | 
|  | operation. Because of that users could create a branch from any known | 
|  | commit SHA1, even when they didn't have access to that commit. | 
|  |  | 
|  | * Fix Gerrit API sources JAR contents. | 
|  | + | 
|  | The gerrit-extension-api-X.Y-all-sources.jar did not actually contain any | 
|  | sources. | 
|  |  | 
|  | * Generate javadoc for Gerrit Extension and Plugin APIs. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2244[Issue 2244]: | 
|  | Update patch status before skipping duplicate emails. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=1640[Issue 1640]: | 
|  | Catch missing LDAP accounts in group membership. | 
|  |  | 
|  | * Use `rev-parse` to find gitdir when generating commit-msg hook hint. | 
|  |  | 
|  | * Performance Fix: Minimize number of advertisedHaves. | 
|  | + | 
|  | By filtering the refs before the objectIds are added to advertisedHaves, | 
|  | lots of time can be saved when pushing to complex Gits. | 
|  |  | 
|  |  | 
|  | 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 | 
|  | link:https://gerrit-documentation.storage.googleapis.com/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`. | 
|  |  | 
|  | * Do not override error and gc logging configuration provided by the | 
|  | `-Dlog4j.configuration` parameter. | 
|  |  | 
|  | * Fix JdbcSQLException when numbers are read from cache. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | * Display "Working..." when header is hidden. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2125[Issue 2125]: | 
|  | Correctly shows '-1' instead of '1' for label score. | 
|  | + | 
|  | If a user voted '-1', and then another user voted '+1' for a label, the | 
|  | label was shown as a red '1' in the change list instead of red '-1'. | 
|  |  | 
|  | 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. | 
|  |  | 
|  | * Don't add "This patchset was cherry picked to ..." for the same change. | 
|  | + | 
|  | If a patchset is cherry-picked to the same destination branch and | 
|  | ends up on the same change, it does not make sense to add the "This | 
|  | patchset was cherry picked to change ..." message. | 
|  | + | 
|  | In this case, it makes more sense for the message to say "Uploaded | 
|  | patch set N" instead. | 
|  |  | 
|  | * Make links appear with consistent colors. | 
|  |  | 
|  | * Prevent duplicate permitted_labels from being shown in labels list. | 
|  |  | 
|  | Diff Screens | 
|  | ^^^^^^^^^^^^ | 
|  |  | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=1233[Issue 1233]: | 
|  | Prevent expansion when whole file isn't loaded. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2122[Issue 2122]: | 
|  | Show review comments for unchanged files. | 
|  | + | 
|  | When comparing patch sets and some comment was put in one side, | 
|  | that comment was not shown if there was no code changed between | 
|  | the two patch sets | 
|  |  | 
|  | 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:https://gerrit-documentation.storage.googleapis.com/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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/cmd-review.html[ | 
|  | `review` command]. | 
|  |  | 
|  | * The `@CommandMetaData(descr)` annotation is deprecated in favor of `@CommandMetaData(description)`. | 
|  |  | 
|  | * Improve the error message when rejecting upload for review to a read-only project. | 
|  |  | 
|  |  | 
|  | Plugins | 
|  | ~~~~~~~ | 
|  |  | 
|  | Global | 
|  | ^^^^^^ | 
|  |  | 
|  | * Better error message when a Javascript plugin cannot be loaded. | 
|  |  | 
|  | * Plugin documentation links are opened in a new tab. | 
|  |  | 
|  | * The GitReferenceUpdatedListener.Event API is simplified. | 
|  | + | 
|  | The Event exposed the getUpdates method which implied that one Event | 
|  | could contain updates of more than one reference. However, this feature | 
|  | was never used. | 
|  | + | 
|  | The API is simplified in the sense that one Event now corresponds to | 
|  | one ref update only. | 
|  |  | 
|  | * Make plugin servlet's context path authorization aware. | 
|  |  | 
|  |  | 
|  | Review Notes | 
|  | ^^^^^^^^^^^^ | 
|  |  | 
|  | * Do not try to create review notes for ref deletion events. | 
|  |  | 
|  | * Fix committing the notes from the export command. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2087[Issue 2087]: | 
|  | Fix note creation when the same commit exists in another Git repository. | 
|  |  | 
|  | * Improve the export command performance. | 
|  |  | 
|  | * Create review note also when newObjectId already present in another branch. | 
|  |  | 
|  | * Correct documentation of the export command. | 
|  |  | 
|  | 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:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/index.html[ | 
|  | documentation index page] is rewritten in a hierarchical structure. | 
|  |  | 
|  | * Documentation of | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8/config-project-config.txt[ | 
|  | project configuration] is added. | 
|  |  | 
|  | * Various spelling mistakes are corrected in the documentation and previous | 
|  | release notes. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2144[Issue 2144]: | 
|  | Documentation of the query operator is fixed. | 
|  |  | 
|  |  | 
|  | Upgrades | 
|  | -------- | 
|  |  | 
|  | * Update JGit to 3.1.0.201310021548-r | 
|  | * Update gwtorm to 1.7 | 
|  | * Update guice to 4.0-beta | 
|  | * Update guava to 15.0 | 
|  | * Update H2 to 1.3.173 | 
|  | * Update bouncycastle to 1.44 | 
|  | * Update Apache Mina to 2.0.7 | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2232[Issue 2232]: | 
|  | Update Apache SSHD to 0.9.0.201311081 | 
|  | * asciidoctor 0.1.4 is now required to build the documentation | 
|  | * jsr305 library was removed | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2232[Issue 2232]: | 
|  | Update Jsch to 1.5.0 |