4f5ad9d313
This eliminates the last Makefile in our code base.
Also change the section style within ReleaseNotes from asciidoc style to
asciidoctor style.
Also I feel that put images/link.png under ReleaseNotes and deal with
all the resource packing is too stupid, so I used the unicode emoji
instead of the picture ("🔗"). If this is too crazy, we can also use "#"
instead :) This also affects documentation rendering.
Other side effects:
1. The css of release notes switched from default asciidoc css into
default asciidoctor css.
2. The section anchors for ReleaseNotes/index.html changed from "2_13"
to "s2_13", because asciidoctorj is unhappy with anchors without
letters.
Change-Id: I4adf2ce090385cc6b699445012f10a009892aaac
463 lines
15 KiB
Plaintext
463 lines
15 KiB
Plaintext
= Release notes for Gerrit 2.3
|
|
|
|
Gerrit 2.3 is now available:
|
|
|
|
link:https://www.gerritcodereview.com/download/gerrit-2.3.war[https://www.gerritcodereview.com/download/gerrit-2.3.war]
|
|
|
|
== Schema Change
|
|
*WARNING:* This release contains schema changes. To upgrade:
|
|
----
|
|
java -jar gerrit.war init -d site_path
|
|
----
|
|
|
|
*WARNING:* Upgrading to 2.3.x requires the server be first upgraded
|
|
to 2.1.7 (or a later 2.1.x version), and then to 2.3.x.
|
|
|
|
If you are upgrading from 2.2.x.x, you may ignore this warning and
|
|
upgrade directly to 2.3.x.
|
|
|
|
|
|
== New Features
|
|
=== Drafts
|
|
* New draft statuses and magic branches
|
|
+
|
|
Adds draft status to Change. DRAFT status in change occurs before NEW
|
|
and will be for a change that is not meant for review (yet).
|
|
Also adds magic branches refs/drafts/ and refs/publish/ that
|
|
will handle whether or not a patchset is a draft or goes straight to
|
|
review. refs/for/ should be deprecated in favor of explicitly marking
|
|
a patchset as a draft or directly to review.
|
|
|
|
* Draft patchset and change visibility in UI
|
|
+
|
|
If a patchset is a draft, adds a (DRAFT) label next to the revision
|
|
(or gitweb link if it exists). If a change is a draft, adds a (DRAFT)
|
|
next to the subject and changes the status appropriately.
|
|
|
|
* Publish draft patchsets in UI and SSH
|
|
+
|
|
Adds Publish button to draft patchsets in UI and an option to
|
|
publish draft patchsets in the review ssh command. Publishing a draft
|
|
patchset makes it visible. Publishing a draft patchset in a draft
|
|
change irreversibly upgrades the change status to NEW.
|
|
|
|
* Delete draft changes and patchsets
|
|
+
|
|
Adds ability to delete draft changes and patchsets that are not meant
|
|
or fit for code review. Deleting a draft patchset also deletes the
|
|
corresponding ref from the repository and decrements the next patch
|
|
set number for the change if necessary. Deleting a draft change
|
|
deletes all of its (draft) patchsets.
|
|
|
|
* Add pushing drafts to refs/drafts/
|
|
+
|
|
Pushing to refs/drafts/ will now push a draft patchset. If this is the
|
|
first patch set, change created will be in draft status. Pushing a
|
|
draft patchset to a draft change keeps it in draft status. Pushing
|
|
a non-draft patchset (with refs/publish/ or refs/for/, they do the
|
|
same thing) to a draft change turns it into a non-draft change.
|
|
Draft patchsets cannot be submitted.
|
|
|
|
* When pushing changes as drafts, output [DRAFT] next to the change link
|
|
|
|
|
|
=== Web
|
|
* issue 203 Create project through web interface
|
|
+
|
|
Add a new panel in the Admin->Projects Screen. It
|
|
enables the users that are allowed to create projects
|
|
via command-line to create them also via web interface.
|
|
|
|
* Suggest parent for 'create-project' in the UI.
|
|
+
|
|
Add a list of parent suggestions for 'create project'
|
|
in the UI, so the user can select a parent for the new
|
|
project from a list of projects that are already parents to
|
|
other projects.
|
|
|
|
* issue 981 Fix diffs skipping one line
|
|
+
|
|
Don't show '... skipping 1 common line ...'. The text to show this
|
|
takes up just as much space as showing the line which was skipped.
|
|
|
|
* issue 18 Support expanding lines of context in diff
|
|
+
|
|
Allow lines of context which were skipped in the side-by-side diff
|
|
view to be expanded. This makes it easier to get more code context
|
|
when needed but not show huge amounts of unneeded data.
|
|
|
|
* Move checkbox to mark file as reviewed into title bar
|
|
|
|
* Redirect the user to the reverted change (when reverting).
|
|
|
|
* On group rename update the group name in the page title
|
|
|
|
* In ProjectAccessScreen add link to history of project.config in gitweb
|
|
|
|
* Removed superfluous 'comment' for patch history table.
|
|
|
|
* Make OpenID login images transparent
|
|
|
|
* Disable SSH Keys in the web UI if SSHD is disabled
|
|
|
|
|
|
=== SSH
|
|
* Adds --description (-d) option to ls-projects
|
|
+
|
|
Allows listing of projects together with their respective
|
|
description.
|
|
|
|
* ls-projects: new option to list all accessible projects
|
|
+
|
|
Add a new option '--all' to the 'ls-projects' SSH command to display
|
|
all projects that are accessible by the calling user account. Besides
|
|
the projects that the calling user account has been granted 'READ'
|
|
access to, this includes all projects that are owned by the calling
|
|
user account (even if for these projects the 'READ' access right is
|
|
not assigned to the calling user account).
|
|
|
|
* Suggest parent for 'create-project' in the SSH command
|
|
+
|
|
Add an option '--suggest-parents' which will print out
|
|
a list of projects that are already parents to another
|
|
projects, thus it can help user to find a suitable
|
|
parent for the new project.
|
|
|
|
* Support reparenting all children of a parent project
|
|
+
|
|
This change adds a new option to the 'set-project-parent' command that
|
|
allows reparenting all child projects of one parent project to another
|
|
parent project.
|
|
|
|
* set-parent-project: evict child projects from project cache
|
|
|
|
* Add ssh command to list groups.
|
|
|
|
* ls-groups: add option to list groups for a project
|
|
+
|
|
Add an option to the ls-groups SSH command that allows to list only
|
|
those groups for which any permission is assigned to a project.
|
|
|
|
* ls-groups: Add option to only list groups that are visible to all
|
|
|
|
* ls-groups: Support listing groups by group type
|
|
|
|
* ls-groups: Support listing of groups for a user
|
|
|
|
* Add new SSH command to rename groups
|
|
|
|
* Support for --file option for ssh queries.
|
|
+
|
|
Allows user to list files and attributes (ADDED,
|
|
MODIFIED, DELETED, RENAMED, COPIED) when querying for
|
|
patch sets.
|
|
|
|
* Output full commit message in query results
|
|
|
|
* Option for SSHD review-cmd to always publish the message.
|
|
+
|
|
"--force-message" option for the SSHD review command,
|
|
which allows Gerrit to publish the "--message", even if the
|
|
labels could not be applied due to change being closed.
|
|
|
|
|
|
=== Config
|
|
* issue 349 Apply states for projects (active, readonly and hidden)
|
|
+
|
|
Active state indicates the project is regular and is the default value.
|
|
+
|
|
Read Only means that users can see the project if read permission is
|
|
granted, but all modification operations are disabled.
|
|
+
|
|
Hidden means the project is not visible for those who are not owners
|
|
|
|
* Enable case insensitive login to Gerrit WebUI for LDAP authentication
|
|
+
|
|
Gerrit treats user names as case sensitive, while some LDAP servers
|
|
don't. On first login to Gerrit the user enters his user name and
|
|
Gerrit queries LDAP for it. Since LDAP is case-insensitive with regards
|
|
to the username, the LDAP authentication succeeds regardless in
|
|
which case the user typed in his user name. The username is stored in
|
|
Gerrit exactly as entered by the user. For further logins the user
|
|
always has to use the same case. If the user specifies his user name in
|
|
a different case Gerrit tries to create a new account which fails with
|
|
"Cannot assign user name ... to account ...; name already in use.".
|
|
This error occurs because the LDAP query resolves to the same LDAP
|
|
user and storing the username for SSH (which is by default always
|
|
lower case) fails because such an entry exists already for the first
|
|
account that the user created.
|
|
+
|
|
This change introduces a new configuration parameter that converts the
|
|
user name always to lower case before doing the LDAP authentication.
|
|
By this the login to the Gerrit WebUI gets case insensitive. If this
|
|
configuration parameter is set, the user names for all existing
|
|
accounts have to be converted to lower case. This change includes a
|
|
server program to do this conversion.
|
|
|
|
* Enable case insensitive authentication for git operations
|
|
+
|
|
A new configuration parameter is introduced that converts the username
|
|
that is received to authenticate a git operation to lower case for
|
|
looking up the user account in Gerrit.
|
|
+
|
|
By setting this parameter a case insensitive authentication for the
|
|
git operations can be achieved, if it is ensured that the usernames in
|
|
Gerrit (scheme 'username') are stored in lower case (e.g. if the
|
|
parameter 'ldap.accountSshUserName' is set to
|
|
'${sAMAccountName.toLowerCase}').
|
|
|
|
* Support replication to local folder
|
|
|
|
* Read timeout parameter for LDAP connections: ldap.readTimeout
|
|
+
|
|
This helps prevent a very slow LDAP server from blocking
|
|
all SSH command creation threads.
|
|
|
|
* Introduce a git maxObjectSizeLimit in the [receive] config
|
|
+
|
|
This limits the size of uploaded files
|
|
|
|
* Make 'Anonymous Coward' configurable
|
|
|
|
* Add property to configure path separator in URLs for a gitweb service
|
|
|
|
* Customize link-name pointing to gitweb-service.
|
|
+
|
|
Previously the link to the external gitweb-type
|
|
pages said "(gitweb)" regardless if using cgit
|
|
or a custom service.
|
|
|
|
* Support gitweb.type=disabled
|
|
|
|
* rules.enable: Support disabling per project prolog rules in gerrit.config
|
|
|
|
* Allow site administrators to define Git-over-HTTP mirror URL
|
|
|
|
* Allow sshd.listenAddress = off to disable the daemon
|
|
|
|
* daemon: Allow httpd without sshd
|
|
|
|
* Allow disabling certain features of HostPageServlet
|
|
+
|
|
These features are: user agent detection and automatic refresh
|
|
logic associated with the site header, footer and CSS.
|
|
|
|
|
|
=== Dev
|
|
* Fix 'No source code is available for type org.eclipse.jgit.lib.Constants'
|
|
|
|
* Fix miscellaneous compiler warnings
|
|
|
|
* Add entries to .gitignore for m2e settings/preference files
|
|
|
|
* Package source JARs for antlr, httpd, server
|
|
|
|
* pom.xml: change gerrit-war's dependency on gerrit-main to runtime
|
|
+
|
|
This only seems to matter to IntelliJ, since the Main class is
|
|
provided to the war via an overlay in gerrit-war/pom.xml
|
|
|
|
* Fixed the full name of the MAVEN2_CLASSPATH_CONTAINER
|
|
+
|
|
Fixes java.lang.NoClassDefFoundError: com/google/gwt/dev/DevMode
|
|
|
|
|
|
=== Miscellaneous
|
|
* Allow superprojects to subscribe to submodules updates
|
|
+
|
|
The feature introduced in this release allows superprojects to
|
|
subscribe to submodules updates.
|
|
+
|
|
When a commit is merged to a project, the commit content is scanned
|
|
to identify if it registers submodules (if the commit contains new
|
|
gitlinks and .gitmodules file with required info) and if so, a new
|
|
submodule subscription is registered.
|
|
+
|
|
When a new commit of a registered submodule is merged, gerrit
|
|
automatically updates the subscribers to the submodule with new
|
|
commit having the updated gitlinks.
|
|
+
|
|
The most notable benefit of the feature is to not require
|
|
to push/merge commits of super projects (subscribers) with gitlinks
|
|
whenever a project being a submodule is updated. It is only
|
|
required to push commits with gitlinks when they are created
|
|
(and in this case it is also required to push .gitmodules file).
|
|
|
|
* Allow Realm to participate when linking an account identity
|
|
+
|
|
When linking a new user identity to an existing account, permit the
|
|
Realm to observe the new incoming identity and the current account,
|
|
and to alter the request. This enables a Realm to observe when a
|
|
user verifies a new email address link.
|
|
|
|
* issue 871 Show latest patchset with cherry-picked merge
|
|
+
|
|
When a change is published via the cherry-pick merge strategy,
|
|
show the final commit as a patchset in the change history.
|
|
This now makes it possible to search for the cherry-picked SHA1.
|
|
|
|
* issue 871 Display hash of the cherry-pick merge in comment
|
|
|
|
* Added more verbose messages when changes are being rejected
|
|
|
|
* Display proper error message when LDAP is unavailable
|
|
|
|
* Clarify error msg when user's not allowed to '--force push'.
|
|
|
|
* ContainerAuthFilter: fail with FORBIDDEN if username not set
|
|
|
|
* Resolve 'Project Owners' group if it is included into another group
|
|
|
|
* Hide SSH URL in email footers if SSH is disabled
|
|
|
|
* Sort the jar files from the war before adding to classpath.
|
|
|
|
* Apply user preferences when loading site
|
|
|
|
* Ensure HttpLog can always get the user identity
|
|
|
|
* Prevent comments spam for abandoned commit
|
|
+
|
|
If some change was abandoned but later submitted (e.g. by
|
|
cherry-picking it to a another branch) then pushing a new branch
|
|
that contains this change no longer adds a new comment.
|
|
|
|
* Make Address, EmailHeader visible to other EmailSenders
|
|
|
|
* Use transactions to handle comments when possible
|
|
|
|
* Try to use transactions when creating changes
|
|
|
|
* gerrit.sh: disown doesn't accept pid as a argument, fix script
|
|
|
|
* gerrit.sh: detach gerrit properly so it won't keep bad ssh sessions open.
|
|
|
|
* Cache list of all groups in the group cache
|
|
|
|
* issue 1161 Evict project in user cache on save of project meta data
|
|
|
|
* Ensure that the site paths are resolved to their canonical form (for Windows)
|
|
|
|
* Connect Velocity to slf4j
|
|
|
|
* Expose project permissionOnly status via JSON-RPC
|
|
|
|
* Make HEAD of All-Projects point to refs/meta/config
|
|
|
|
* issue 1158 Added support for European style dates
|
|
|
|
* Make macros in email templates local to the template
|
|
|
|
* Support http://server/project for Git access
|
|
|
|
* Use _ instead of $ for implementation-detail Prolog predicates
|
|
|
|
* Update the Sign In anchor with current URL
|
|
+
|
|
Always update the href of the Sign In anchor in the menu bar with
|
|
the current page URL after /login/, making the redirect process
|
|
bring users back to the current view after sign in.
|
|
|
|
* Improve validation of email registration tokens
|
|
|
|
|
|
== Upgrades
|
|
* Upgrade to gwtorm 1.2
|
|
|
|
* Upgrade to JGit 1.1.0.201109151100-r.119-gb4495d1
|
|
+
|
|
This is needed because of this change:
|
|
https://gerrit-review.googlesource.com/#/c/30450/
|
|
|
|
* Support Velocity 1.5 (as well as previous 1.6.4)
|
|
|
|
|
|
== Bug Fixes
|
|
* Avoid NPE when group is missing
|
|
|
|
* Do not fail with NPE if context path of request is null
|
|
|
|
* Fix NPE in set-project-parent command if parent is not specified
|
|
|
|
* Only send mail to author and committer if they are registered to prevent an NPE
|
|
|
|
* Avoid potential NPE when querying the queue.
|
|
|
|
* Allow loading Project Access when there is no refs/meta/config
|
|
|
|
* Fix calculation of project name if repo is not existing
|
|
+
|
|
If a project inherits from a non existing parent, prevent a
|
|
StringIndexOutOfBoundsException.
|
|
|
|
* Fix: Suppress "Error on refs/cache-automerge" warnings.
|
|
|
|
* Don't allow registering for cleanup after cleanup runs
|
|
+
|
|
This prevents leaking a database connection.
|
|
|
|
* issue 807 Fix: Tags are not replicated properly
|
|
|
|
* Prevent smtp rejected users from rejecting emails for all users
|
|
|
|
* Fix token saving redirect in container auth
|
|
+
|
|
Update the jump page that redirects users from /#TOKEN to
|
|
/login/TOKEN. This forces using the container based
|
|
authentication. Also correct "/login//" to be just "/login/".
|
|
|
|
* Use custom error messages for Git-over-HTTP
|
|
+
|
|
Ensure clients see messages related to contributor agreement not
|
|
being activated even if they push over HTTP.
|
|
|
|
* Avoid double key event for GroupReferenceBox
|
|
|
|
* Fix git push authentication over HTTP
|
|
|
|
* Fix http://login/ redirect bug
|
|
|
|
* Fix missing targets in /login/ URLs
|
|
|
|
* set-project-parent: if update of 1 project fails continue with others
|
|
|
|
* Verify the case of the project name before opening git repository
|
|
|
|
* Update top level SUBMITTING_PATCHES URLs
|
|
|
|
|
|
== Documentation
|
|
* Some updates to the design docs
|
|
|
|
* cmd-index: Fix link to documentation of rename-group command
|
|
|
|
* Update documentation for testing SSH connection
|
|
|
|
* Bypass review updated with 2.2.x permissions
|
|
|
|
* Add documentation for 'peer_keys'
|
|
|
|
* Improve 'Push Merge Commit' access right documentation
|
|
|
|
* Access control: Capabilities documented
|
|
** Administrate Server
|
|
** Create Account
|
|
** Create Group
|
|
** Create Project
|
|
** Flush Caches
|
|
** Kill Task
|
|
** Priority
|
|
** Query Limit
|
|
** Start Replication
|
|
** View caches
|
|
** View connections
|
|
** View queue
|
|
|
|
* Access control: Example roles documented
|
|
** Contributor
|
|
** Developer
|
|
** CI System
|
|
** Integrator
|
|
** Project owner
|
|
** Administrator
|