Review Board 4.0.5 introduces new experimental features for defining custom ACLs for diffs, integrating with our proposed DiffX file format, and eases installation on Python 2.7 and 3.10.
Diff ACLs
Through the new FileDiffACLHook, extensions can check whether a user is allowed to see the contents of particular files before a diff is rendered.
You can connect this to in-house access control lists you've already defined, such as Perforce's p4 protect
(there's an example for this in the documentation).
Right now, Diff ACLs are experimental, and must be specifically enabled on your server. We're excited to find out how you might use this feature, and will be making it standard in Review Board 5.
DiffX
Surprisingly, there isn't much in common between most diff formats. Every source code management solution has had to invent its own variation of the format, and with this comes problems.
We've been working on addressing this through a proposed standard format called DiffX. This introduces standard parsing rules, multi-commit diffs, custom metadata, and is backwards-compatible with existing diffs
Review Board now includes built-in DiffX support. Right now, this is opt-in, but we'll be using it with some upcoming SCMs solutions we're integrating with. In the future, we plan to make DiffX available universally.
Compatibility Improvements
We've fixed a handful of issues with installing, upgrading, and using Review Board:
-
Some Python 2.7 dependencies have been tweaked to ease installation without running into dependency issues.
-
Python 3.10 support has been added. We're having to work around issues in third-party modules we depend on, so let us know if you hit any issues.
-
Newer versions of mysqlclient on Python 3 are now supported. No need to downgrade.
-
Fixed issues that could trigger failed upgrades from very old Review Board databases (you will need to manually upgrade django_evolution to 2.1.3 or higher).
-
Fixed a Markdown rendering issue on Python 3.
Plus...
- Improved TLS support in Active directory.
- Fixed displaying the Change field on review requests.
- Internal preparations for Review Board 5, coming soon!
We're aiming to get Review Board 5 in beta form in the next couple of months. This will largely be an architectural upgrade, switching us to Django 3.2 LTS and Python 3.7+. We'll have an announcement when this is ready to test.
In the meantime, see the release notes for the full list of changes in Review Board 4.0.5.