Review Board 4.0.5 Release Notes¶
Release date: February 8, 2022
See the rbintegrations 2.0.2 release notes for new features and fixes for CircleCI, Jenkins, and Travis CI.
Packaging¶
Added a dependency on
diffx
>= 1.0, < 2.0.Updated the
ReviewBoard[mysql]
dependency to cap the mysqlclient package at < 1.5 on Python 2.7.Updated the
Djblets
dependency to >= 2.3, < 3.0.Updated the
rbintegrations
dependency to >= 2.0.2, < 3.0.Removed the explicit pinned dependencies for bcrypt and pyparsing on Python 3.
These may still be provided by other dependencies.
New Features¶
Added compatibility with Python 3.10.
There are some issues with third-party dependencies that we’ve been working around. If you hit any new issues with 3.10, please let us know.
Added experimental extension support for defining ACLs when viewing diffs.
Extensions can now implement policies that limit who can view particular diffs, allowing companies to bring over any existing access control policies they may have repositories into Review Board.
This is done by implementing a FileDiffACLHook, which takes a
DiffSet
and a user and returns whether the user has access to the diff.This feature is experimental and subject to changes. You’ll need to enable this feature by setting the following to your
conf/settings_local.py
file:ENABLED_FEATURES = { 'reviews.diff_acls': True, }
This will be enabled by default in 5.0.
See the FileDiffACLHook documentation for usage and an example using p4 protect.
Added experimental support for the DiffX file format.
DiffX is our proposed standard for a modern, backwards-compatible diff format, designed to address many shortcomings and bridge the gap between many of the vendor-specific diff formats that exist.
Review Board now features a built-in parser for DiffX files. For now, this is only used by some in-progress SCM implementations that are still in development. In time, we plan to update all our existing SCMs to support it natively and to use it in RBTools.
This will make it easier to develop deeper integrations between Review Board, RBTools, and in-house scripts.
See the DiffX website for more details.
Extensions¶
Added FileDiffACLHook for defining diff access policies.
Expanded capabilities of diff parsers.
BaseDiffParser
was introduced as a new base class, which allows subclasses full control over the diff parsing mechanics.Subclasses (including
DiffParser
) can now store additional metadata for use in file fetching and the API through theParsedDiff
,ParsedDiffChange
, andParsedDiffFile
classes used to represent parsed diff results.New SCMs are encouraged to generate DiffX files and use
DiffXParser
to parse them.Updated
Repository.get_file()
andRepository.file_exists()
to take newcontext
parameters.These contain a
FileLookupContext
instance, which provide the base commit ID and any metadata parsed from a custom diff parser or a DiffX file.The old
base_commit_id
argument is still provided, but deprecated.Updated
SCMTool.popen()
to take arbitrary keyword arguments to pass tosubprocess.Popen
.
Bug Fixes¶
Compatibility¶
Fixed compatibility with mysqlclient 2.1+ on Python 3.
Fixed issues that could lead to failed upgrades when upgrading from early Review Board 1.7 (or earlier) databases.
You will need to manually upgrade django_evolution to 2.1.3 or higher. We will require this version in Review Board 4.0.6.
Administration¶
The Search Settings page now validates configuration before allowing settings to be saved.
Authentication¶
Fixed issues with TLS support for Active Directory.
When enabling TLS support, Review Board will now always try
ldaps://
URIs instead ofldap://
by default. The default port of 636 will be used as well, unless a port is explicitly provided.If 636 is the port used, TLS will be enabled automatically.
Some additional changes were made to enhance compatibility, including opting into LDAP 3. Please let us know if this impacts your setup in any way.
Reviews¶
Fixed an error rendering Markdown files on Python 3.
Perforce¶
Fixed showing the Change review request field when using Perforce.
Contributors¶
Anahita Mohapatra
Christian Hammond
David Trowbridge
Marcus Boay
Qin Zhang