|  | Release notes for Gerrit 2.0.22 | 
|  | =============================== | 
|  |  | 
|  | Gerrit 2.0.22 is now available in the usual location: | 
|  |  | 
|  | link:https://www.gerritcodereview.com/download/index.html[https://www.gerritcodereview.com/download/index.html] | 
|  |  | 
|  | Schema Change | 
|  | ------------- | 
|  |  | 
|  | There is no schema change in this release. | 
|  |  | 
|  | * Restriction on SSH Username | 
|  | + | 
|  | There is a new restriction placed on the SSH Username field | 
|  | within an account.  Users who are using invalid names should | 
|  | be asked to change their name to something more suitable. | 
|  | Administrators can identify these users with the following query: | 
|  | ---- | 
|  | -- PostgreSQL | 
|  | SELECT account_id,preferred_email,ssh_user_name | 
|  | FROM accounts | 
|  | WHERE NOT (ssh_user_name ~ '[a-zA-Z][a-zA-Z0-9._-]*[a-zA-Z0-9]$'); | 
|  |  | 
|  | -- MySQL | 
|  | SELECT account_id,preferred_email,ssh_user_name | 
|  | FROM accounts | 
|  | WHERE NOT (ssh_user_name REGEXP '[a-zA-Z][a-zA-Z0-9._-]*[a-zA-Z0-9]$'); | 
|  | ---- | 
|  | Administrators can force these users to select a new name by | 
|  | setting ssh_user_name to NULL; the user will not be able to | 
|  | login over SSH until they return and select a new name. | 
|  |  | 
|  |  | 
|  | New Features | 
|  | ------------ | 
|  | * GERRIT-280  create-project: Add --branch and cleanup arguments | 
|  | + | 
|  | The --branch option to create-project can be used to setup the | 
|  | default initial branch to be a name other than 'master'. | 
|  | Argument parsing also changed slightly, especially around the | 
|  | boolean options and submit type.  Please recheck the documentation | 
|  | and/or the output of --help. | 
|  |  | 
|  | * GERRIT-216  Add slave mode to ssh daemon | 
|  | + | 
|  | The standalone SSH daemon can now be run in a read-only | 
|  | mode.  This allows use Gerrit's access control database for | 
|  | access decisions when serving a read-only copy of the project | 
|  | repositories.  Placing a read-only slave local to a remote office | 
|  | may reduce sync times for those closer to the slave server. | 
|  |  | 
|  | * Enable multi-line comment highlighting for Scala code | 
|  | + | 
|  | Scala source code now highlights more like Java source code does, | 
|  | especially for multiline `/** ... */` style comments. | 
|  |  | 
|  | * GERRIT-271  Enable forcing ldap.accountSshUserName to lowercase | 
|  | + | 
|  | The following properties may now be configured from LDAP using | 
|  | more complex expressions: accountFullName, accountEmailAddress, | 
|  | accountSshUserName.  Property expressions permit forcing | 
|  | to a lowercase string, or performing string concatenation. | 
|  | These features may help some environments to better integrate | 
|  | with their local LDAP server. | 
|  |  | 
|  | * Support username/password authentication by LDAP | 
|  | + | 
|  | A new auth.type of LDAP was added to support Gerrit prompting | 
|  | the end-user for their username and password, and then doing a | 
|  | simple bind against the LDAP server to authenticate the user. | 
|  | This can simplify installation in environments which lack a | 
|  | web based single-sign-on solution, but which already have a | 
|  | centralized LDAP directory for user management. | 
|  |  | 
|  | * Inform submitter of merge failure by dialog box | 
|  | + | 
|  | When a change submit fails, a dialog box is now displayed showing | 
|  | the merge failure message.  This saves the user from needing to | 
|  | scroll down to the end of the change page to determine if their | 
|  | submit was successful, or not. | 
|  |  | 
|  | * Better submit error messages | 
|  | + | 
|  | Missing dependency submit errors are now much more descriptive | 
|  | of the problem, helping the user to troubleshoot the issue on | 
|  | their own.  Merge errors from projects using the cherry-pick | 
|  | and fast-forward submit types are also more descriptive of the | 
|  | real cause.  Unfortunately path conflict errors are not any more | 
|  | descriptive, but path conflict is now only reported when there | 
|  | is actually a path conflict. | 
|  |  | 
|  | * issue 285   Include pull command line in email notifications | 
|  | + | 
|  | Sample git pull lines are now included in email notifications. | 
|  |  | 
|  | Bug Fixes | 
|  | --------- | 
|  | * create-project: Document needing to double quote descr... | 
|  | + | 
|  | The --description flag to create-project require two levels | 
|  | of quoting if the new description string contains whitespace. | 
|  | The documentation has been updated to reflect that, and shows some | 
|  | examples .  Unfortunately this is not easily fixed in software, | 
|  | due to the way the SSH client passes the command line to the | 
|  | remote server. | 
|  |  | 
|  | * GERRIT-281  daemon: Remove unnecessary requirement of HttpServletR... | 
|  | + | 
|  | The standalone SSH daemon now starts correctly, without needing | 
|  | to put the Java servlet API into the CLASSPATH. | 
|  |  | 
|  | * Enforce Account.sshUserName to match expression | 
|  | * Restrict typeable characters in SSH username | 
|  | * Disallow ., `_` and - in end of SSH Username | 
|  | + | 
|  | SSH usernames were permitted to contain any character, including | 
|  | oddball characters like '\0' and '/'.  We really want them to | 
|  | be a restricted subset which won't cause errors when we try to | 
|  | map SSH usernames as file names in a Git repository as we try | 
|  | to move away from an SQL database. | 
|  |  | 
|  | * GERRIT-282  Fix reply to comment on left side | 
|  | + | 
|  | Clicking 'Reply' to a comment on the left hand side sometimes | 
|  | generated a server error due to a subtle bug in how the reply | 
|  | was being setup.  Fixed. | 
|  |  | 
|  | * issue 282   Fix NullPointerException if ldap.password is missing | 
|  | + | 
|  | The server NPE'd when trying to open an LDAP connection if | 
|  | ldap.username was set, but ldap.password was missing.  We now | 
|  | assume an unset ldap.password is the same as an empty password. | 
|  |  | 
|  | * issue 284   Make cursor pointer when hovering over OpenID links | 
|  | + | 
|  | The cursor was wrong in the OpenID sign-in dialog.  Fixed. | 
|  |  | 
|  | * Use abbreviated Change-Id in merge messages | 
|  | + | 
|  | Merge commits created by Gerrit were still using the older style | 
|  | integer change number; changed to use the abbreviated Change-Id. | 
|  |  | 
|  | Other Changes | 
|  | ------------- | 
|  | * Start 2.0.22 development | 
|  | * Configure Maven to build with UTF-8 encoding | 
|  | * Document minimum build requirement for Mac OS X | 
|  | * Merge change 10296 | 
|  | * Remove trailing whitespace. | 
|  | * Update issue tracking link in documentation | 
|  | * Merge branch 'doc-update' | 
|  | * Move client.openid to auth.openid | 
|  | * Fix minor errors in install documentation. | 
|  | * Merge change 11961 | 
|  | * Cleanup merge op to better handle cherry-pick, error c... | 
|  | * GERRIT-67   Wait for dependencies to submit before claiming merge ... | 
|  | * Move abandonChange to ChangeManageService | 
|  | * Remove trailing whitespace in install.txt | 
|  | * Gerrit 2.0.22 |