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