Jump to >

Review Board 2.0.9 Release Notes

Release date: October 22, 2014

Upgrade Notes

  • This release contains database schema changes.

New Features

  • Support copying text from columns in the diff viewer. (Bug #1094)

    Previously, attempting to select code in the diff viewer would result in a text selection rectangle that spanned columns and line numbers, making it impossible to copy a block of code. This is now fixed for modern versions of Chrome, Firefox, and Internet Explorer.

  • Support Markdown in the Submitted/Discarded description fields.

  • Allow users to opt out of e-mail notifications for their own actions. (Bug #3316)

    By default, Review Board sends email to everyone, including the author of a given update. This is done in order to create a useful record of the conversation in threaded e-mail clients.

    Users can now set a flag in their account preferences to opt out of e-mail for their own actions. Note that any e-mails which are sent to mailing lists that the users are members of will still be delivered to them through the mailing list.

    Patch by Barret Rennie.

Security Improvements

  • Hardened password storage for new and existing repositories.

Usability Improvements

  • Fixed behavior of home/end keys in CodeMirror. (Bug #3392)

    The behavior of home/end in Markdown editors did not match the native text editing behavior when lines were long enough to wrap.

Performance Improvements

  • Improve performance of editing text.

    Interactive editing of text in the Markdown editors was slow, especially when typing very fast. These performance problems have been fixed.

  • Improved the database query performance when querying some list resources in the Web API.


  • Added an is_enabled_for mechanism for NavigationBarHook.

    NavigationBarHook can now decide whether or not to enable itself for each user.

  • Fixed SignalHook disconnection when unloading extensions.

    If an extension passed a sender into the SignalHook when connecting to a signal, it would fail to disconnect when the extension was unloaded.

    Patch by John Talling.


  • Improved close description support in the API.

    The Review Request resource now has a close_description field that is set when the review request is marked as closed with a description.

  • Renamed the description field when closing review requests.

    To match the new close_description field when fetching the review request resource, the old description parameter used when closing a review request has been renamed to close_description.

  • Fixed the user resource with public Local Sites. (Bug #3582)

    The Local Site specific User Resource would return a 404 for any users who were not members of the Local Site, which caused problems with rbt patch and public Local Sites. This bug was fixed in the 1.7.x series, but it never made it across to 2.0.x or master.

  • Preserve query arguments when redirecting from Review/Reply draft resources.

    The Review/Reply Draft resources redirect to a resource with the appropriate ID, but when doing so, they don’t preserve any query string arguments. This means that if something like ?api_format or ?force-text-type is used, it would be lost.

  • POST and PUT requests can now force the returned text types in payloads.

    GET requests were able to set ?force-text-type= to force any text fields capable of rich text to be converted to the requested type in the returned payload. POST and PUT requests now have this ability as well by setting force_text_type= in the request data to the desired text type.

  • Custom text fields provided by extensions can now have their text type forced.

    Extensions may provide custom rich text fields, which have their values stored in extra_data in the payload. These values will now respect the ?force-text-type= and force_text_type= arguments in requests.

  • Added support for forcing text to HTML in requests.

    "html" is now a valid value for ?force-text-type= and force_text_type=. The text, whether plain text or Markdown, will be rendered to HTML.

Bug Fixes


  • Fixed Markdown escaping problems with intra-word underscores.

    The version of marked.js that we were using has a bug where underscores in the middle of a word were not properly ignored, even when GitHub Flavored Markdown was enabled. Because of this, we were adding escaping to intra-word underscores, but this caused that escaping to be visible when viewing text that was rendered by the server-side Python-Markdown implementation.

    We’ve upgraded to a fixed version of marked.js and made the escaping of underscores more precise to fix this.

  • Fixed regressions in the autocomplete behavior for users and groups.

    A change to the autocomplete behavior caused numerous problems with selecting the default completion. This change has been reverted.

  • Fixed some small vertical shifts when opening and closing editors.

  • Fixed double-escaping of file attachment captions in the review pages.

    If a file attachment caption included special characters such as double quotes, they would be displayed incorrectly in the title of the review page for that file.


  • Fixed initial calculations for open issue counts on the dashboard.

    The calculations for how many open issues were present on a review request (done during the upgrade from 1.x to 2.0.x) were not quite right. If you have incorrect issue counts in your dashboard, you can fix them by running rb-site manage /path/to/site reset-issue-counts.

Diff Viewer

  • When opening the diff viewer in Firefox, you no longer have to click Back twice to get to the previous page.

    Patch by Steven MacLeod.

  • Fixed a couple issues that could cause a “list index out of range” error when viewing interdiffs containing deleted files. (Bug #3481)

Review Requests

  • Prevent users from publishing empty (no modifications made) review request drafts. (Bug #3452)

    It’s possible to end up creating a draft on an existing review request that doesn’t contain any changed fields. Publishing this would create a “review request changed” box with no entries in it. This is now prevented.

    Patch by Mark Loyzer.

  • Fixed e-mail notifications when Local Site groups were present. (Bug #3581)

    In the case where the database had a Local Site configured with a review group, and a user was a member of that group, there were cases where that user might not get e-mail notifications for other review groups.

  • Prevent HTTP 500 errors when failing to generate a thumbnail for file attachments.


  • Fixed saving file storage settings with choices other than local storage or OpenStack Swift.

    The file storage administration UI would fail to save correctly when trying to configure Amazon S3 or other back-ends, due to some bugs in the OpenStack Swift backend.

    Patch by Andrew Hong.

  • Fixed usage of configured cache backends.

    An upstream change in Django caused a regression in the caching behavior, automatically using the “local memory” cache, regardless of what was configured in the settings. This release fixes that, and in the process makes it possible to switch cache backends without restarting the web server.

  • Fixed the help output of the rb-site manage command.

  • Fixed Python 2.6 compatibility with the condensediffs management command.

Repository Hooks

  • Fixed over-eager commit ID matching in the close-submitted hooks.

    The hooks for closing review requests when code was pushed to a repository would match review requests on the commit ID, but were not also matching the repository. This meant that systems where commit IDs can conflict (such as with Subversion) could end up closing the wrong review request.


  • Fixed a couple more issues with missing commit data.

    In the post-commit section of the “New Review Request” page, commits that lacked author information or commit messages would cause server errors. These have been fixed.


  • Andrew Hong

  • Barret Rennie

  • Christian Hammond

  • David Trowbridge

  • John Talling

  • Mark Loyzer

  • Steven MacLeod