We've just taken one big step toward our 1.0 tonight with the release of Review Board 1.0 beta 1. This is an important release, and introduces new features, many performance enhancements, and a whole lot of bug fixes.
Two of the big highlights include the ability to disable user registration and some major performance enhancements.
The review request page now handles large numbers of reviews and comments in a much more elegant way. Previously, we'd fetch a diff fragment per comment from the server, which mean that if there were 100 comments, we'd fetch 100 diff fragments, slowing down loading. Now, we're only performing one fetch per reviewed file, no matter how many comments are on that file.
The other major improvement is in the diff viewer. Some deep profiling work was done on the comment and diff loading code in the diff viewer, and we've managed to speed things up significantly. In one of our tests, a large file with only 15 comments would take over 1 second of browser time to load and place comments on the diff. With the new improvements, that has dropped to about 150 milliseconds.
A full summary of the changes are below:
Bugs Fixed:- Fixed index errors shown during some interdiffs and empty diffs. (Bug #892)
- Interdiffs would break when one revision had a newly added file. (Bug #847)
- Interdiffs no longer pre-load all files on a page before showing anything. They now load each file independently, like normal diffs.
- We no longer display the "Download Diff" button on interdiffs. (Bug #873)
- Clicking the "ghost" comment flag in the diff viewer wasn't triggering a comment dialog for that line.
- We now correctly parse Git diffs that don't include "a/" and "b/" prefixes in the filenames. Patch by Andrey Fedorov. (Bug #883)
- We now forward on the Perforce Empty Changeset error, instead of returning an Internal Server Error.
- Fixed some problems with Perforce errors on newer versions of the P4 API, and fixed some issues where we were sometimes stripping valuable data from an error message. (Bug #710)
- Fixed an Internal Server Error when showing the review dialog with a comment made on a screenshot with no caption.
- The "Ship It" label in the review dialog is now associated with the checkbox, meaning the label can be clicked to check/uncheck "Ship It." (Bug #922)
- For LDAP backends, we now log on as an anonymous user before searching for the real user to log in as. This fixes some breakages with people encountered. Patch by Alexey Morozov.
- Changed the default LDAP scope to SUBTREE, in order to fix authentication on some LDAP servers. (Bug #959)
- We now use the review request's draft summary, if set, on the screenshot detail page. (Bug #981)
- HTML tags are no longer interpreted in the Description and Testing Done fields. (Bug #894)
- The "branch" field in change descriptions no longer escape entities (such as arrows). (Bug #898)
- Fixed some XHTML validation errors in the dashboard. Patch by Onkar Shinde. (Bug #932)
- We no longer require logging in for read-only API calls, if anonymous access is enabled on the site. (Bug #767)
- Fixed some small breakages with Django 1.1.
- Added a faster, more scalable version of diff fragment loading. We used to make a call to the server for each comment shown in a review, which became very slow on large reviews. We now only make one call per file, regardless of how many comments are made against that file. This speeds up load times of the review page considerably. (Bug #906)
- Greatly improved performance in the diff viewer. Loading comments and placing them in the diff viewer wasn't nearly as fast as it could have been. Due to these new improvements, a sample diff with 15 comments that used to take over 1 second now takes ~150ms to load. Other improvements have also been made, and should make a noticeable difference in large deployments.
- Improved accessibility for inline editors on the review request page. The "edit" icons can now be activated using the Enter key. Patch by Brad Taylor. (Bug #965)
- Added a new icon for the "My Comments" column in the dashboard that's used when you've specifically posted a review marked "Ship It." (Bug #909)
- Change descriptions are now a lot more readable for the Description and Testing Done fields. (Bug #913)
- Added a dependency on Pygments, in order to install it by default.
- Added support for disabling user registration. This provides a checkbox in the General Settings page for disabling user registration. This only takes effect when using standard authentication, and will hide the "Register" link and redirect requests made to /account/register/ to the /account/login/ page instead.
- Added new administration, user documentation, and a FAQ. This is available on http://www.review-board.org/docs/, and is also available in the reviewboard/docs/ directory.