Jump to >

Review Board 1.6 Release Notes

Release date: September 5, 2011

This release contains all bug fixes and features found in Review Board version 1.5.6.

New User Features

Review Requests

Close Descriptions

When closing a review request (discarding or marking as submitted), a description can now be added on the close banner. This works much like a change description for drafts. These can be used to describe why a change was discarded, or what revision it was submitted as, or anything else.

Patch by Hongbin Lu. (Bug #268, Bug #693, Bug #1052)

See the Closing Review Requests documentation for more information.

Collapsible Reviews

Older reviews that haven’t been updated since the last time you accessed the review request are now collapsed, letting you focus on the latest discussions taking place.

Collapsed reviews can be expanded by clicking the [+] button.

Patch by Kevin Quinn.

Notification Tab Icons

The page icon shown on the tab will now show a green indicator whenever there’s an update notification on the page. This makes it easier to keep track of any changes to review requests when several tabs are open.

Data Loss Prevention

It’s harder to lose the changes you make to a review request. We have several safe-guards to keep from accidentally losing work.

  • Added error messages when typing an invalid reviewer (user or group). Prior to this, the invalid reviewer would just disappear from the list, leaving no indication that it was wrong.

    Patch by Kevin Quinn.

  • Added alerts whenever leaving a page would cause data loss. (Bug #1794)

    Leaving a page while a field or a comment or anything else is being edited will now prompt the user to make them aware they may lose changes. They’ll have an option to leave the page or stay on the page.

  • Added confirmation when canceling a field with new changes. (Bug #2096)

  • Added a Control-S shortcut to save the field you’re editing.

    Patch by Hongbin Lu. (Bug #2096)

File Attachments

Files of any type can now be uploaded to a review request and reviewed as a whole. This is useful for providing tarballs of non-diffable files, log files, unit test output, sample files, etc.

Every uploaded file will appear on the review request page, with the ability to download or add a comment about the file.

Comments made on files will appear in the review, just like diff and screenshot comments.

Like screenshots, file attachments can be dragged and dropped from the file manager into the review request as a faster way to upload them.

The initial work for this feature was developed by Laila Agaev and then Steve Sutcliffe as part of their UCOSP projects this past year.

See the Uploading File Attachments documentation for more information.

Review Improvements

Quick Ship It!

A new Ship It! button on the action bar of a review request makes it easier to post new “Ship It!” reviews. It takes only two clicks to post the review. One to click the button, and another to confirm you want to post the review. This greatly speeds up reviews of good changes.

See the Filing “Ship It!”-Only Reviews documentation for more information.

Patch by Kevin Quinn. (Bug #1640)

Issue Tracking

Issue tracking provides a new and improved way to mark and reply to defects in a change. When reviewing code, a reviewer can mark a comment as a defect by checking the Open an issue checkbox in a comment dialog. The developer will see that an issue has been filed, and can easily mark it as fixed, or drop it.

This is a faster way to reply to reviews. The developer needs only to click a button to say the issue was fixed, instead of replying with a comment saying it’s fixed.

See the Issue Tracking documentation for more information.

Patch by Mike Conley.

Persistent Draft Banners

Review draft banners now stay on screen while the review is shown.

This helps with long reviews when you’ve reached a point where you want to publish the review. You no longer need to scroll up to find the draft banner. It will remain on screen.

Patch by Mark Striemer.

Diff Viewer

Delete Detection

Deleted files in Git and Perforce are now specifically shown as having been deleted in the diff viewer, instead of the entire file being shown in red. In time, we’ll extend this to other types of repositories.

Move/Rename Information

The change index and file sections now show when a file has been moved or renamed and what the new name is. Whether or not this is shown depends on the diff and type of repository.

Patch by Colin Caughie.

User Profiles

Private Profiles

Added support for private profiles.

On a public Review Board server, users may not want their name and e-mail address to be easily accessed on their profile page or through the API. Users can now go to their My Account page and make their profile private.

When a profile is private, the only users who can see the profile information are the site administrators and the user owning the profile.

Patch by Hongbin Lu. (Bug #2127)

Improved User Pages

The user page now shows more information on the user, such as their name, e-mail address, their Gravatar, and what groups they’re a member of. Patch by Kevin Quinn.

User Info Bubbles

Hovering the mouse of a user’s name (either on a review or review request) now loads an info bubble showing the user’s name, e-mail address, and Gravatar.

Patch by Kevin Quinn.

Dashboard

New Columns

New People and Groups columns were added to the dashboard. These new columns show the individual and group reviewers listed for review requests. They are optional and need to be explicitly added.

Patch by Philipp Henkel.

Color-Coded Labels

The “Discarded” and “Submitted” labels in the dashboard views now have their own distinct colors.

Patch by Vlad Filippov. (Bug #1903)

Better E-Mail Filtering

Added X-ReviewGroup headers for e-mails, which lists all the review groups assigned in the review request. E-mail clients can use this to filter review requests into different folders.

Patch by Vignesh Srinivasan. (Bug #1964)

SCM Improvements

New Clear Case Support

Added a brand new Clear Case implementation.

This new implementation is cleaner, more reliable, and fixes many of the problems with the old implementation. Given that this is a complete rewrite, we’d appreciate any bug reports for things that used to work in Review Board 1.5.x.

Patch by Jan Koprowski. (Bug #1375, Bug #1516, Bug #1553, Bug #1588, Bug #1599, Bug #1644, Bug #1727, Bug #1926, Bug #1930, Bug #1931).

New Administration Features

Access Control

Local Site Divisions

Review Board now supports managing several virtual instances within a single install, similar to subdirectory installs but as part of a main install’s URL. These would live on, for example, http://reviews.example.com/s/mysitename/, where http://reviews.example.com/ is the main Review Board installation.

These site divisions can all have their own repositories, groups, review requests, users, and administrators. Data within a site division is available only to members of that site. This makes it easy to have, say, a main development Review Board, a contractor Review Board, and a QA Review Board, all separate and locked down, but without having to maintain and upgrade multiple servers.

This isn’t completely put together yet. An administrator on a site doesn’t yet have any UI for putting together a repository or changing any settings, so it still requires a site-wide administrator to set up each site division.

This is an advanced feature and may not work for all use cases yet.

Invite-only Groups

Groups can now be marked as invite-only. An invite-only group cannot be viewed by non-members of the group through either the web or the UI.

A review request targeting just invite-only groups cannot be viewed unless the user is either explicitly specified on the review request or they’re a member of at least one of the targeted groups. However, if it also lists any public groups, it will be available to everyone.

Note that users will still be able to see these review requests listed on the “All Review Requests” page, but won’t be able to access them.

See the Invite-only Review Groups documentation for more information.

Hidden Groups

Hidden groups are groups that are not shown unless a user is a member or otherwise knows about it (for example, has starred the group, or knows the URL). A hidden group may be invite-only, but it doesn’t have to be.

This allows administrators to deprecate a group or to hide invite-only groups. The group won’t appear in any auto-complete, list, or the API, unless the user is a member of the group.

See the Hidden Review Groups documentation for more information.

Private Repositories

Repositories can now be locked down such that only specific users can see the review requests on them. Users can be added to a repository’s user list directly, or indirectly by adding one or more invite-only groups. Note that access control applies to the entire repository, not specific paths within it.

If a user doesn’t have access to a private repository, they won’t be able to see any review requests on it.

See the Private Repositories documentation for more information.

E-mail

DKIM Support

Some spam filters would get caught up on Review Board’s From header forging. The address didn’t actually match the source, causing them to sometimes flag review requests as spam.

We now send e-mails with a Sender header. Servers can use this to find the true sender of the e-mail, instead of assuming it’s the value in From. By default, this is noreply@<domain>, but it can be changed in the admin UI.

This still requires that the sender domain is configured properly for DKIM support.

See the Working with E-Mail documentation for more information.

New User Notifications

Added support for e-mailing administrators when new users register.

Administrators can be notified when new users sign up on the Review Board server. This is particularly useful for open source projects.

Patch by Hongbin Lu. (Bug #1081)

Repository Improvements

Private GitHub Organizations

The Repository page in the administration UI now provides a Hosting Service entry for private GitHub Organizations. This differs from the other GitHub entries in that it requires the username used to access files on that repository, rather than assuming the hosting owner account or organization name is used.

Gitorious

Gitorious is now a supported hosting service for Review Board, and can be easily configured on the Review Request page.

Patch by Hongbin Lu. (Bug #2053)

HTTP Basic Auth for Git

Added support for HTTP Basic Auth for Git repositories when using the web-based raw file URL method.

Private git repositories requiring a username and password through the HTTP Basic Auth mechanism can now be accessed from Review Board. The repository’s username and password are used when accessing the file requires authorization.

Perforce Stunnel

Perforce repositories can be secured by using stunnel on the client and server. Review Board now knows how to make use of this. A Perforce repository path beginning with stunnel: will tell Review Board to use stunnel for all communication to that repository.

See the Using Perforce with stunnel documentation for more information.

Plastic SCM support

We support connecting to Plastic SCM repositories. Plastic SCM is a new SCM provided by Codice Software. If you have a recent RBTools installed, it will already work with Plastic SCM checkouts. Patch by Dick Porter.

LDAP Improvements

Added additional LDAP configuration for name attributes.

LDAP configurations can use different attributes to store people’s names. These attributes can now be customized in the LDAP configuration.

Patch by Tucker Dewitt. (Bug #2122)

Cache Setting

The cache backend can be changed through the Administration UI. Previously, this needed to be modified in the conf/settings_local.py file and sometimes in the serialized settings in the database.

Patch by Vlad Filippov.

Troubleshooting

Review Board’s Manual Updates pages have historically been a bit confusing, and sometimes were misleading. They’ve now been completely replaced with useful, detailed sets of instructions, along with any error messages that would make debugging problems (broken database connections, for example) easier.

It should be much easier now to get going after installing an existing Review Board release, upgrading an old one, or when something goes wrong with the database connection.

Extensibility

Custom Authentication Backends

Custom authentication backends, if written against our new auth backend API properly, will now show up automatically in the list of authentication backends in Settings, much like LDAP, Active Directory, and others.

They can provide their own settings form, and save their settings in our settings database. This makes it easier for companies and organizations to write custom backends that tie into their services and to continue using them release to release.

They can also specify capabilities, such as “is registration supported” or “can names, e-mail addresses, or passwords be changed.” For the latter, they can also handle updating this information server-side when the user changes it.

See Writing Authentication Backends for more information.

Performance Improvements

Dashboard

The dashboard is now much faster. We used to perform many queries (some that were a bit slow) in order to get the counts for each section in the sidebar, but now these counts are all cached. This provides a very noticeable speed improvement, especially when using a lot of groups.

New Review Request Page

The New Review Request page generated far too many database queries when displaying the list of repositories. It would query once per entry. With hundreds of repositories, this would slow down the page and the server.

This has been drastically sped up and now performs much faster with large lists.

Syntax Highlighting

The rendering of syntax highlighting in diffs is now faster.

We switched to requiring Pygments 1.4, which offers speed improvements when generating the syntax highlighting in our diffs. This upgrade also adds support for new file types. The list can be found on their website.

SCMTool Queries

Reduced queries when looking up SCMTools in the database.

We now cache lookups to SCMTools (the components responsible for talking to repositories), reducing the amount of queries that need to be made on each page.

Diff Viewer

Reduced the number of round trips to the database when loading the diff viewer.

Patch by Ben Hollis.

API Changes

  • Added API for getting change descriptions.

    All the information from the change descriptions can now be retrieved. They contain more information than even the change descriptions on the website. Users, screenshots, and other such resource-backed data now embeds and links to the appropriate resource. (Bug #2026)

  • Added a quick search API for retrieving basic searchable information.

    A /search/?q= resource has been added that can search for various bits of information based on search terms. It will search users (matching username, first name, and last name), groups (name and display name), and review requests (IDs and summaries).

    Patch by Crystal Lok Koo.

  • Added a ?ship-it= parameter to the review requests list resource.

    The /api/review-requests/ API gained a ?ship-it= filter that makes it easy to locate review request that either have a Ship It (if ship-it=1), or have none (if ship-it=0).

  • Added support for HTTP caching headers for resources.

    Resources now provide and respect Last-Modified timestamps and ETags. Clients with HTTP caching header awareness will be able to tell if resources need to be fetched, or if the cached version will suffice.

    It’s possible that there will be regressions on some resources that don’t properly recompute their timestamps. If you encounter stale data, send us a bug report.

  • Draft resources weren’t always being fetched correctly, returning 404s.

  • Fixed accessing diff resources for closed review requests. (Bug #2009)

    The diffs resource (and possibly others) was failing when accessed on a closed review request. It would return a 404 Not Found.

  • Errors accessing Perforce repositories are now reported in the web API.

Removed Features

  • The old 1.0 API has been removed. All clients need to be updated to use the new 1.5 API. If you’re running a recent RBTools (post-review), you’re fine.

  • The old iPhone interface has been removed. The main UI works fine now with the iPhone and iPad.

  • Removed RSS/Atom feed support.

    In the very early days, we had RSS/Atom feeds for review requests, users and groups. These aren’t really useful anymore, and nothing has ever truly exposed them. Most likely, nobody even knows they exist. They’re now gone.

Changes since 1.6 RC 2

New Features

  • Added a setting in the admin UI for setting the cache backend. Patch by Vlad Filippov.
  • Added a new favorite icon, which works in Internet Explorer. Patch by Ben Allen.
  • Added a Alt-I shortcut for toggling the Open an issue checkbox in comment dialogs.
  • The Open an issue checkbox is now checked by default.

Bug Fixes

  • Issue tracking now works with file attachment comments.
  • Fixed some issues preventing database migrations from succeeding in rare cases.
  • The e-mail address on the user info popup is now being shown again.
  • The Search Index File setting has been renamed to Search Index Directory to better reflect how it’s used.
  • Fixed several issues with drag-and-drop on Chrome and Firefox causing flicker and stuck drop overlays. (Bug #2196)
  • The manual updates page no longer fails on Windows if the necessary environment variables are missing. (Bug #2214)
  • Duplicate draft comments and replies on the same review are no longer allowed through the API or UI. (Bug #2154)
  • Replying to comments on file attachments has been fixed. (Bug #2173)
  • Fixed dashboard counters when discarding or deleting draft review requests. (Bug #2194)
  • Fixed a compatibility issue with Perforce on Python 2.4. (Bug #2195)
  • Fixed password authentication on Perforce. (Bug #2199)

Contributors

  • Alexander Solovets
  • Ben Allen
  • Ben Hollis
  • Christian Hammond
  • Colin Caughie
  • Cristian Messel
  • Crystal Lok Koo
  • David Trowbridge
  • Dick Porter
  • Hongbin Lu
  • Jan Koprowski
  • Kevin Quinn
  • Laila Agaev
  • Mark Striemer
  • Megan Schneider
  • Mengyun Kong
  • Mike Conley
  • Paul Schulz
  • Philipp Henkel
  • Steve Sutcliffe
  • Tucker Dewitt
  • Vignesh Srinivasan
  • Vlad Filippov