| = 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 |