| = Release notes for Gerrit 2.8 |
| |
| |
| Gerrit 2.8 is now available: |
| |
| link:https://www.gerritcodereview.com/download/gerrit-2.8.war[ |
| https://www.gerritcodereview.com/download/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.canonicalWebUrl` 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 |