Review Board 6.0 Beta 1 Release Notes¶
Release date: April 4, 2023
This release contains all bug fixes and features from Review Board version 5.0.4.
Review Board 6.0 Beta 1 is compatible with Python 3.7 - 3.11.
Follow our installation guide to prepare your system for Review Board to to upgrade your existing install.
To install this release, run:
$ pip3 install \ -f https://downloads.reviewboard.org/betas/reviewboard/6.0-beta-1/ \ --pre -U ReviewBoard
We do not recommend upgrading a production server with this version of Review Board. It’s best to install on a test server, with a copy of your production database, in case there are any major problems.
To learn more, see:
For assistance with your server, talk to us about support.
This release contains database schema changes to the following tables:
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.
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.
Review Board 6.0 beta 1 supports Python 3.7 - 3.11. Due to Python’s end of life schedule, it’s likely that 6.0 final will be 3.8 - 3.11.
Djblets 4.0 beta 1 is required.
Grouped Draft Publishing¶
When you have multiple drafts in progress (for example, a review request update and a handful of replies to reviews), you can now publish all drafts at once, with a single e-mail notification.
Changed Close > Submitted to Close > Completed.
The word “submitted” throughout the Review Board UI was a holdover from the very earliest days of the tool, and we had followed the Perforce naming convention for when changes were pushed to a central repository. This has long been a source of confusion, so we’ve renamed this state to “completed”.
The API still uses
submittedfor the review request state in order to maintain compatibility.
The default dashboard view has been changed to “Overview”.
Review Board 4.0 introduced the “Overview” view to the dashboard, which effectively combines the incoming and outgoing views together (showing both things which are assigned to you as well as your own changes). This is now the default view when opening the dashboard.
We’ve continued to make progress on improving Review Board’s compatibility with accessibility features in browsers, enabling better support for screen readers, alternative input devices, and more.
Closing or changing the archive/mute state of multiple review requests using the checkboxes on the dashboard now performs everything in a single step instead of making separate API requests for each item. This can speed up batch operations from the dashboard significantly.
Fixed a small visual glitch when hovering over the edit icon for review request descriptions.
When a review request is open in multiple browser tabs/windows, if the review is discarded from one tab, attempts to create or edit comments from another tab will result in errors.
This bug was technically present in earlier versions, but due to the way things are loaded from the server, it’s now a lot easier to hit.
The best way to avoid this for now is to avoid opening the same review request in multiple browser tabs.
Extensions and Internal API Changes¶
Several of Review Board’s internal APIs have been modernized.
Review Board’s extension framework has had a concept of actions for a long time, but the implementation was spread out among several different systems with varying levels of functionality. These have all been replaced with a new generic framework.
Extensions can define their own actions to attach to various hook points on the page (for example, the header, the review request, or the review banner).
Python Type Hints¶
TypeScript and ES Modules Support¶
rollup.js to handle modules. These can also be used for your extensions, with
.ts file extension and standard
ES6 Classes with Backbone¶
RB.BaseResource), you can continue using them as-is, but as we
work on porting the code over, you will be able to inherit from them as ES6
classes using the