• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. Review Board
    2. Review Board 5.0 Release Notes
  • Home
  • Review Board 7.0.3 Release Notes
  • Review Board 7.0.2 Release Notes
  • Review Board 7.0.1 Release Notes
  • Review Board 7.0 Release Notes
  • Review Board 6.0.2 Release Notes
  • Review Board 6.0.1 Release Notes
  • Review Board 6.0 Release Notes
  • Review Board 6.0 Beta 3 Release Notes
  • Review Board 6.0 Beta 2 Release Notes
  • Review Board 6.0 Beta 1 Release Notes
  • Review Board 5.0.7 Release Notes
  • Review Board 5.0.6 Release Notes
  • Review Board 5.0.5 Release Notes
  • Review Board 5.0.4 Release Notes
  • Review Board 5.0.3 Release Notes
  • Review Board 5.0.2 Release Notes
  • Review Board 5.0.1 Release Notes
  • Review Board 5.0 Release Notes
  • Review Board 5.0 RC 1 Release Notes
  • Review Board 5.0 Beta 2 Release Notes
  • Review Board 5.0 Beta 1 Release Notes
  • Review Board 4.0.13 Release Notes
  • Review Board 4.0.12 Release Notes
  • Review Board 4.0.11 Release Notes
  • Review Board 4.0.10 Release Notes
  • Review Board 4.0.9 Release Notes
  • Review Board 4.0.8 Release Notes
  • Review Board 4.0.7 Release Notes
  • Review Board 4.0.6 Release Notes
  • Review Board 4.0.5 Release Notes
  • Review Board 4.0.4 Release Notes
  • Review Board 4.0.3 Release Notes
  • Review Board 4.0.2 Release Notes
  • Review Board 4.0.1 Release Notes
  • Review Board 4.0 Release Notes
  • Review Board 4.0 RC 2 Release Notes
  • Review Board 4.0 RC 1 Release Notes
  • Review Board 4.0 Beta 2 Release Notes
  • Review Board 4.0 Beta 1 Release Notes
  • Review Board 3.0.26 Release Notes
  • Review Board 3.0.25 Release Notes
  • Review Board 3.0.24 Release Notes
  • Review Board 3.0.23 Release Notes
  • Review Board 3.0.22 Release Notes
  • Review Board 3.0.21 Release Notes
  • Review Board 3.0.20 Release Notes
  • Review Board 3.0.19 Release Notes
  • Review Board 3.0.18 Release Notes
  • Review Board 3.0.17 Release Notes
  • Review Board 3.0.16 Release Notes
  • Review Board 3.0.15 Release Notes
  • Review Board 3.0.14 Release Notes
  • Review Board 3.0.13 Release Notes
  • Review Board 3.0.12 Release Notes
  • Review Board 3.0.11 Release Notes
  • Review Board 3.0.10 Release Notes
  • Review Board 3.0.9 Release Notes
  • Review Board 3.0.8 Release Notes
  • Review Board 3.0.7 Release Notes
  • Review Board 3.0.6 Release Notes
  • Review Board 3.0.5 Release Notes
  • Review Board 3.0.4 Release Notes
  • Review Board 3.0.3 Release Notes
  • Review Board 3.0.2 Release Notes
  • Review Board 3.0.1 Release Notes
  • Review Board 3.0 Release Notes
  • Review Board 3.0 RC 1 Release Notes
  • Review Board 3.0 Beta 2 Release Notes
  • Review Board 3.0 Beta 1 Release Notes
  • Review Board 2.5.18 Release Notes
  • Review Board 2.5.17 Release Notes
  • Review Board 2.5.16 Release Notes
  • Review Board 2.5.15 Release Notes
  • Review Board 2.5.14 Release Notes
  • Review Board 2.5.13.1 Release Notes
  • Review Board 2.5.13 Release Notes
  • Review Board 2.5.12 Release Notes
  • Review Board 2.5.11 Release Notes
  • Review Board 2.5.10 Release Notes
  • Review Board 2.5.9 Release Notes
  • Review Board 2.5.8 Release Notes
  • Review Board 2.5.7 Release Notes
  • Review Board 2.5.6.1 Release Notes
  • Review Board 2.5.6 Release Notes
  • Review Board 2.5.5 Release Notes
  • Review Board 2.5.4 Release Notes
  • Review Board 2.5.3 Release Notes
  • Review Board 2.5.2 Release Notes
  • Review Board 2.5.1.1 Release Notes
  • Review Board 2.5.1 Release Notes
  • Review Board 2.5 Release Notes
  • Review Board 2.5 RC 1 Release Notes
  • Review Board 2.5 Beta 2 Release Notes
  • Review Board 2.5 Beta 1 Release Notes
  • Review Board 2.0.31 Release Notes
  • Review Board 2.0.30 Release Notes
  • Review Board 2.0.29.1 Release Notes
  • Review Board 2.0.29 Release Notes
  • Review Board 2.0.28 Release Notes
  • Review Board 2.0.27 Release Notes
  • Review Board 2.0.26 Release Notes
  • Review Board 2.0.25 Release Notes
  • Review Board 2.0.24 Release Notes
  • Review Board 2.0.23 Release Notes
  • Review Board 2.0.22 Release Notes
  • Review Board 2.0.21 Release Notes
  • Review Board 2.0.20 Release Notes
  • Review Board 2.0.19 Release Notes
  • Review Board 2.0.18 Release Notes
  • Review Board 2.0.17 Release Notes
  • Review Board 2.0.16 Release Notes
  • Review Board 2.0.15 Release Notes
  • Review Board 2.0.14 Release Notes
  • Review Board 2.0.13 Release Notes
  • Review Board 2.0.12 Release Notes
  • Review Board 2.0.11 Release Notes
  • Review Board 2.0.10 Release Notes
  • Review Board 2.0.9 Release Notes
  • Review Board 2.0.8 Release Notes
  • Review Board 2.0.7 Release Notes
  • Review Board 2.0.6 Release Notes
  • Review Board 2.0.5 Release Notes
  • Review Board 2.0.4 Release Notes
  • Review Board 2.0.3 Release Notes
  • Review Board 2.0.2 Release Notes
  • Review Board 2.0.1 Release Notes
  • Review Board 2.0 Release Notes
  • Review Board 2.0 RC 3 Release Notes
  • Review Board 2.0 RC 2 Release Notes
  • Review Board 2.0 RC 1 Release Notes
  • Review Board 2.0 Beta 3 Release Notes
  • Review Board 2.0 Beta 2 Release Notes
  • Review Board 2.0 Beta 1 Release Notes
  • Review Board 1.7.29 Release Notes
  • Review Board 1.7.28 Release Notes
  • Review Board 1.7.27 Release Notes
  • Review Board 1.7.26 Release Notes
  • Review Board 1.7.25 Release Notes
  • Review Board 1.7.24 Release Notes
  • Review Board 1.7.23 Release Notes
  • Review Board 1.7.22 Release Notes
  • Review Board 1.7.21 Release Notes
  • Review Board 1.7.20 Release Notes
  • Review Board 1.7.19 Release Notes
  • Review Board 1.7.18 Release Notes
  • Review Board 1.7.17 Release Notes
  • Review Board 1.7.16 Release Notes
  • Review Board 1.7.15 Release Notes
  • Review Board 1.7.14 Release Notes
  • Review Board 1.7.13 Release Notes
  • Review Board 1.7.12 Release Notes
  • Review Board 1.7.11 Release Notes
  • Review Board 1.7.10 Release Notes
  • Review Board 1.7.9 Release Notes
  • Review Board 1.7.8.1 Release Notes
  • Review Board 1.7.8 Release Notes
  • Review Board 1.7.7.1 Release Notes
  • Review Board 1.7.7 Release Notes
  • Review Board 1.7.6 Release Notes
  • Review Board 1.7.5 Release Notes
  • Review Board 1.7.4 Release Notes
  • Review Board 1.7.3 Release Notes
  • Review Board 1.7.2 Release Notes
  • Review Board 1.7.1 Release Notes
  • Review Board 1.7.0.1 Release Notes
  • Review Board 1.7 Release Notes
  • Review Board 1.7 RC 1 Release Notes
  • Review Board 1.7 Beta 2 Release Notes
  • Review Board 1.7 Beta 1 Release Notes
  • Review Board 1.6.22 Release Notes
  • Review Board 1.6.21 Release Notes
  • Review Board 1.6.20 Release Notes
  • Review Board 1.6.19 Release Notes
  • Review Board 1.6.18 Release Notes
  • Review Board 1.6.17 Release Notes
  • Review Board 1.6.16 Release Notes
  • Review Board 1.6.15 Release Notes
  • Review Board 1.6.14 Release Notes
  • Review Board 1.6.13 Release Notes
  • Review Board 1.6.12 Release Notes
  • Review Board 1.6.11 Release Notes
  • Review Board 1.6.10 Release Notes
  • Review Board 1.6.9 Release Notes
  • Review Board 1.6.8 Release Notes
  • Review Board 1.6.7.1 Release Notes
  • Review Board 1.6.7 Release Notes
  • Review Board 1.6.6 Release Notes
  • Review Board 1.6.5 Release Notes
  • Review Board 1.6.4.1 Release Notes
  • Review Board 1.6.4 Release Notes
  • Review Board 1.6.3 Release Notes
  • Review Board 1.6.2 Release Notes
  • Review Board 1.6.1 Release Notes
  • Review Board 1.6 Release Notes
  • Review Board 1.6 RC 2 Release Notes
  • Review Board 1.6 RC 1 Release Notes
  • Review Board 1.6 Beta 2 Release Notes
  • Review Board 1.6 Beta 1 Release Notes
  • Review Board 1.5.7 Release Notes
  • Review Board 1.5.6 Release Notes
  • Review Board 1.5.5 Release Notes
  • Review Board 1.5.4 Release Notes
  • Review Board 1.5.3 Release Notes
  • Review Board 1.5.2 Release Notes
  • Review Board 1.5.1 Release Notes
  • Review Board 1.5 Release Notes
  • Review Board 1.5 RC 2 Release Notes
  • Review Board 1.5 RC 1 Release Notes
  • Review Board 1.5 Beta 2 Release Notes
  • Review Board 1.5 Beta 1 Release Notes
  • Review Board 1.1 Alpha 2 Release Notes
  • Review Board 1.1 Alpha 1 Release Notes
  • Review Board 1.0.9 Release Notes
  • Review Board 1.0.8 Release Notes
  • Review Board 1.0.7 Release Notes
  • Review Board 1.0.6 Release Notes
  • Review Board 1.0.5.1 Release Notes
  • Review Board 1.0.5 Release Notes
  • Review Board 1.0.4 Release Notes
  • Review Board 1.0.3 Release Notes
  • Review Board 1.0.2 Release Notes
  • Review Board 1.0.1 Release Notes
  • Review Board 1.0 Release Notes
  • Review Board 1.0 RC 3 Release Notes
  • Review Board 1.0 RC 2 Release Notes
  • Review Board 1.0 RC 1 Release Notes
  • Review Board 1.0 Beta 2 Release Notes
  • Review Board 1.0 Beta 1 Release Notes
  • Review Board 1.0 Alpha 4 Release Notes
  • Review Board 1.0 Alpha 3 Release Notes
  • Review Board 1.0 Alpha 2 Release Notes
  • Review Board 1.0 Alpha 1 Release Notes
  • Release Notes
  • Review Board 5.0 Release Notes¶

    Release date: October 4, 2022

    This release contains all bug fixes and features from Review Board version 4.0.11.

    Installation/Upgrade¶

    Review Board 5.0 drops support for Python 2.7. This has been end-of-life since January 2020. The 5.x series will support Python 3.7 through 3.11.

    To install this release, run the following using a compatible version of Python:

    $ sudo pip3 install ReviewBoard==5.0
    

    And then perform an upgrade of your site. See Upgrading Review Board for details.

    Database Changes¶

    Note that this release contains database schema changes to the following tables:

    • oauth2_provider_accesstoken

    • oauth2_provider_application

    • oauth2_provider_grant

    • oauth2_provider_idtoken

    • oauth2_provider_refreshtoken

    • reviewboard_oauth_application

    • scmtools_repository

    • webapi_webapitoken

    This will take a small amount of time to migrate the database. Please test the upgrade on a copy of your database first, to ensure the upgrade is smooth and to time how long the upgrade takes.

    Important

    Do not cancel the upgrade on a production system for any reason. Doing so will corrupt your database, requiring a backup or our repair service (available under a support contract).

    Packaging¶

    • Review Board 5.0 supports Python 3.7 - 3.11.

    • Django 3.2.x is required.

    • Djblets 3.0.x is required.

    • django_evolution 2.2.x is required.

    • django-haystack 3.2.x is required.

    • django-oauth-toolkit 1.6.x is required.

    • Switched Memcached interface from python-memcached to pymemcache.

    • Removed the elasticsearch dependency by default.

      See the release notes below for enabling Elasticsearch support.

    New Features¶

    Single Sign-On with SAML 2.0¶

    Single Sign-On (SSO) is increasingly important in the enterprise world, providing centralized user and application provisioning and much better security.

    Review Board now supports SAML 2.0 for authentication and user provisioning. This allows the use of Auth0, OneLogin, Okta, and many other SSO providers.

    See SAML 2.0 Authentication for more information.

    Detection of Trojan Source Attacks¶

    Trojan Source attacks employ special Unicode characters, such as bi-directional control characters, zero-width spaces, or confusable/homoglyph characters (which have the appearance of other common character) to trick reviewers into approving possibly malicious code.

    These are CVE-2021-42574 and CVE-2021-42694, and affect many tools on the market (code review tools, IDEs, repository browsers, and more).

    Review Board now detects characters that can be used in these attacks, and flags them in the diff viewer. When found, a helpful notice with examples and informative links will be shown at the top of the file, and the lines themselves will be flagged.

    The Unicode characters will be highlighted, replaced with the Unicode codepoint, rendering the attack harmless. Reviewers can click a button to see how the code would have looked.

    This will also be shown when previewing a diff before publishing, in case any new code was copied/pasted from a malicious source.

    Learn more.

    Dashboard Improvements¶

    The Ship It! indicators in the dashboard are now grey if there’s been a new update since the last Ship It! (Bug #2106).

    This makes it easier to see at a glance which changes have been updated since they’ve been approved, helping you to prioritize what you review next.

    Enhanced API Tokens¶

    Since Review Board 2.5, users have been able to create API Tokens through the My Account page for use with RBTools or custom scripts using the Review Board API. These have historically been SHA1-based tokens.

    We’ve revamped API tokens in Review Board 5. They now support:

    • Expiration dates – tokens past an expiration date will no longer work.

    • Invalidation – administrators can mark tokens as invalid and specify the reason.

    • A larger length (255 characters), for security.

    • Tracking the last-used date/time of a token.

    • The ability to be scanned via secret scanning by checking an identifiable prefix (rbp_) and a checksum in the token.

    All legacy tokens will continue to work, but we recommend moving to newer tokens for security.

    The API Tokens management page in My Account has been updated:

    • Tokens can now be copied with one click.

    • The time a token was last used and how long until it expires or how long since it expired is now shown and can be changed.

    • If a token is invalidated, the date and reason why will be shown.

    Users will be notified if they try to use a token that has expired.

    Administrators can invalidate tokens through a new invalidate-api-tokens site management command.

    New Integrations¶

    • Elasticsearch 1.x, 2.x, 5.x, and 7.x

      Previously, due to compatibility issues in the search backend package we use, only Elasticsearch 1.x and 2.x were available. We now support 5.x and 7.x.

      To enable the version you want, you must install the appropriate version of the elasticsearch package. We provide the following convenient packages:

      • 1.x: pip3 install ReviewBoard[elasticsearch1]

      • 2.x: pip3 install ReviewBoard[elasticsearch2]

      • 5.x: pip3 install ReviewBoard[elasticsearch5]

      • 7.x: pip3 install ReviewBoard[elasticsearch7]

      See Elasticsearch Configuration for more information.

    • Matrix

      Matrix is a modern, decentralized chat service. It allows individual servers to be set up and federated, and supports many chat features, including end to end encryption.

      Review Board can now post to Matrix when review requests are posted or updated, or whenever there’s new discussions on the review request.

      See the documentation for configuration instructions.

      Patch by Ruonan Jia.

    Administration Features¶

    • Custom syntax highlighting configuration for diffs.

      The choice of syntax highlighters has traditionally been left up to the decisions made by the Pygments library. In most cases it is correct, but sometimes the wrong lexer would be chosen for certain filenames. This can now be overridden on a case-by-case basis, mapping file extensions to Pygments lexer names. These mappings can be configured in the Diff Viewer settings within the Review Board admin UI.

    • The Install Key field in Administration UI -> Support Settings can now be copied with one click.

      This makes it easier to activate support or get a Power Pack license.

    Performance Improvements¶

    Significant improvements have been made to database query performance for dashboards, search, and in the API.

    This should be especially noticeable on very large servers with many repositories and review groups.

    For best performance, we also recommend installing using Python 3.10.

    Web API¶

    • Added new API for querying all Reviews. This allows making queries of all Reviews across all Review Requests (for example, finding all reviews added by a given user).

      • Root Review List Resource

      Based on work by Taylor Christie.

    • Added new APIs for querying all comments. These allow making queries of all comments across all Review Requests (for example, finding all diff comments added by a given user).

      • Root Diff Comment List Resource

      • Root File Attachment Comment List Resource

      • Root General Comment List Resource

      Based on work by Chaoyu Xiang.

    Extensions¶

    Several of Review Board’s internal APIs have been modernized.

    Extensions can take advantage of the new features in Django 3.2, Djblets 3, and Review Board.

    SCMTools Registry¶

    SCMTools have traditionally been defined using Python entry points, and a management command had to be run to scan the entry points and add a row to the scmtools_tool table in the database.

    We’ve changed this to instead use a registry. Entry points and the Tool model will still work in Review Board 5.0, but this usage is deprecated and will be removed in a future release.

    As part of this, a new extension hook, SCMToolHook has been added. We recommend anybody who has implemented a custom SCMTool change their code to use the new hook instead of entry points.

    JavaScript Async Operations¶

    Most asynchronous operations in the JavaScript APIs have been extended to return promises. The promises can either be used directly, or can be used implicitly through the use of async and await.

    If you develop client-side extensions, you will need to upgrade.

    The callback usage is still available, but has been deprecated and will be removed in a future release.

    Bug Fixes¶

    Review Requests¶

    • Fixed a handful of issues that could occur when a new review request was discarded before being published, but then updated again via RBTools.

    • Fixed switching between “Source” and “Rendered” views when viewing a diff of Markdown-type file attachments.

    User Accounts¶

    • Fixed a crash when a database issue causes multiple user profiles to be created for the same user.

    • Fixed a UI issue when changing API token policies where the wrong policy could be shown if making multiple changes to a policy and then canceling out of the policy editor.

    Breezy¶

    • Fixed potential problems with environment variables when executing brz.

    Extensions¶

    • Corrected the help text that would be displayed if an extension fails to load.

    • Fixed a crash when trying to load extensions from broken Python packages.

    Contributors¶

    • Beth Rennie

    • Chaoyu Xiang

    • Christian Hammond

    • David Trowbridge

    • Gurvir Dehal

    • Jordan Van Den Bruel

    • Kyle McLean

    • Matthew Goodman

    • Michelle Aubin

    • Ruonan Jia

    • Sarah Hoven

    • Taylor Christie

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • Installation/Upgrade
      • Database Changes
      • Packaging
    • New Features
      • Single Sign-On with SAML 2.0
      • Detection of Trojan Source Attacks
      • Dashboard Improvements
      • Enhanced API Tokens
      • New Integrations
      • Administration Features
    • Performance Improvements
    • Web API
    • Extensions
      • SCMTools Registry
      • JavaScript Async Operations
    • Bug Fixes
      • Review Requests
      • User Accounts
      • Breezy
      • Extensions
    • Contributors