Merge "Update the 2.11 release notes"

This commit is contained in:
Shawn Pearce 2015-01-06 21:38:29 +00:00 committed by Gerrit Code Review
commit 28261856c6

View File

@ -21,7 +21,18 @@ Important Notes
a later 2.1.x version), and then to 2.11.x. If you are upgrading from 2.2.x.x or
later, you may ignore this warning and upgrade directly to 2.11.x.
*WARNING:* The 'Generate HTTP Password' capability has been removed.
*WARNING:* The 'Generate HTTP Password' capability has been
link:#remove-generate-http-password-capability[removed].
*WARNING:* Google will
link:https://developers.google.com/+/api/auth-migration[shut down their OpenID
service on 20th April 2015]. Administrators of sites whose users are registered
with Google OpenID accounts should encourage the users to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-sso.html#_multiple_identities[
add an alternative identity to their account] before this date. Users who do
not add an alternative identity before this date will need to create a new
account and ask the site administrator to
link:https://code.google.com/p/gerrit/wiki/SqlMergeUserAccounts[merge it].
Release Highlights
@ -29,10 +40,39 @@ Release Highlights
* link:http://code.google.com/p/gerrit/issues/detail?id=505[Issue 505]:
Inline editing: Changes can be edited directly in the browser.
Changes can be created and edited directly in the browser. See the
link:#inline-editing[Inline editing] section for more details.
Experimental Features
---------------------
The following new features are experimental. They are not fully documented yet,
and it is not recommended to enable them in live production systems.
* Migration of review information from database to git notes.
+
Files can be added, deleted, restored or edited directly in the browser. Change
edits can be published, deleted and rebased on top of the latest patch set.
Groundwork has been done to implement migration of review information from the
database to a git notes based backend.
+
Existing review information can be migrated from the review database to
git notes with the `RebuildNotedb` program.
+
This feature can be enabled with the following settings in `gerrit.config`:
----
[gerrit]
notedbpath = notedb
[notedb "changes"]
write = true
read = true
----
* Hashtags.
+
Hashtags can be added to changes. The hashtags are stored in git notes and
are indexed in the secondary index.
+
This feature requires the notedb to be enabled.
New Features
@ -42,32 +82,339 @@ New Features
Web UI
~~~~~~
TODO
[[inline-editing]]
Inline Editing
^^^^^^^^^^^^^^
Global
^^^^^^
Note that the inline editing feature only works with the new change screen.
TODO
* New changes can be created directly in the browser via a 'Create Change'
button on the project info screen.
* New follow-up changes can be created via a 'Follow-Up' button on the change
screen.
* File content can be edited in a full screen CodeMirror window with support for
themes, syntax highlighting, different key maps (Emacs, Vim, Default).
* The CodeMirror screen can be configured in the same way as the side-by-side
diff screen.
* The file table in the change screen supports edit mode with seamless navigation
to CodeMirror for editing.
* Edit mode can be started from the side-by-side diff screen with seamless
navigation to CodeMirror.
* The commit message can be changed in context of change edit. The 'Edit Message'
button is still supported, but now it creates a change edit that must be published.
* Files can be added, deleted, restored and modified directly in browser.
* User-specific configuration dedicated to edit mode in CodeMirror are stored in
the `All-Users` repository rather than in the database.
Change Screen
^^^^^^^^^^^^^
* Show the parent commit's subject as a tooltip.
* link:http://code.google.com/p/gerrit/issues/detail?id=2541[Issue 2541],
link:http://code.google.com/p/gerrit/issues/detail?id=2974[Issue 2974]:
Allow the 'Reply' button's
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#change.replyLabel[
label and tooltip] to be configured.
Side-By-Side Diff
^^^^^^^^^^^^^^^^^
* New preference setting to toggle auto-hiding of the diff table header.
+
The setting determines whether or not the diff table header with the patch set
selection should be automatically hidden when scrolling down more than half of
a page.
* Add syntax highlighting for several new modes:
** Dart
** Dockerfile
** GLSL shader
** Objective C
** (link:http://code.google.com/p/gerrit/issues/detail?id=2779[Issue 2779]) reStructured text
** Soy
REST
~~~~
TODO
Changes
^^^^^^^
SSH
* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#check-change[
check change endpoint].
+
In the past, Gerrit bugs, lack of transactions, and unreliable NoSQL backends
have at various times produced a bewildering variety of corrupt states.
+
This endpoint can be used to detect and explain some of these possible states
of a change.
Change Edits
^^^^^^^^^^^^
Several new endpoints are added to support the inline edit feature.
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-detail[
Get Edit Detail].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-edit-file[
Change file content in Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#post-edit[
Restore file content in Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[
Change commit message in Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit-file[
Delete file in Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-file[
Retrieve file content from Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-file-mime-type[
Retrieve file content MIME type from Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-message[
Retrieve commit message from Change Edit or current patch set of the change].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[
Publish Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#rebase-edit[
Rebase Change Edit].
* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit[
Delete Change Edit].
Projects
^^^^^^^^
* Add filtering and pagination options on the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-branches[
list branches] endpoint.
* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-tags[
list tags] endpoint.
* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#get-tag[
get tag] endpoint.
Configuration
~~~~~~~~~~~~~
* link:https://code.google.com/p/gerrit/issues/detail?id=2786[Issue 2786]:
Allow non-administrators to modify user accounts.
+
A new global capability,
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_modifyAccount[
'Modify Account'], allows the granted group members to modify user account
settings via the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[
`set-account` SSH command].
+
Modification of users' SSH keys is still restricted to administrators.
* Add support for
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#ldap.useConnectionPooling[
LDAP connection pooling].
* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#receive.maxBatchChanges[
limit max number of changes pushed in a batch].
+
Can be overridden by members of groups that are granted the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_batchChangesLimit[
Batch Changes Limit] capability.
* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.disableReverseDnsLookup[
disable reverse DNS lookup].
+
This option can be set to improve push time from hosts without a reverse DNS
entry.
* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#cache.projects.loadOnStartup[
load the project cache at server startup].
* Allow members of groups granted the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_accessDatabase[
AccessDatabase capability] to view metadata refs.
* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#http.addUserAsRequestAttribute[
add the user to the http request attributes].
* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearch[
enable full text search in memory for review suggestions].
+
The maximum number of reviewers evaluated can be limited with
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearchMaxMatches[
suggest.fullTextSearchMaxMatches].
* Allow to provide an alternative
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.secureStoreClass[
secure store implementation].
* link:https://code.google.com/p/gerrit/issues/detail?id=1195[Issue 1195]:
Allow projects to be configured to create a new change for every uploaded commit that is not in the target branch.
* Allow to configure
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#container.daemonOpt[
options to pass to the daemon].
* Remove support for Google accounts and add support for Launchpad accounts on
the OpenID login page.
Daemon
~~~~~~
* Allow to enable the http daemon when running in slave mode.
The `--enable-httpd` option can be used in conjunction with the `--slave` option
to allow clients to fetch from the slave over the http protocol.
* Include the submitter's name in the change message when a change is submitted.
ssh
~~~
TODO
* Add new commands
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-ls-level.html[
`logging ls-level`] and
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-set-level.html[
`logging set-level`] to show and set the logging level at runtime.
* link:https://code.google.com/p/gerrit/issues/detail?id=602[Issue 602]:
Add `--json` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[
`review` SSH command].
+
Review input can be given to the `review` command in JSON format corresponding
to the REST API's
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#review-input[
ReviewInput] entity.
* link:https://code.google.com/p/gerrit/issues/detail?id=2824[Issue 2824]:
Add `--rebase` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[
`review` SSH command].
* Add `--clear-http-password` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[
`set-account` SSH command].
* Add `--preferred-email` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[
`set-account` SSH command].
Plugins
~~~~~~~
TODO
General
^^^^^^^
Other
~~~~~
* Plugins can listen to account group membership changes
+
The audit log service allows to register listeners to group member added and
group member deleted events. A default listener logs these events to the database
as before, but additional listeners may now be registered for these events using
the `GroupMemberAuditListener` interface.
* The 'Generate HTTP Password' capability is removed.
* Plugins can validate ref operations.
+
Plugins implementing the `RefOperationValidationListener` interface can
perform additional validation checks against ref creation/deletion operations
before they are applied to the git repository.
* Plugins can provide project-aware top menu extensions
+
Plugins can provide sub-menu items within the 'Projects' context. The
'${projectName}' placeholder is replaced by the project name.
* Auto register static/init.js as JavaScript plugin.
+
When a plugin does not expose Guice Modules explicitly, auto discover and
register static/init.js as WebUi extension if found by the plugin content
scanner.
* Plugins that provide initialization steps may now use functionality
from InitUtil in core Gerrit.
* New extensions in the Java Plugin API:
** Set/Put topic.
** Get mergeable status.
** link:https://code.google.com/p/gerrit/issues/detail?id=461[Issue 461]:
Get current user.
Replication
^^^^^^^^^^^
* Projects can be specified with wildcard in the `start` command.
Bug Fixes
---------
Daemon
~~~~~~
* Change "Merge topic" to "Merge changes from topic".
+
When multiple changes from a topic are submitted resulting in a merge commit,
the title of the merge commit is now "Merge changes from topic" instead of
"Merge topic".
* Fix visibility checks for `refs/meta/config`.
+
Under some conditions it was possible for the `refs/meta/config` branch to be
erroneously considerered not visible to the user.
* Sort list of updated changes in output from push.
* link:https://code.google.com/p/gerrit/issues/detail?id=2940[Issue 2940]:
Improve warning messages when Change-Id is missing in the commit message.
** Add a hint to amend the commit after installing the commit-msg hook.
** Don't show "Suggestion for commit message" when Change-Id is missing.
Secondary Index / Search
~~~~~~~~~~~~~~~~~~~~~~~~
* link:https://code.google.com/p/gerrit/issues/detail?id=2822[Issue 2822]:
Improve Lucene analysis of words linked with '_' or '.'.
+
Instead of treating words linked with '_' or '.' as one word, Lucene now
treats them as separate words.
* Fix support for change~branch~id in query syntax.
Configuration
~~~~~~~~~~~~~
[[remove-generate-http-password-capability]]
* Remove the 'Generate HTTP Password' capability.
+
The 'Generate HTTP Password' capability has been removed to close a security
vulnerability. Now only administrators are allowed to generate and delete other
@ -75,7 +422,128 @@ users' http passwords via the REST or SSH interface.
+
It is encouraged to clean up your `project.config` settings after upgrading.
Web UI
~~~~~~
Change Screen
^^^^^^^^^^^^^
* Differentiate between conflicts and already merged errors in cherry-pick
+
When a cherry-pick operation failed with "Cherry pick failed" error, there was no
way to know the reason for the failure: merge conflict or the commit is already
on the target branch. These failures are now differentiated and a proper error
is reported to the client.
* link:https://code.google.com/p/gerrit/issues/detail?id=2837[Issue 2837]:
Improve display of long user names for collapsed comments in history.
+
If there were several users with long user names with the same prefix, e.g.
'AutomaticGerritVoterLinux' and 'AutomaticGerritVoterWindows', they would both
be shown as 'AutomaticGerritVo...' and users had to expand the comment to see
the full user name.
+
The ellipsis is now inserted in the middle of the user name so that the start
and end of the user name are always visible, e.g. 'AutomaticG...VoterLinux' and
'AutomaticG...terWindows'.
* link:https://code.google.com/p/gerrit/issues/detail?id=2992[Issue 2992]:
Fix display of review comments for Chrome on Android.
+
Chrome for Android has Font Boosting, which caused the review comments to
be displayed too large.
* link:https://code.google.com/p/gerrit/issues/detail?id=2909[Issue 2909]:
Make change owner votes removable.
+
If a change owner voted on a change, it was not possible for anyone other
than the owner to remove the vote.
* Preserve topic when cherry-picking.
+
When a change is cherry-picked, the topic from the source change is preserved
on the newly created change.
* link:http://code.google.com/p/gerrit/issues/detail?id=3007[Issue 3007]:
Make the selected tab persistent.
+
If a change from the "Same Topic" tab was clicked, the selected tab would reset
to the default tab ("Related Changes").
Side-By-Side Diff
^^^^^^^^^^^^^^^^^
* link:https://code.google.com/p/gerrit/issues/detail?id=2848[Issue 2848]:
Add support for CSharp syntax highlighting.
* Remove support for syntax highlighting of Restructured Text and Go file types.
+
Syntax highlighting for these file types caused rendering failures due to a
link:https://github.com/codemirror/CodeMirror/issues/2850[bug in CodeMirror].
Project Screen
^^^^^^^^^^^^^^
* Fix alignment of checkboxes on project access screen.
+
The "Exclusive" checkbox was not aligned with the other checkboxes.
REST API
~~~~~~~~
Changes
^^^^^^^
* Remove the administrator restriction on the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#index-change[
index change] endpoint.
+
The endpoint can now be used by any user who has visibility of the change.
* Only include account ID in responses unless `DETAILED_ACCOUNTS` option is set.
+
The behaviour was inconsistent with the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#account-info[
documentation]. In the default case it was including only the account name,
rather than only the account ID.
* Include revision's ref in responses.
+
The ref of a revision was only returned as part of the fetch info, which is only
available if the download commands are installed.
* Correctly set the limit to the default when no limit is given in the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#suggest-reviewers[
suggest reviewers] endpoint.
Projects
^^^^^^^^
* Make it mandatory to specify at least one of the `--prefix`, `--match` or `--regex`
options in the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-projects[
list projects] endpoint.
Upgrades
--------
TODO
* Update ASM to 5.0.3.
* Update CodeMirror to 4.9.
* Update Guava to 18.0.
* Update Guice to 4.0-beta5.
* Update GWT to 2.7.
* Update Jetty to 9.2.2.
* Update JGit to 3.6.0.201412230720-r.
* Update Lucene to 4.10.2.
* Update Pegdown to 1.4.2.