| Release notes for Gerrit 2.12 |
| ============================= |
| |
| |
| Gerrit 2.12 is now available: |
| |
| link:https://www.gerritcodereview.com/download/gerrit-2.12.war[ |
| https://www.gerritcodereview.com/download/gerrit-2.12.war] |
| |
| Important Notes |
| --------------- |
| |
| *WARNING:* This release contains schema changes. To upgrade: |
| ---- |
| java -jar gerrit.war init -d site_path |
| ---- |
| |
| *WARNING:* To use online reindexing when upgrading to 2.12.x, the server must |
| first be upgraded to 2.8 (or 2.9) and then through 2.10 and 2.11 to 2.12.x. If |
| reindexing will be done offline, you may ignore this warning and upgrade directly |
| to 2.12.x. |
| |
| *WARNING:* When upgrading from version 2.8.4 or older with a site that uses |
| Bouncy Castle Crypto, new versions of the libraries will be downloaded. The old |
| libraries should be manually removed from site's `lib` folder to prevent the |
| startup failure described in |
| link:https://code.google.com/p/gerrit/issues/detail?id=3084[issue 3084]. |
| |
| *WARNING:* The Solr secondary index is no longer supported. With this release |
| the only supported secondary index is Lucene. |
| |
| *WARNING:* The format of the `ref-updated` event has changed. Users of the |
| link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger[ |
| Jenkins Gerrit Trigger plugin] with jobs triggering on `ref-updated` should |
| upgrade to at least |
| link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger#GerritTrigger-Version2.15.1%28releasedSept142015%29[ |
| version 2.15.1]. If an upgrade of the plugin is not possible, a workaround is |
| to change the branch configuration to type `Path` with a pattern like |
| `refs/*/master` instead of `Plain` and `master`. |
| |
| |
| Release Highlights |
| ------------------ |
| |
| This release includes the following new features. See the sections below for |
| further details. |
| |
| * New change submission workflows: 'Submit Whole Topic' and 'Submitted Together'. |
| |
| * Support for GPG Keys and signed pushes. |
| |
| |
| New Features |
| ------------ |
| |
| New Change Submission Workflows |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| * New 'Submit Whole Topic' setting. |
| + |
| When the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#change.submitWholeTopic[ |
| `change.submitWholeTopic`] setting is enabled, all changes belonging to the same |
| topic will be submitted at the same time. |
| + |
| This setting should be considered experimental, and is disabled by default. |
| |
| * Submission of changes may include ancestors. |
| + |
| If a change is submitted that has submittable ancestor changes, those changes |
| will also be submitted. |
| |
| * The merge queue is removed. |
| + |
| Changes that cannot be submitted due to missing dependencies will no longer |
| enter the 'Submitted, Merge Pending' state. |
| |
| |
| GPG Keys and Signed Pushes |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| * Signed push can be enabled by setting |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#receive.enableSignedPush[ |
| `receive.enableSignedPush`] to true. |
| + |
| When a client pushes with `git push --signed`, Gerrit ensures that the push |
| certificate is valid and signed with a valid public key stored in the |
| `refs/gpg-keys` branch of the `All-Users` repository. |
| |
| * When signed push is enabled, and |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#gerrit.editGpgKeys[ |
| `gerrit.editGpgKeys`] is set to true, users may upload their public GPG |
| key via the REST API or UI. |
| + |
| If this setting is not enabled, GPG keys may only be added by administrators |
| with direct access to the `All-Users` repository. |
| |
| * Administrators may also configure |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#receive.certNonceSeed[ |
| `receive.certNonceSeed`] and |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#receive.certNonceSlop[ |
| `receive.certNonceSlop`]. |
| |
| |
| Secondary Index |
| ~~~~~~~~~~~~~~~ |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3333[Issue 3333]: |
| Support searching for changes by author and committer. |
| + |
| Changes are indexed by the git author and committer of the latest patch set, |
| and can be searched with the `author:` and `committer:` operators. |
| + |
| Changes are matched on either the exact whole email address, or on parts of the |
| name or email address. |
| |
| * Add `from:` search operator to match by owner of change or author of comments. |
| |
| * Add `commentby:` search operator to search by author of comments. |
| |
| * Change the `topic:` search operator to search by the exact topic name. |
| |
| * Add `intopic:` search operator to search by topics containing the search term. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3291[Issue 3291]: |
| Add `has:edit` search operator to match changes that have edit revisions on them. |
| |
| * Allow configuration of maximum query size. |
| + |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#index.maxTerms[ |
| `index.maxTerms`] can be set to limit the number of leaf index terms. |
| |
| * Expose Lucene index writers for plugins. |
| + |
| Plugins can now reconfigure various Lucene performance related parameters |
| at runtime. |
| |
| * Make Lucene index writers auto-commit writers. |
| + |
| Plugins can now temporarily turn on auto-committing in situations where it makes |
| sense to enforce all changes to be written to disk ASAP. |
| |
| |
| UI |
| ~~ |
| |
| General |
| ^^^^^^^ |
| |
| * Edit and diff preferences can be modified from the user preferences screen. |
| + |
| Previously it was only possible to edit these preferences from the actual |
| diff and edit screens. |
| |
| * Add 'Edits' to the 'My' dashboard menu to list changes on which the user |
| has an unpublished edit revision. |
| |
| * Support for URL aliases. |
| + |
| Administrators may define |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#urlAlias[ |
| URL aliases] to map plugin screens into the Gerrit URL namespace. |
| + |
| Plugins may use user-specific URL aliases to replace certain screens for certain |
| users. |
| |
| |
| Project Screen |
| ^^^^^^^^^^^^^^ |
| |
| * New tab to list the project's tags, similar to the branch list. |
| |
| |
| Inline Editor |
| ^^^^^^^^^^^^^ |
| |
| * Store and load edit preferences in git. |
| + |
| Edit preferences are stored and loaded to/from the `All-Users` repository. |
| |
| * Add 'auto close brackets' feature. |
| |
| * Add 'match brackets' feature. |
| |
| * Make the cursor blink rate customizable. |
| |
| * Add support for Emacs and Vim key maps. |
| |
| |
| Change Screen |
| ^^^^^^^^^^^^^ |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3318[Issue 3318]: |
| Highlight 'Reply' button if there are draft comments on any patch set. |
| + |
| If any patch set of the change has a draft comment by the current user, |
| the 'Reply' button is highlighted. |
| + |
| The icons depicting draft comments are removed from the revisions drop-down |
| list. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=1100[Issue 1100]: |
| Publish all draft comments when replying to a change. |
| + |
| All draft comments, including those on older patch sets, are published when |
| replying to a change. |
| |
| * Show file size increase/decrease for binary files. |
| |
| * Show uploader if different from change owner. |
| |
| * Show push certificate status. |
| |
| * Show change subject as tooltip on related changes list. |
| + |
| This helps to identify changes when the subject is truncated in the list. |
| |
| |
| Side-By-Side Diff |
| ^^^^^^^^^^^^^^^^^ |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3293[Issue 3293]: |
| Add syntax highlighting for Puppet. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3447[Issue 3447]: |
| Add syntax highlighting for VHDL. |
| |
| |
| Group Screen |
| ^^^^^^^^^^^^ |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=1479[Issue 1479]: |
| The group screen now includes an 'Audit Log' panel showing member additions, |
| removals, and the user who made the change. |
| |
| |
| API |
| ~~~ |
| |
| Several new APIs are added. |
| |
| Accounts |
| ^^^^^^^^ |
| |
| * Suggest accounts. |
| |
| Tags |
| ^^^^ |
| |
| * List tags. |
| |
| * Get tag. |
| |
| |
| REST API |
| ~~~~~~~~ |
| |
| New REST API endpoints and new options on existing endpoints. |
| |
| |
| Accounts |
| ^^^^^^^^ |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#set-username[ |
| Set Username]: Set the username of an account. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#get-detail[ |
| Get Account Details]: Get the details of an account. |
| + |
| In addition to the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#account-info[ |
| AccountInfo] fields returned by the existing |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-accounts.html#get-account[ |
| Get Account] endpoint, the new REST endpoint returns the registration date of |
| the account and the timestamp of when contact information was filed for this |
| account. |
| |
| |
| Changes |
| ^^^^^^^ |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#set-review[ |
| Set Review]: Add an option to omit duplicate comments. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#get-safe-content[ |
| Download Content]: Download the content of a file from a certain revision, in a |
| safe format that poses no risk for inadvertent execution of untrusted code. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#submitted-together[ |
| Get Submitted Together]: Get the list of all changes that will be submitted at |
| the same time as the change. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=1100[Issue 1100]: |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-changes.html#set-review[ |
| Set Review]: Add an option to publish draft comments on all revisions. |
| |
| Config |
| ^^^^^^ |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-config.html#get-info[ |
| Get Server Info]: Return information about the Gerrit server configuration. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-config.html#confirm-email[ |
| Confirm Email]: Confirm that the user owns an email address. |
| |
| |
| Groups |
| ^^^^^^ |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-groups.html#list-group[ |
| List Groups]: Add option to suggest groups. |
| + |
| This allows group auto-completion to be used in a plugin's UI. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-groups.html#get-audit-log[ |
| Get Audit Log]: Get the audit log of a Gerrit internal group, showing member |
| additions, removals, and the user who made the change. |
| |
| |
| Projects |
| ^^^^^^^^ |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-projects.html#run-gc[ |
| Run GC]: Add `aggressive` option to specify whether or not to run an aggressive |
| garbage collection. |
| |
| * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/rest-api-projects.html#list-tags[ |
| List Tags]: Support filtering by substring and regex, and pagination with |
| `--start` and `--end`. |
| |
| |
| SSH |
| ~~~ |
| |
| * Add support for ZLib Compression. |
| + |
| To enable compression use the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#sshd.enableCompression[ |
| `sshd.enableCompression` setting]. |
| |
| * Add support for hmac-sha2-256 and hmac-sha2-512 as MACs. |
| |
| Plugins |
| ~~~~~~~ |
| |
| General |
| ^^^^^^^ |
| |
| * Gerrit client can now pass JavaScriptObjects to extension panels. |
| |
| * New UI extension point for header bar in change screen. |
| |
| * New UI extension point to password screen. |
| |
| * New UI extension points to project info screen. |
| |
| * New UI extension point for pop down buttons on change screen. |
| |
| * New UI extension point for buttons in header bar on change screen. |
| |
| * New UI extension point at bottom of the user preferences screen. |
| |
| * New UI extension point for the 'Included In' drop-down panel. |
| + |
| By implementing the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/dev-plugins.html#included-in[ |
| Included In interface], plugins may add entries to the 'Included In' dropdown |
| menu on the change screen. |
| |
| * Plugins can extend Gerrit screens with GWT controls. |
| |
| * Plugins can add custom settings screens. |
| |
| * Referencing groups in `project.config`. |
| + |
| Plugins can refer to groups so that when they are renamed, the project |
| config will also be updated in this section. |
| |
| * API |
| |
| ** Allow to use `CurrentSchemaVersion`. |
| |
| ** Allow to use `InternalChangeQuery.query()`. |
| |
| ** Allow to use `JdbcUtil.port()`. |
| |
| ** Allow to use GWTORM `Key` classes. |
| |
| |
| Other |
| ~~~~~ |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3401[Issue 3401]: |
| Add option to |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#sendemail.allowRegisterNewEmail[ |
| disable registration of new email addresses]. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=2061[Issue 2061] |
| Add Support for `git-upload-archive`. |
| + |
| This allows use the standard `git archive` command to create an archive |
| of the content of a repository. |
| |
| * Add a background job to automatically abandon inactive changes. |
| + |
| The |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/config-gerrit.html#changeCleanup[ |
| changeCleanup] configuration can be set to periodically check for inactive |
| changes and automatically abandon them. |
| |
| * Add support for the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/database-setup.html#createdb_db2[ |
| DB2 database]. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3441[Issue 3441]: |
| Add support for the |
| link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/database-setup.html#createdb_derby[ |
| Apache Derby database]. |
| |
| * Download commands plugin: Use commit IDs for download commands when change refs are hidden. |
| + |
| Git has a configuration option to hide refs from the initial advertisement |
| (`uploadpack.hideRefs`). This option can be used to hide the change refs from |
| the client. As consequence this prevented fetching changes by change ref from |
| working. |
| + |
| Setting `download.checkForHiddenChangeRefs` in the `gerrit.config` to true |
| allows the download commands plugin to check for hidden change refs. |
| |
| * Add a new 'Maintain Server' global capability. |
| + |
| Members of a group with the 'Maintain Server' capability may view caches, tasks, |
| and queues, and invoke the index REST API on changes. |
| |
| |
| Bug Fixes |
| --------- |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3499[Issue 3499]: |
| Fix syntax highlighting of raw string literals in go. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3643[Issue 3643]: |
| Fix syntax highlighting of ES6 string templating using backticks. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3653[Issue 3653]: |
| Correct timezone in sshd log after DST change. |
| + |
| When encountering a DST switch, the timezone wasn't updated until |
| the server was reloaded. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3306[Issue 3306]: |
| Allow admins to read, push and create on `refs/users/default`. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3212[Issue 3212]: |
| Fix failure to run `init` when `--site-path` option is not explicitly given. |
| |
| * Make email validation case insensitive. |
| + |
| While link:https://tools.ietf.org/html/rfc5321#section-2.3.11[ |
| RFC 5321 section 2.3.11] allows for the local-part (the part left of |
| the '@') of an email address to be case sensitive, the domain portion is |
| case insensitive according to |
| link:https://tools.ietf.org/html/rfc1035#section-3.1[RFC 1035 section 3.1]. |
| And in practice, even the local-part is typically case insensitive also. |
| |
| * `commit-msg` hook: Don't add `Change-Id` line on temporary commits. |
| + |
| Commits created with `git commit --fixup` or `git commit --squash` are not |
| intended to be pushed to Gerrit, and don't need a `Change-Id` line. |
| + |
| This also prevents changes from being accidentally uploaded, at least for |
| projects that have the 'Require Change-Id' configuration enabled. |
| |
| * link:http://code.google.com/p/gerrit/issues/detail?id=3444[Issue 3444]: |
| download-commands plugin: Fix clone with commit-msg hook when project name |
| contains '/'. |
| |
| * Use full ref name in `refName` attribute of `ref-updated` events. |
| + |
| The link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.12/json.html#refUpdate[ |
| refUpdate attribute] in `ref-updated` events did not include the full name |
| of the ref in the `refName` attribute, i.e. `master` was used instead of |
| `refs/heads/master`. |
| + |
| Support for the new format is added in |
| link:https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger#GerritTrigger-Version2.15.1%28releasedSept142015%29[ |
| version 2.15.1 of the Jenkins Gerrit Trigger plugin]. |
| + |
| Users who are unable to upgrade the plugin may instead change the |
| trigger's branch configuration to type `Path` with a pattern like |
| `refs/*/master` instead of `Plain` and `master`. |
| |
| * link:https://code.google.com/p/gerrit/issues/detail?id=3714[Issue 3714]: |
| Improve visibility of comments on dark themes. |
| |
| * Fix highlighting of search results and trailing whitespaces in intraline |
| diff chunks. |
| |
| * Fix server error when listing annotated/signed tag that has no tagger info. |
| |
| * Don't create new account when claimed OAuth identity is unknown. |
| + |
| The Claimed Identity feature was enabled to support old Google OpenID accounts, |
| that cannot be activated anymore. In some corner cases, when for example the URL |
| is not from the production Gerrit site, for example on a staging instance, the |
| OpenID identity may deviate from the original one. In case of mismatch, the lookup |
| of the user for the claimed identity would fail, causing a new account to be |
| created. |
| |
| * Suggest to upgrade installed plugins per default during site initialization |
| to new Gerrit version. |
| + |
| The default was 'No' which resulted in some sites not upgrading core |
| plugins and running the wrong versions. |
| |
| * link:https://code.google.com/p/gerrit/issues/detail?id=3698[Issue 3698]: |
| Fix creation of the administrator user on databases with pre-allocated |
| auto-increment column values. |
| + |
| When using a database configuration where auto-increment column values are |
| pre-allocated, it was possible that the 'Administrators' group was created |
| with an ID other than `1`. In this case, the created admin user was not added |
| to the correct group, and did not have the correct admin permissions. |
| |
| * link:https://code.google.com/p/gerrit/issues/detail?id=3018[Issue 3018]: |
| Fix query for changes using a label with a group operator. |
| + |
| The `group` operator was being ignored when searching for changes with labels |
| because the search index does not contain group information. |
| |
| * Fix online reindexing of changes that don't already exist in the index. |
| + |
| Changes are now always reloaded from the database during online reindex. |
| |
| * Fix reading of plugin documentation. |
| + |
| Under some circumstances it was possible to fail with an IO error. |
| |
| Documentation Updates |
| --------------------- |
| |
| * link:https://code.google.com/p/gerrit/issues/detail?id=412[Issue 412]: |
| Update documentation of `commentlink.match` regular expression to clarify |
| that the expression is applied to the rendered HTML. |
| |
| * Remove warning about unstable change edit REST API endpoints. |
| + |
| These endpoints should be considered stable since version 2.11. |
| |
| * Document that `ldap.groupBase` and `ldap.accountBase` are repeatable. |
| |
| Upgrades |
| -------- |
| |
| * Upgrade Asciidoctor to 1.5.2 |
| |
| * Upgrade AutoValue to 1.1 |
| |
| * Upgrade Bouncy Castle to 1.52 |
| |
| * Upgrade CodeMirror to 5.7 |
| |
| * Upgrade gson to 2.3.1 |
| |
| * Upgrade guava to 19.0-RC2 |
| |
| * Upgrade gwtorm to 1.14-20-gec13fdc |
| |
| * Upgrade H2 to 1.3.176 |
| |
| * Upgrade httpcomponents to 4.4.1 |
| |
| * Upgrade Jetty to 9.2.13.v20150730 |
| |
| * Upgrade JGit to 4.1.1.201511131810-r |
| |
| * Upgrade joda-time to 2.8 |
| |
| * Upgrade JRuby to 1.7.18 |
| |
| * Upgrade jsch to 0.1.53 |
| |
| * Upgrade JUnit to 4.11 |
| |
| * Upgrade Lucene to 5.3.0 |
| |
| * Upgrade Prolog Cafe 1.4.1 |
| |
| * Upgrade servlet API to 8.0.24 |
| |
| * Upgrade Truth to version 0.27 |
| |