| Release notes for Gerrit 2.9 |
| ============================ |
| |
| |
| Gerrit 2.9 is now available: |
| |
| link:https://gerrit-releases.storage.googleapis.com/gerrit-2.9.war[ |
| https://gerrit-releases.storage.googleapis.com/gerrit-2.9.war] |
| |
| *WARNING:* Support for Java 1.6 has been discontinued. |
| As of Gerrit 2.9, Java 1.7 is required. |
| |
| Gerrit 2.9 includes the bug fixes done with |
| link:ReleaseNotes-2.8.1.html[Gerrit 2.8.1], |
| link:ReleaseNotes-2.8.2.html[Gerrit 2.8.2], |
| link:ReleaseNotes-2.8.3.html[Gerrit 2.8.3], |
| link:ReleaseNotes-2.8.4.html[Gerrit 2.8.4], and |
| link:ReleaseNotes-2.8.5.html[Gerrit 2.8.5]. |
| These bug fixes are *not* listed in these release notes. |
| |
| Schema Change |
| ------------- |
| |
| |
| *WARNING:* This release contains schema changes. To upgrade: |
| ---- |
| java -jar gerrit.war init -d site_path |
| java -jar gerrit.war reindex --recheck-mergeable -d site_path |
| ---- |
| |
| *WARNING* Support for query via the SQL index is removed. The usage of |
| a secondary index is now mandatory. |
| |
| *WARNING:* Upgrading to 2.9.x requires the server be first upgraded to 2.1.7 (or |
| a later 2.1.x version), and then to 2.9.x. If you are upgrading from 2.2.x.x or |
| later, you may ignore this warning and upgrade directly to 2.9.x. |
| |
| |
| Release Highlights |
| ------------------ |
| |
| |
| * The new change screen is now the default change screen. |
| + |
| The |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-review-ui.html[ |
| documentation of the new review UI] describes the new screens in detail |
| and highlights the important functionality with screenshots. |
| + |
| Users that are accessing the new change screen for the first time are |
| informed about the new change screen by a welcome popup. The welcome |
| popup links to the review UI documentation and allows users to go back |
| to the old change screen. |
| |
| |
| New Features |
| ------------ |
| |
| |
| Secondary Index |
| ~~~~~~~~~~~~~~~ |
| |
| |
| * New `--recheck-mergeable` option on the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/pgm-reindex.html[ |
| reindex] program. |
| |
| ssh |
| ~~~ |
| |
| * New `--notify` option on the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-review.html[ |
| review] command allowing to control when email notifications should be |
| sent. |
| |
| * New `--branch` option on the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-review.html[ |
| review] command. |
| |
| * New `--all-reviewers` option on the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-query.html[ |
| query] command allowing query results to include information about all |
| reviewers added on the change. |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-apropos.html[ |
| apropos] command to search the Gerrit documentation. |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/cmd-create-branch.html[ |
| create-branch] command. |
| |
| REST API |
| ~~~~~~~~ |
| |
| |
| Projects |
| ^^^^^^^^ |
| |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/rest-api-projects.html#get-content[ |
| Get content of a file from HEAD of a branch]. |
| |
| Documentation |
| ^^^^^^^^^^^^^ |
| |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/rest-api-documentation.html#search-documentation.html[ |
| Search documentation]. |
| |
| Access Rights |
| ~~~~~~~~~~~~~ |
| |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/access-control.html#capability_viewAllAccounts[ |
| global capability for viewing all accounts]. |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/access-control.html#capability_viewPlugins[ |
| global capability for viewing the list of installed plugins]. |
| |
| * New `Change Owner` group that allows to assign label permissions to the change owner. |
| |
| * Support link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/access-control.html#category_submit_on_behalf_of[ |
| on behalf of for submit]. |
| |
| * Allow service users to access REST API if `auth.gitBasicAuth = true`. |
| + |
| If link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-gerrit.html#auth.gitBasicAuth[ |
| auth.gitBasicAuth] is set to `true` in the `gerrit.config` file all |
| HTTP traffic is authenticated using standard `BasicAuth` and the |
| credentials are validated using the same auth method as configured for |
| the Gerrit Web UI. E.g. for LDAP this means that users must use their |
| LDAP password for Git over HTTP and for accessing the REST API. |
| + |
| Service users are technical users that were created by the |
| `create-account` SSH command. These users only exist in Gerrit and |
| hence they do not have any LDAP password. This is why service users |
| were not able to make use of the REST API if `auth.gitBasicAuth` was |
| set to `true`. |
| + |
| Now if `auth.gitBasicAuth` is set to `true` users that exist only in |
| Gerrit but not in LDAP are authenticated with their HTTP password from |
| the Gerrit database. |
| |
| Search |
| ~~~~~~ |
| |
| * Support for query via the SQL index is removed. The usage of |
| a secondary index is now mandatory. |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#mergeable[ |
| is:mergeable] search operator |
| + |
| Finds changes that have no merge conflicts and can be merged into the |
| destination branch. |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#parentproject[ |
| parentproject] search operator |
| + |
| Finds changes in the specified project or in one of its child projects. |
| |
| * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#conflicts[ |
| conflicts] search operator |
| + |
| Finds changes that conflict with the specified change. |
| |
| * New operators for absolute last-updated-on search |
| ** link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#before_until[ |
| before / until] |
| ** link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#after_since[ |
| after / since] |
| |
| * Support exact match on file parts in |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-search.html#file[ |
| file] operator |
| |
| * Query shortcuts |
| ** `o` = `owner` |
| ** `r` = `reviewer` |
| ** `p` = `project` |
| ** `f` = `file` |
| |
| Daemon |
| ~~~~~~ |
| |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-inspector.html[ |
| Gerrit Inspector]: interactive Jython shell. |
| + |
| New `-s` option is added to the Daemon to start an interactive Jython shell for inspection and |
| troubleshooting of live data of the Gerrit instance. |
| |
| Documentation |
| ~~~~~~~~~~~~~ |
| |
| |
| * The documentation is now |
| https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/rest-api-documentation.html#search-documentation.html[ |
| searchable]: |
| + |
| On each documentation page there is search box in the right top corner |
| that allows to search in the documentation. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/user-review-ui.html[ |
| Documentation of the new review UI] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/intro-project-owner.html[ |
| New Project Owner Guide] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/index.html[ |
| Newly structured documentation index] |
| |
| |
| Configuration |
| ~~~~~~~~~~~~~ |
| |
| * New init step for installing the `Verified` label. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-gerrit.html#repository.name.defaultSubmitType[ |
| Default submit type] for newly created projects can be configured. |
| |
| * `sshd_log` and `httpd_log` can use log4j configuration. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-gerrit.html#change.allowDrafts[ |
| Draft workflow can be disabled]. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-project-config.html#receive.checkReceivedObjects[ |
| Project configuration for checking of received objects]. |
| |
| |
| Misc |
| ~~~~ |
| |
| * The removal of reviewers and their votes is recorded as a change |
| message. |
| |
| * The change URL is returned on push if the change is updated. |
| |
| * The topic is included into merge commit messages if all merged |
| changes have the same topic. |
| |
| * Stable CSS class names. |
| |
| |
| Plugins |
| ~~~~~~~ |
| |
| |
| * Plugin API to invoke the REST API. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#screen[ |
| Plugins can add entire screens to Gerrit]. |
| |
| * Plugins can have a |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#settings-screen[ |
| settings screen] which is linked from plugin list screen. |
| |
| * Support to edit |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#simple-project-specific-configuration[ |
| project plugin configuration parameters] in the UI. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-gerrit.html#plugins.allowRemoteAdmin[ |
| Remote plugin administration is by default disabled]. |
| |
| |
| Extension Points |
| ^^^^^^^^^^^^^^^^ |
| |
| |
| * Extension point to provide a "Message Of The Day" |
| |
| * Validation for |
| ** link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-validation.html#new-project-validation[ |
| project creation] |
| ** link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-validation.html#new-group-validation[ |
| group creation] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#init_step[ |
| Init steps can do initialization after the site is created] |
| ** The `All-Projects` `project.config` can be read and edited |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#receive-pack[ |
| Initialization of ReceivePack] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#post-receive-hook[ |
| Registration of PostReceiveHooks] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#root-level-commands[ |
| Registration of root level commands] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/dev-plugins.html#multiple-commands[ |
| Multiple SSH commands can be bound to the same class] |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/config-gerrit.html#database.dataSourceInterceptorClass[ |
| DataSource Interception] |
| |
| |
| JavaScript Plugins |
| ^^^^^^^^^^^^^^^^^^ |
| |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.9/js-api.html#self_on[ |
| JavaScript Callbacks] |
| ** Gerrit.on(\'history\', f) |
| ** Gerrit.on(\'submitchange\', f) |
| ** Gerrit.on(\'showchange\', f) |
| |
| * `change_plugins` element on the new change screen that allows to |
| insert arbitrary HTML fragments from plugins |
| |
| |
| Bug Fixes |
| --------- |
| |
| |
| Upgrades |
| -------- |
| |
| * Update JGit to 3.4.0.201405051725-m7 |
| * Update gwtjsonrpc to 1.5 |
| * Update gwtorm to 1.8 |
| * Update guava to 16.0 |
| * Update H2 to 1.3.174 |
| * Update Jetty to 9.1.0.v20131115 |
| * Update Servlet API to 3.1 |
| * Update Lucene to 4.6.0 |
| * Update GWT to 2.6.0 |
| |
| |
| Plugins |
| ------- |
| |
| Replication |
| ~~~~~~~~~~~ |
| |
| * Default push refSpec is changed to `refs/*:refs/*` (non-forced push) |
| + |
| The default push refSpec for the replication plugin has changed from `forced` |
| to `non-forced` push (was `+refs/*:refs/*` and now is `refs/*:refs/*`). This change |
| should not impact typical replication topologies where the slaves are read-only |
| and can be pushed by their masters only. If you wanted explicitly to overwrite |
| all changes on the slaves, you need to add a `push=+refs/*:refs/*` configuration |
| entry for each replication target. |
| |
| * Support replication of HEAD updates |
| |
| * Stream events for ref replication |
| |
| * Replications failed due to "failed to lock" errors are retried |
| |
| * Configuration changes can be detected and replication is |
| automatically restarted |
| |
| Issue Tracker System plugins |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| *WARNING:* The `hooks-*` plugins (`plugins/hooks-bugzilla`, |
| `plugins/hooks-jira` and `plugins/hooks-rtc`) are deprecated with |
| Gerrit 2.9. |
| |
| There are new plugins for the integration with Bugzilla, Jira and IBM |
| Rational Team Concert: |
| |
| * link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-bugzilla[plugins/its-bugzilla] |
| * link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-jira[plugins/its-jira] |
| * link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-rtc[plugins/its-rtc] |
| |
| The new issue tracker system plugins have a common base which is |
| link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-base[plugins/its-base]. |
| |
| The configuration of the new plugins is slightly different than the |
| configuration of the old plugins because they use different section |
| names in the Gerrit configuration. For easy migration the new plugins |
| have an init step that allows to take over the configuration from the |
| old plugins during the Gerrit initialization phase. |
| |
| New Features: |
| |
| * The issue tracker integration can be enabled/disabled per project. |
| * Parent projects can enforce the issue tracker integration for their |
| child projects. |
| * It can be configured for which branches of a project the issue |
| tracker integration is enabled. |
| * Whether the issue tracker integration is enabled/disabled for a |
| project can be changed from the ProjectInfoScreen in the Gerrit |
| WebUI. |