diff options
Diffstat (limited to 'ReleaseNotes/ReleaseNotes-2.2.2.txt')
-rw-r--r-- | ReleaseNotes/ReleaseNotes-2.2.2.txt | 645 |
1 files changed, 0 insertions, 645 deletions
diff --git a/ReleaseNotes/ReleaseNotes-2.2.2.txt b/ReleaseNotes/ReleaseNotes-2.2.2.txt deleted file mode 100644 index 276714c378..0000000000 --- a/ReleaseNotes/ReleaseNotes-2.2.2.txt +++ /dev/null @@ -1,645 +0,0 @@ -= Release notes for Gerrit 2.2.2 - -Gerrit 2.2.2 is now available: - -link:https://www.gerritcodereview.com/download/gerrit-2.2.2.war[https://www.gerritcodereview.com/download/gerrit-2.2.2.war] - -== Schema Change -*WARNING:* This release contains schema changes. To upgrade: ----- - java -jar gerrit.war init -d site_path ----- - -*WARNING:* Upgrading to 2.2.x requires the server be first upgraded -to 2.1.7 (or a later 2.1.x version), and then to 2.2.x. - -== New Features - -=== Prolog -* issue 971 Use Prolog Cafe for ChangeControl.canSubmit() - -* Add per-project prolog submit rule files -+ -When loading the prolog environment, now checks refs/meta/config -branch for a file called rules.pl. If it exists, consult the -file. Expects a predicate called submit_rule. If no file is found, -uses the default_submit predicate in common_rules.pl. - -* Add inheritance of prolog rules -+ -Projects now inherit the prolog rules defined in their parent -project. Submit results from the child project are filtered by the -parent project using the filter predicate defined in the parent's -rules.pl. The results of the filtering are then passed up to the -parent's parent and filtered, repeating this process up to the top -level All-Projects. - -* Load precompiled prolog rules from jar file -+ -Looks in (site)/cache/rules for a jar file called: - rules-(sha1 of rules.pl).jar -Loads the precompiled prolog rules and uses them instead of -consulting rules.pl. If the jar does not exist, consults rules.pl. -If rules.pl does not exist, uses the default submit rules. - -* Cmd line tool rulec to compile jar from prolog -+ -Rulec takes rules.pl from the refs/meta/config branch and creates a -jar file named rules-(sha1 of rules.pl).jar in (sitepath)/cache/rules. -Generates temporary prolog, java src, and class files which are -deleted afterwards. - -* prolog-shell: Simple command line Prolog interpreter -+ -Define a small interactive interpreter that users or site -administrators can play around with by downloading the Gerrit WAR -file and executing: java -jar gerrit.war prolog-shell - -==== Prolog Predicates -* Add Prolog Predicates to check commit messages and edits -+ -commit_message returns the commit message as a symbol. -+ -commit_message_matches takes in a regex pattern and checks it against -the commit message. -+ -commit_edits takes in a regex pattern for filenames and a regex -pattern for edits. For all files in a commit that match the filename -regex. Returns true if the edits in any of those files match the -edit regex. - -* Add Prolog Predicates to expose commit filelist -+ -commit_delta/1,3,4 each takes a regular expression and matches it to -the path of all the files in the latest patchset of a commit. -If applicable (changes where the file is renamed or copied), the -regex is also checked against the old path. -+ -commit_delta/1 returns true if any files match the regex -+ -commit_delta/3 returns the changetype and path, if the changetype is -renamed, it also returns the old path. If the changetype is rename, -it returns a delete for oldpath and an add for newpath. If the -changetype is copy, an add is returned along with newpath. -+ -commit_delta/4 returns the changetype, new path, and old path - (if applicable). - -* Add Prolog predicates that expose the branch, owner, -project, and topic of a change, the author and committer of the most -recent patchset in the change, and who is the current user. - -* For user-related predicates, if the user is not a gerrit user, will -return user(anonymous) or similar. Author and committer predicates -for commits return user(id), name, and email. - -* Make max_with_block/4 public -+ -This is the current rule generally applied to a label function. Make -it exportable for now until we can come back and clean up the legacy -approval data code. - -=== Web - -* Support in Firefox delete key in NpIntTextBox -+ -Pressing the delete key while being in a NpIntTextBox (e.g. in the -text box for the Tab Width or Columns preference when comparing a -file) now works in Firefox. - -* Make sure special keys work in text fields -+ -There is a bug in gwt 2.1.0 that prevents pressing special keys like -Enter, Backspace etc. from being properly recognized and so they have no effect. - -==== ChangeScreen -* issue 855 Indicate outdated dependencies on the ChangeScreen -+ -If a change dependency is no longer the latest patchSet for that -change, mark it OUTDATED in the dependencies table and make -its row red, and add a warning message to the dependencies -header, also keep the dependencies disclosure panel open -even when an outdated dependent change is merged. -Additionally make the link for dependencies link to the -exact patchSet of the dependent change. - -* issue 881 Allow adding groups as reviewer -+ -On the ChangeScreen it is now possible to add a group as reviewer for -a change. When a group is added as reviewer the group is resolved and -all its members are added as reviewers to the change. - -* Update approvals in web UI to adapt to rules.pl submit_rule -+ -The UI now shows whatever the results of the submit_rule are, which -permits the submit_rule to make an ApprovalCategory optional, or to -make a new label required. - -==== Diff Screen -* Add top level menus for a new PatchScreen header -+ -Modify the PatchScreen so that the header contents is selectable -using top level menus. Allow the header to display the commit -message, the preferences, the Patch Sets, or the File List. - -* Add SideBySide and Unified links to Differences top level menus -+ -These new menu entries allow a user to switch view types easily -without returning to the ChangeScreen. Also, they double as a -way to hide the header on the PatchScreen (when clicking on the -currently displayed type). - -* Add user pref to retain PatchScreen Header when changing files - -* Flip the orientation of PatchHistory Table - -* Remove the 'Change SHA1:' from the PatchScreen title - -* Remove scrollbar from Commit Message - -* Allow comment editing with single click on line numbers -+ -Make it easier to comment (and now possible on android devices which -zoom on double click) on a patch by simply clicking on the line number. - -* Add a "Save" button to the PatchScriptSettingsPanel -+ -The "Update" button now only updates the display. Additionally, -for logged in users, a "Save" button now behaves the way that -"Update" used to behave for logged in users. - -* issue 665 Display merge changes as differences from automatic result -+ -Instead of displaying nothing for a two-parent merge commit, compute -the automatic merge result and display the difference between the -automatic result that Git would create, and the actual result that -was uploaded by the author/committer of the merge. - -==== Groups -* Add menu to AccountGroupScreen -+ -This change introduces a menu in the AccountGroupScreen and -different screens for subsets of the functionality (similar as it's -done for the ProjectScreen). Links from other screens to the -AccountGroupScreen are resolved depending on the group type. - -* Display groupUUID on AccountGroupInfoScreen -+ -To assign a privilege to a new group by editing the -'project.config' file, the new group needs to be added to the -'groups' file in the 'refs/meta/config' branch which requires -the UUID of the group to be known. - -==== Project Access -* Automatically add new rule when adding new permission -+ -If a new permission was added to a block, immediately create the new -group entry box and focus it, so the user can assign the permission. - -* Only show Exclusive checkbox on reference sections -+ -In the access editor, hide the Exclusive checkbox on the -Global Capabilities section since it has no inheritance and -the exclusive bit isn't supported. - -* Disable editing after successful save of Access screen -+ -When the access has been successfully modified for a project, -switch back to the "read-only" view where the widgets are all -disabled and the Edit button is enabled. - -==== Project Branches -* Display refs/meta/config branch on ProjectBranchesScreen -+ -The new refs/meta/config branch was not shown in the ProjectBranchesScreen. -Since refs/meta/config is not just any branch, but has a special -meaning to Gerrit it is now displayed at the top below HEAD. - -* Highlight HEAD and refs/meta/config -+ -Since HEAD and refs/meta/config do not represent ordinary branches, -highlight their rows with a special style in the ProjectBranchesScreen. - -==== URLs -* Modernize URLs to be shorter and consistent -+ -Instead of http://site/#change,1234 we now use a slightly more -common looking http://site/#/c/1234 URL to link to a change. -+ -Files within a patch set are now denoted below the change, as in -http://site/#/c/1234/1/src/module/foo.c -+ -Also fix the dynamic redirects of http://site/1234 -and http://site/r/deadbeef to jump directly to the corresponding -change if there is exactly one possible URL. -+ -Entities that have multiple views suffix the URL with ",view-name" -to indicate which view the user wants to see. - -* issue 1018 Accept ~ in linkify() URLs - -=== SSH -* Added a set-reviewers ssh command - -* Support removing more than one reviewer at once -+ -This way we can batch delete reviewers from a change. - -* issue 881 Support adding groups as reviewer by SSH command -+ -With the set-reviewers SSH command it is now possible to also add -groups as reviewer for a change. - -* Fail review command for changing labels when change is closed -+ -If a reviewer attempts to change a review label (approval) after a -change is closed using the ssh review command, cause it to fail the -command and output a message. - -* ls-projects: Fix display of All-Projects under --tree -+ -Everything should be nested below All-Projects, since that is actually -the root level. - -* ls-projects: Add --type to filter by project type -+ -ls-projects now supports --type code|permissions|all. The default is -code which now skips permissions only projects, restoring the output -to what appears from Gerrit 2.1.7 and earlier. - -* show-caches: Improve memory reporting -+ -Change the way memory is reported to show the actual values, -and the equation that determines how these are put together -to form the current usage. Include some additional data including -server version, current time, process uptime, active SSH -connections, and tasks in the task queue. The --show-jvm option -will report additional data about the JVM, and tell the caller -where it is running. - -==== Queries -* Output patchset creation date for 'query' command. - -* issue 1053 Support comments option in query command -+ -Query SSH command will show all comments if option --comments is -used. If --comments is used together with --patch-sets all inline -comments are included in the output. - -=== Config -* Move batch user priority to a capability -+ -Instead of using a magical group, use a special capability to -denote users that should get the batch priority behavior. - -* issue 742 Make administrator, create-project a global capability -+ -This gets rid of the special entries in system_config and -gerrit.config related to who the Administrators group is, -or which groups are permitted to create new projects on -this server. - -* issue 48 & 742 Add fine-grained capabilities for administrative actions -+ -The Global Capabilities section in All-Projects can now be used to -grant subcommands that are available over SSH and were previously -restricted to only Administrators. - -* Disallow project names ending in "/" - -* issue 934 query: Enable configurable result limit -+ -Allow site administrators to configure the query limit for user to be -above the default hard-coded value of 500 by adding a global -[capability] block to All-Projects project.config file with group(s) -that should have different limits. - -* Introduced a new PermissionRule.Action: BLOCK. -+ -Besides already existing ALLOW and DENY actions this change -introduces the BLOCK action in order to enable blocking some -permission rules globally. - -* issue 813 Use remote.name.replicatePermissions to hide permissions -+ -Administrators can now disable replication of permissions-only -projects and the per-project refs/meta/config in replication.config -by setting the replicatePermissions field to false. - -* Add a Restored.vm template and use it. -+ -The restore action has been erroneously using the Abandoned.vm -template. Create a template and sender for the restorecommand. - -* sshd.advertisedAddress: specify the displayed SSH host/port -+ -This allows aliases which redirect to gerrit's ssh port (say -from port 22) to be setup and advertised to users. - -=== Dev -* Updated eclipse settings for 3.7 and m2e 1.0 - -* Fix build in m2eclipse 1.0 -+ -Ignore the antrun and the build-helper-maven-plugin tasks in m2eclipse. - -* Make Gerrit with gwt 2.3.0 run in gwtdebug mode - -* Fix a number of build warnings that have crept in - -* Accept email address automatically -+ -Enable Gerrit to accept email address automatically in -"DEVELOPMENT_BECOME_ANY_ACCOUNT" mode without a confirmation email. - -* Added clickable user names at the BecomeAnyAccountLoginServlet. -+ -The first 5 (by accountId) user names are displayed as clickable -links. Clicking a user name logs in as this user, speeding up -switching between different users when using the -DEVELOPMENT_BECOME_ANY_ACCOUNT authentication type. - -=== Miscellaneous -* Permit adding reviewers to closed changes -+ -Permit adding a reviewer to closed changes to support post-submit -discussion threads. - -* issue 805 Don't check for multiple change-ids when pushing directly -to refs/heads. - -* Avoid costly findMergedInto during push to refs/for/* -+ -No longer close a change when a commit is pushed to res/for/* and the -Change-Id in the commit message footer matches another commit on an -existing branch or tag. - -* Allow serving static files in subdirectories - -* issue 1019 Normalize OpenID URLs with http:// prefix -+ -No longer violate OpenID 1.1 and 2.0, both of which require -OpenIDs to be normalized (http:// added). - -* Allow container-based authentication for git over http -+ -Gerrit was insisting on DIGEST authentication when doing git over -http. A new boolean configuration parameter auth.trustContainerAuth -allows gerrit to be configured to trust the container to do the -authentication. - -* issue 848 Add rpc method for GerritConfig -+ -Exposes what types of reviews are possible via json rpc, so that the -Eclipse Reviews plugin currently can parse the javascript from a -gerrit page load. - - -== Performance -* Bumped Brics version to 1.11.8 -+ -This Brics version fixes a performance issue in some larger Gerrit systems. - -* Add permission_sort cache to remember sort orderings -+ -Cache the order AccessSections should be sorted in, making any future -sorting for the same reference name and same set of section patterns -cheaper. - -* Refactor how permissions are matched by ProjectControl, RefControl -+ -More aggressively cache many of the auth objects at a cost of memory, -but this should be an improvement in response times. - -* Substantially speed up pushing changes for review -+ -Pushing a new change for review checks if the change is related to -the branch it's destined for. It used to do this in a way that -required a topo-sort of the rev history, and now uses JGit's -merge-base functionality. - -* Add cache for tag advertisements -+ -To make the general case more efficient, introduce a cache called "git_tags". -+ -On a trivial usage of the Linux kernel repository, the average -running time of the VisibleRefFilter when caches were hot was -7195.68 ms. With this commit, it is a mere 5.07 milliseconds -on a hot cache. A reduction of 99% of the running time. - -* Don't set lastCheckTime in ProjectState -+ -The lastCheckTime/generation fields are actually a counter that -is incremented using a background thread. The values don't match -the system clock, and thus reading System.currentTimeMillis() -during the construction of ProjectState is a waste of resources. - - -== Upgrades -* Upgrade to GWT 2.3.0 -* Upgrade to Gson to 1.7.1 -* Upgrade to gwtjsonrpc 1.2.4 -* Upgrade to gwtexpui 1.2.5 -* Upgrade to Jsch 0.1.44-1 -* Upgrade to Brics 1.11.8 - - -== Bug Fixes -* Fix: Issue where Gerrit could not linkify certain URLs - -* issue 1015 Fix handling of regex ref patterns in Access panel -+ -regex patterns such as "\^refs/heads/[A-Z]{2,}\-[0-9]\+.\*" were being -prefixed with "refs/heads/", resulting in invalid reference patterns -like "refs/heads/^refs/heads/[A-Z]{2,}-[0-9]+.*". - -* issue 1002 Check for and disallow pushing of invalid refs/meta/config -+ -If the project.config or groups files are somehow invalid on -the refs/meta/config branch, or would be made invalid due to -a bad code review being submitted to this branch, reject the -user's attempt to push. - -* issue 1002 Fix NPE in PermissionRuleEditor when group lacks UUID -+ -If a group does not have an entry in the "groups" table within -the refs/meta/config branch render the group name as a span, -without the link instead of crashing the UI. - -* issue 972 Filter access section rules to only visible groups -+ -Users who are not the owner of an access section can now only -see group names and rules for groups which they are a member of, -are visible to all users, or that they own. - -* Correctly handle missing refs/meta/config branch -+ -If the refs/meta/config branch did not exist, getRevision() no longer -throws an NPE when trying to access the ProjectDetail. - -* Allow loading Project Access when there is no refs/meta/config -+ -Enable loading the access screen with a null revision field, -and on save of any edits require the branch to be new. - -* create-project: Fix creation vs. replication order -+ -Create the project on remote mirrors before creating either the -refs/meta/config or the initial empty branch. This way those can be -replicated to the remote mirrors once they have been created locally. - -* create-project: Bring back --permissions-only flag -+ -If a project is permissions only, assign HEAD to point to -refs/meta/config. This way the gitweb view of the project -shows the permissions history by default, and clients that -clone the project are able to get a detached HEAD pointing -to the current permission state, rather than an empty -repository. - -* create-project: Fix error reporting when repository exists -+ -If a repository already exists, tell the user it already is -available, without disclosing the server side path from gerrit.basePath. - -* Do not log timeout errors on upload and receive connections - -* Only automatically create accounts for LDAP systems -+ -If the account management is LDAP, try to automatically create -accounts by looking up the data in LDAP. Otherwise fail and reject an -invalid account reference that was supplied on the command line via -SSH. - -* Add missing RevWalk.reset() after checking merge base -+ -This fixes an exception from RevWalk when trying to push a new -commit for review. - -* issue 1069 Do not send an email on reviews when there is no message. -+ -No longer send an email when reviewing a change via ssh, and -the change message is blank (when no change message is actually -added to the review). - -* Ignore PartialResultException from LDAP. -+ -This exception occurs when the server isn't following referrals for -you, and thus the result contains a referral. That happens when -you're using Active Directory. You almost certainly don't really want -to follow referrals in AD *anyways*, so just ignore these exceptions, -so we can still use the actual data. - -* issue 518 Fix MySQL counter resets -+ -gwtorm 1.1.5 was patched to leave in the dummy row that incremented -the counter, ensuring the server will use MAX() + 1 instead of 1 on -the next increment after restart. - -* Don't delete account_id row on MySQL -+ -If the table is an InnoDB table deleting the row after allocation may -cause the sequence to reset when the server restarts, giving out -duplicate account_ids later. - - -== Documentation - -=== New Documents -* First Cut of Gerrit Walkthrough Introduction documentation. -+ -Add a new document intended to be a complement for the existing -reference documentation to allow potential users to easily get a -feel for how Gerrit is used, where it fits and whether it will -work for them. - -* Introducing a quick and dirty setup tutorial -+ -The new document covers quick installation, new project and first -upload. It contains lots of quoted output, with a demo style to it. - -=== Access Control -* Code review - -* Conversion table between 2.1 and 2.2 -+ -Add a table to ease conversion from 2.1.x. The table tries to address -the old permissions one by one except for the push tag permission which -in effect needed two permissions to work properly. This should -be familiar to the administrator used to the 2.1.x permission model -however. - -* Reformatted text - -* Verify -+ -Updated some text in the Per project-section and edited the verified -section to reflect the current label. - -* Capabilities -+ -Adds general information about global capabilities, how the server -ownership is administered. - -* Added non-interactive users -+ -This change adds the non-interactive user group. -It also adds that groups can be members of other groups. -The groups are now sorted in alphabetical order. - -* Reordering categories -+ -Access categories are now sorted to match drop down box in UI - -=== Other Documentation -* Added additional information on the install instructions. -+ -The installation instructions presumes much prior knowledge, -make some of that knowledge less implicit. - -* Provides a template to the download example. -+ -Clarifies that the example host must be replaced with proper -hostname. - -* Provided an example on how to abandon a change from -the command line - -* update links from kernel.org to code.google.com - - -* Rename '-- All Projects --' in documentation to 'All-Projects' - -* Explain 'Automatically resolve conflicts' - -* Update documentation for testing SSH connection -+ -The command output that is shown in the example and the description -how to set the ssh username were outdated. - -* Remove unneeded escape characters from the documentation -+ -The old version of asciidoc required certain characters to be escaped -with a backslash and when the upgrade to the new version was done all -those backslashes that were used for escaping became visible. - -* Clean up pgm-index -+ -Break out the utilities into their own section, and correct -some of the item descriptions. - -* Update manual project creation instructions - -* Update project configuration documentation -+ -Remove the textual reference to obsolete SQL insert statement to -create new projects. - -* Clean up command line documentation, examples -+ -The formatting was pretty wrong after upgrading to a newer version -of AsciiDoc, so fix up most of the formatting, correct some order -of commands in the index, and make create-project conform to the -same format used by create-account and create-group. - -* Correct syntax of SQL statement for inserting approval category |