Jump to >

Review Board 3.0.13 Release Notes

Release date: February 19, 2019


New Features

  • Added the ability to change how From e-mail headers are generated. (Bug #4578)

    Review Board tries to send e-mails on behalf of users by using their own e-mail address as the From address, checking DMARC records to determine whether this can be done safely.

    Administrators can now set whether e-mails can be sent in this way in E-Mail Settings, helping for deployments where it’s always safe or never safe to alter the From address.

    Based on work from Brian LeBlanc.

  • Added a Follow menu for keeping up with Review Board updates.

    Pages now have a new Follow menu in the top-right, alongside the account menu and Support, for quickly visiting the Review Board news page, Twitter and Facebook pages, Subreddit, and YouTube channel. This makes it easier to stay informed on what’s happening with Review Board and follow new releases and development.

    If you need to disable this, you can set DISABLE_FOLLOW_MENU = True in your conf/settings_local.py file.

  • Added support for custom username fields for the X.509 authentication backend.

    The X.509 authentication backend provides a number of default fields in the request that can be used to match usernames. Now, custom fields can also be added as well, for deployments using other X.509-compatible authentication systems.

    Patch by Joshua Cannon.

  • Inactive users and discarded review requests are now included in the search index. (Bug #4683, Bug #4767)

    This will require a re-index in order to include any older users or review requests.

Performance Improvements

  • Reduced the number of user profile lookups.

    User profiles (and some related database state) is accessed all across the product. In many cases, a page load or API request would result in more than one lookup of the same data, due to our internal caches not being used correctly. This release fixes all these up to ensure we’re only ever looking up a user’s profile once per HTTP request.

  • Simplified writes to user profile data.

    When writing profile data, we’d often write out the entire profile to the database rather than the few fields that changed. We’ve optimized these writes to only write what’s needed. This has the benefit of also preventing collisions with other requests that are modifying profile data.

  • Reduced complexity of existence-checking SQL queries.

    We have many places in the product where we check for the existence of entries in the database by performing a count on the number of rows in the database matching a query. These have been optimized to return a result to us as soon as 1 row is found, rather than totalling all the rows, reducing the load on the database.


Bug Fixes

Review Requests

  • Unsetting the Target Groups field no longer results in the full list of assignable review groups being shown. (Bug #4790)


  • Repository condition fields for integrations no longer show archived or hidden repositories.

  • Review group condition fields for integrations no longer show hidden review groups.

  • Integration configuration forms now limit available options based on the Local Site.

    If a Local Site is set in the configuration form, then fields for data like repositories or review groups will only allow choices that are compatible with the Local Site.


  • Brian LeBlanc

  • Christian Hammond

  • David Trowbridge

  • Joshua Cannon