Jump to >

Review Board 1.5 Release Notes

Release date: September 30, 2010

New User Features

Update Notifications

Review Board will now tell you when the review request or diff you’re looking at has been updated. Periodically, it will check the status of the review request and tell you when something has changed or someone has reviewed it. This makes it easier to keep a watch on things without having to reload the page.

Improved Auto-Complete

Auto-complete of the reviewers lists has been greatly improved. Aside from auto-complete of usernames and group names, which was available in 1.0, you can now auto-complete full names (matching either first or last name) or full group display names. This makes it easier to add reviewers without having to know their IDs.

The full names or display names are now shown in the auto-complete results along with the IDs.

Upload Screenshots by Drag-and-Drop

On modern HTML 5-capable browsers, such as Firefox 3.6 and Google Chrome, you can now upload screenshots by dragging them from your file manager into the review request page. When dragging over the page, a box will appear showing where to drop the screenshots. They will then upload without having to refresh the page.

You can drag and drop multiple screenshots at once, saving time.

Along with this, uploading a screenshot through the original Upload Screenshot dialog now adds it to the page without reloading.

Whitespace Control in the Diff Viewer

The diff viewer now includes two new options for controlling whitespace display.

The new Show Whitespace Changes/Hide Whitespace Changes toggle in the diff viewer controls whether changes that consist of only whitespace modifications (such as changing indentation of a line, or removing trailing whitespace) will be shown. This can help cut down the review time of large diffs that contain many lines of whitespace-only changes.

The new Show Extra Whitespace/Hide Extra Whitespace toggle in the diff viewer will control whether or not the extra whitespace indicators (the big red blocks) are shown.

Move Detection in the Diff Viewer

The diff viewer now indicates when a block of code has moved from one location to another. Previously, if code had moved, the diff viewer would only show inserts and deletes, leaving it unclear as to whether code was changed during the move. Now, these regions contain special tags on the side that indicate where the line was moved to. Clicking on these tags will jump to the source or destination for that particular line, briefly highlighting the line.

Function and Class Headers in the Diff Viewer

The diff viewer will now show function or class information for collapsed regions. These are also shown in the parts of the diff commented on in the review request page and HTML e-mails.

The functions/classes shown are the closest ones found to the collapsed region, and as much may not be exactly where the code in the region lives, but should serve as a good guide as to where the code is in the file.

Support for function/class headers exists for C, C++, C#, Objective-C, Java, JavaScript, Perl, PHP, Python, and Ruby files.

Image Review without Diffs

As more companies use Review Board, we’ve seen an increasing demand in using it just for image review. We’ve removed the restriction that a review request must have an associated diff. Users can choose to upload a diff label, or just keep it diff-free.

Furthermore, users can now set their repository to (None - Graphics Only) when creating a review request, which makes it clear that the review request will be used for image review. In this mode, the review request can never have a diff uploaded.

Better E-Mails

HTML E-Mails

Review Board now sends HTML e-mails with more information than the old e-mails could contain.

The review request e-mails look similar to the review request page and will show any thumbnails for screenshots on the review request and link to any associated bugs.

The review e-mails show the fragment of the diff or screenshots that has been commented on.

E-mail clients that have HTML e-mails turned off will show the original text-only e-mails.

Filtering

E-mails now have X-ReviewBoard-URL and X-ReviewRequest-URL headers, which can be used for filtering e-mails more intelligently. X-ReviewBoard-URL contains the URL of the Review Board server, and X-ReviewRequest-URL contains the URL to the review request referenced in the e-mail.

iPhone and iPad Support

We now support code review using the iPhone and iPad through the main Review Board web UI. You can bookmark Review Board to your home screen with a nice clean icon and use Review Board like you would on the computer.

This is not the same as the old iPhone UI. This is the standard Review Board UI, fully usable on the iPhone and iPad.

New Dashboard Columns

New optional “Branch” and “Bugs” columns have been added to the Dashboard.

The “Branch” column is sortable and displays the branch specified in the review request.

The Bugs column is a comma-separated list of bugs referenced in the review request. This column is not sortable.

Password Reset

Users who lose their passwords can now reset them by following the link on the login screen. An e-mail will be sent to their account with instructions on resetting the password.

New Administration Features

Python 2.7 Compatibility

Review Board can now be installed on systems running Python 2.7.

PyLucene 3.x Compatibility

Review Board now supports PyLucene 3.x, the latest generation of PyLucene, which is provided by most major Linux distributions. Support for 2.x still remains.

Easier Repository Configuration

It’s now easier to set up a repository, particularly against various hosting services. A new configuration page now gives administrators the option of choosing between Bitbucket, GitHub, Google Code, or SourceForge. It will request information needed to identify your account on the repository, and then handle the repository path and other settings.

Similarly, the bug tracker can now be set to one of several supported bug trackers, including BitBucket, Bugzilla, Google Code, Redmine, SourceForge or Trac.

Hiding Old Repositories

Repositories that are no longer in use can now be hidden from users by unchecking Show this repository on the repository’s configuration page.

Per-Repository Default Reviewers

The Default Reviewers support has been enhanced to allow a Default Reviewer to be applied to one or more specific repositories. The configuration page has also been revamped for better usability and error checking.

Server Log

A Server Log page has been added for viewing the Review Board log file. The log can be sorted and filtered, and lines are color-coded based on severity.

You can get to the new page by clicking Server Log on the Administration Dashboard.

Amazon S3 Storage

Large installations can now use Amazon S3 for storing uploaded screenshots. This is especially useful for Review Board instances hosted on Amazon EC2, but can be used in any installation to offload the screenshots.

In the future, this will be used for storing other types of data besides screenshots.

reCAPTCHA Support for Registration

Review Board servers that are open to the public can have issues with spambots creating new accounts. Review Board can now use the reCAPTCHA service to help guard against spam accounts.

By signing up at the reCAPTCHA site, you will receive keys you can specify in the new Authentication Settings page in the administration UI to enable a captcha. Captchas are easy to solve by humans, but harder for programs to solve, and should work well as a deterrent.

WSGI Support

rb-site can now generate a WSGI installation for Review Board. This is a more modern replacement for mod_python, which won’t be available in future versions of Apache.

Custom Management Commands

Review Board today provides a few management commands, invoked by running rb-site manage /path/to/site commandname. These were limited to the commands we bundled, but now administrators can write custom commands that they can invoke, which have access to the Review Board database and other internals. This can be useful for automation scripts.

To make use of this, see the Django custom django-admin commands documentation and place the scripts in the sitedir/commands directory. You will need to create this directory if it does not exist.

Batch Operations

The administration UI can be used to quickly close or reopen multiple review requests at once.

For other types of data in the database, the administration UI supports deleting multiple entries at once, though this should be used with caution as it can cause irreversible data loss.

Better Validation

Many pages in the administration UI offer better validation, preventing problems with configuration.

X.509 Certificate Support

Review Board now supports authenticating using X.509 certificates. This is useful in environments with a Public Key Infrastructure set up.

Usability Improvements

Update Diff Improvements

The previous base diff path (for Subversion and CVS repositories) is now remembered and used the next time you update the diff.

Tooltips in the Dashboard

Tooltips have been added for the Starred, Ship It, Comments and Updated images. This helps to describe the purpose of these icons for users who are unfamiliar with them.

Comment Improvements

  • Added a resize grip to the comment dialog in the diff viewer and screenshot page. This provides a larger area to click to quickly resize the comment box.
  • Comment flags in the diff viewer now cover the entire range of lines that the comment refers to, making it more obvious at a glance.
  • Comment flags in the diff viewer no longer overwrap the line numbers.

Administration UI Improvements

  • The User Permissions list in the administration UI are now vertically stacked, making it possible to see the full permission names instead of only part of the permission names.

  • The organization of forms in the database browser in the administration UI has greatly improved.

    The fields that should generally not be modified (such as internal state) have moved to sections that are collapsed by default. The other fields have been better organized.

    Some fields that used to load hundreds or thousands of entries for selecting one object now just display the ID of the entry which, when clicked, allow for browsing for the new entry. There’s usually no reason to change these fields, but this change reduces the complexity of the site and the time spent loading the pages.

    Many of the lists of entries are now searchable, filterable, and have better default sorting.

API Changes

A new web API has been added, which replaces the old API provided in Review Board 1.0.x.

The new API is much like the old one, but is cleaner, more browseable (as opposed to having to know and hard-code all the URLs in the client) and makes extensive use of existing HTTP methods and error codes. The API lives in /api/.

The old REST API is deprecated, but won’t go away in this release.

The new features included with this API are:

  • A more consistent interface. Creation of objects are always done by a HTTP POST to a list of resources. Updating is done by a HTTP PUT to an object resource. Deleting is done by a HTTP DELETE to an object resource.
  • Authentication is now done exclusively by using HTTP Basic Auth.
  • Lists of review requests or other objects are now paginated to reduce load on the client and the server.
  • Review requests can be filtered by multiple types of criteria, such as lists of reviewers, the repository, and more.
  • Every resource in the API now points to child resources and other related resources by way of hyperlinks in the resulting payload. This makes the entire API resource tree browseable by any client.
  • Supports JSON and XML output, based on the HTTP Accept header’s value in the request. This may be expanded for new types in the future.

The new API is documented on the Web API Guide.

New Repository Support

Remote Git Support

Remote Git repositories can now be added. Previously, Review Board required a local, always up-to-date clone of the Git repository. Now we support downloading files from a repository through a Git web front-end. This requires something like Gitosis, cgit, or gitweb on the server. See the Administration Guide for more information on how to set this up.

Subversion Repositories over HTTPS

Up until now, only HTTP Subversion repositories could be used with Review Board. We now support Subversion repositories that use HTTPS. When adding/saving such a repository, the HTTPS certificate will be checked and may be displayed to the administrator for confirmation.

This requires some changes to the site directory, permissions, and possibly the web server’s configuration file. See the instructions after upgrading your site when you use rb-site.

Repositories over SSH

Repositories that are accessed over an SSH connection are now supported. When adding the repository, Review Board will ask you to confirm the server’s identity and will then store it for future access.

This works with Bazaar, CVS, Git, Mercurial, and Subversion.

Perforce Improvements

Pending changes on Perforce servers now have a “(pending)” indicator next to the change number.

Mercurial Improvements

Added Mercurial support for --git formatted patches.

Changes since 1.5 RC 2

New Features

  • Added support for linkifying text (such as bug numbers and URLs) in reviews. Patch by Laurent Nicolas.
  • Add a toggle on the diff viewer for showing or hiding trailing or extra whitespace. Patch by Laurent Nicolas.
  • Added support for Clear Case directory changes in the diff viewer. Patch by Jan Koprowski.

Bugs Fixed

  • Fixed a possible security bug in LDAP where an empty password could be accepted during login. Patch by Corey Hickey.
  • Attempting to review a review request with a “Graphics only” repository setting would break. (Bug #1828)
  • Links in the HTML review e-mails were missing the server domain, and were as a result broken.
  • Syntax highlighting for files on Clear Case was broken. Patch by Jan Koprowski. (Bug #1590)
  • Patches on Mercurial mqueues would sometimes report missing files due to not having version information for some files. Those files are now marked with a version of “Unknown”. Patch by Eduardo Felipe Castegnaro.
  • New files in a Git change would trigger an error when performing SHA1 validation.
  • Screenshots smaller than the thumbnail width on the review request page would have a smaller clickable area. Clicking on parts of the thumbnail box outside of the image would do nothing, instead of opening the screenshot as it should have.
  • Uploading a screenshot while on a screenshot page would cause a JavaScript error upon completion.

Contributors

  • Alex Harvey
  • Brett Simmers
  • Christian Hammond
  • Chris Clark
  • Chris Trimble
  • Dan Buch
  • David Trowbridge
  • Eduardo Felipe Castegnaro
  • Helder Ribeiro
  • Jacob Farkas
  • Jan Koprowski
  • Kay Röpke
  • Laurent Nicolas
  • Markus Knittig
  • Mike Conley
  • Nathan Auch
  • Nathan Heijermans
  • Nikolai Prokoschenko
  • Phil Orwig
  • Ryan Oblak
  • Simon Morley