Release notes for Gerrit 2.6 ============================ Gerrit 2.6 is now available: link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.6.war[http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.6.war] Gerrit 2.6 includes the bug fixes done with link:ReleaseNotes-2.5.1.html[Gerrit 2.5.1] and link:ReleaseNotes-2.5.2.html[Gerrit 2.5.2]. 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 ---- *WARNING:* Upgrading to 2.6.x requires the server be first upgraded to 2.1.7 (or a later 2.1.x version), and then to 2.6.x. If you are upgrading from 2.2.x.x or newer, you may ignore this warning and upgrade directly to 2.6.x. New Features ------------ Review UI ~~~~~~~~~ * The reviewer matrix on a change displays gray boxes where permissions do not allow voting in that category. The coloring enables authors to quickly identify if another reviewer is necessary to continue the change. * New 'Rebase If Necessary' submit type. This is similar to cherry pick, but honors change dependency information. * Submit type displayed per-change in the info block. * Submit type selectable per-change by `submit_type` Prolog rules. * The rebase button is hidden when the patch set is current. * `suggest.from` configures a minimum number of characters before matches for reviewers, accounts, groups or projects are offered. * A change's topic can be added, removed or changed from the change screen. * A change's commit message can be edited from the change screen. * The patch set review screen can include radio buttons for custom labels if enabled by link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html#_how_to_write_submit_rules[submit rules]. Access Controls ~~~~~~~~~~~~~~~ * Remove Reviewer is a new permission. * Pushing a signed tag is a new permission. * Editing the topic name is a new permission. * Raw database access with the `gsql` command is a new global capability. + Previously site administrators had this capability by default. Now it has to be explicitly assigned, even for site administrators. * link:https://code.google.com/p/gerrit/issues/detail?id=1585[Issue 1585]: Viewing other users' draft changes is a new permission. * link:https://code.google.com/p/gerrit/issues/detail?id=1675[Issue 1675]: Deleting and publishing other users' draft changes is a new permission. * LDAP group names are configurable, `cn` is still the default. * LDAP cache reduces the number of recursive group queries. * Kerberos authentication to LDAP servers is now supported. * Basic project properities are now inherited by default from parent projects: Use Content Merge, Require Contributor Agreement, Require Change Id, Require Signed Off By. Hooks ~~~~~ * Change topic is passed to hooks as `--topic NAME`. * link:https://code.google.com/p/gerrit/issues/detail?id=1200[Issue 1200]: New `reviewer-added` hook and stream event when a reviewer is added. * link:https://code.google.com/p/gerrit/issues/detail?id=1237[Issue 1237]: New `merge-failed` hook and stream event when a change cannot be submitted due to failed merge. SSH ~~~ * Descriptions are added to ssh commands. + If `gerrit` is called without arguments, it will now show a list of available commands with their descriptions. * `create-account --http-password` enables setting/resetting the HTTP password of role accounts, for Git or JSON API access. * `ls-projects --has-acl-for` lists projects that mention a group in an ACL, identifying where rights are granted. * `query` includes submit record information from Prolog rules. * `query` includes `resumeSortKey` in summary block. * `query` includes author and change size information when given certain options on the command line. * `test-submit-rule` tests the `can_submit` rule with a prolog script loaded from a file or stdin. * `ls-user-refs` lists which refs are visible for a given user. Plugins ~~~~~~~ * Plugins can contribute Prolog facts/predicates from Java. * Plugins can prompt for parameters during `init` with `InitStep`. * Plugins can now contribute JavaScript to the web UI. UI plugins can also be written and compiled with GWT. * New Maven archetypes for JavaScript and GWT plugins. * Plugins can contribute validation steps to received commits. * Commit message length checks are moved to the `commit-message-length-validator` plugin which is included as a core plugin in the Gerrit distribution and can be installed during site initialization. EMail ~~~~~ * link:https://code.google.com/p/gerrit/issues/detail?id=1531[Issue 1531]: Email footers now include `Gerrit-HasComments: {Yes|No}`. * Notifications configured in `project.config` can now be addressed using any of To, CC, or BCC headers. * `#if($email.hasInlineComments())` can be used in templates to test if there are comments to be included in this email. * Notification emails are sent to included groups. * Comment notification emails are sent to project watchers. * "Change Merged" emails include the diff output when `sendemail.includeDiff` is enabled. Labels ~~~~~~ * Approval categories stored in the database have been replaced with labels configured in `project.config`. Existing categories are migrated to `project.config` in `All-Projects` as part of the schema upgrade; no user action is required. * Labels are no longer global; projects may define their own labels, with inheritance. Upgrades ~~~~~~~~ * link:https://code.google.com/p/gerrit/issues/detail?id=1619[Issue 1619]: Embedded Jetty is now 8.1.7.v20120910. * ASM bytecode library is now 4.0. * JGit is now 2.3.1.201302201838-r.55-ge175daf. * asciidoc 8.6.3 is now required to build the documentation. * link:https://code.google.com/p/gerrit/issues/detail?id=1155[Issue 1155]: prettify is now r225 Bug Fixes --------- Web UI ~~~~~~ * Links to CGit were broken when `remove-suffix` was enabled. * link:https://code.google.com/p/gerrit/issues/detail?id=926[Issue 926]: Internet Explorer versions 9 and 10 are supported. Git ~~~ * The wildcard `.` is now permitted in reference regex rules. * Checking if a change is mergeable no longer writes to the repository. * Improved `git ls-remote` and `git fetch` performance by caching changes, decreasing database queries and traffic. * link:https://code.google.com/p/gerrit/issues/detail?id=1608[Issue 1608]: Commits pushed without a Change-Id now warn with instructions on how to download and install the commit-msg hook. * Submitted but unmerged changes are periodically retried. This is necessary for a multi-master configuration where the second master may need to retry a change not yet merged by the first. Please note we still do not believe this is sufficient to enable multi-master. * Added a server-level option to use JGit's new, experimental recursive merger. SSH ~~~ * `plugin ls` shows status of enabled plugins as "ENABLED". * `review --restore` allows a review score to be added on the restored change. * link:https://code.google.com/p/gerrit/issues/detail?id=1721[Issue 1721]: `review --message` only adds the message once. * `ls-groups` prints "N/A" if the group's name is not set. EMail ~~~~~ * Missing email templates are added to the site initialization. * Merge failure emails are only sent once per day. * Unused macros are removed from the mail templates. * Unnecessary ellipses are no longer applied to email subjects. * The diff output from an "octopus merge" is made more readable in change notification emails. * link:https://code.google.com/p/gerrit/issues/detail?id=1480[Issue 1480]: Proper error message is shown when registering an email address fails. * link:https://code.google.com/p/gerrit/issues/detail?id=1692[Issue 1692]: Review comments are sorted before being added to notification emails. Documentation ------------- User Documentation ~~~~~~~~~~~~~~~~~~ * Added documentation of how to authenticate uploads over HTTP. * Added documentation of the `auth.editFullNameUrl` and `auth.httpPasswordUrl` configuration parameters. * Improved the push tag examples in the access control documentation. * Improved documentation of error messages related to commit message footer content. * Added documentation of the "commit already exists" error message. * Added documentation of contributor agreements. * Added missing documentation of JSON attributes. * Added missing documentation of mail templates. * Added missing documentation of the ssh `version` command. * link:https://code.google.com/p/gerrit/issues/detail?id=1602[Issue 1602]: Corrected references to `refs/changes` in the access control documentation. * Various minor grammatical and formatting corrections. * Manual pages can be optionally created/installed for core gerrit ssh commands. Developer And Maintainer Documentation ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Updated the Maven plugin installation instructions for Eclipse 3.7 (Indigo). * Improved the release documentation. * The release notes are now made when a release is created by running the `tools/release.sh` script.