Jump to >
Review Board 1.0 beta 2 released

A last-minute regression was found in our beta 1 release due to some API changes made in jQuery. We've fixed these issues and released beta 2, which all beta 1 users will need to upgrade to.

We don't anticipate further showstopper regressions in beta 2 (knock on wood), but if there are, please e-mail the mailing list and file a bug and we'll take care of it!

Announcing RBTools 0.2 beta 1

Along with the Review Board 1.0 beta 1 release, we're also announcing a new package called RBTools, which had its first release tonight.

RBTools is the new home of post-review, and will in time contain new useful scripts for use with Review Board. No longer do users have to grab the latest version of post-review from our source trees. We'll be providing formal releases from now on.

To install, simply run the following (as root):

$ easy_install -U RBTools

Along with the new package comes some new features and fixes for post-review. A full summary is provided below:

Bugs Fixed in post-review:
  • The help output for --repository-url and the error output used for when --parent isn't supported was referencing the wrong names for some parameters.
  • Patches generated against a git tree were broken when running post-review inside a subdirectory of the root of the tree. Patch by Luke Lu. (Bug #928)
  • Fixed a parsing error when using diffs generated by Git. Patch by Stacey Sheldon.
  • Removed a duplicate CVSClient class, which added to the file's size and possibly caused some errors. Patch by Lepton Wu.
  • Fixed a deprecation warning when using post-review on Python 2.6. Patch by Eric Huss.
  • Fixed parsing Perforce changesets that include binary files. Patch by Raghu Kaippully. (Bug #585)
New Features in post-review:
  • Added new --guess-summary and --guess-description parameters for Git repositories that provide defaults for both the summary and description based on the commit messages on the branch. Patch by Luke Lu. (Bug #927)
  • post-review can now look up the Review Board server URL from Perforce counters. See the documentation inside post-review or on the website for examples on how to set this up.
Review Board 1.0 beta 1

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.
Feature Improvements:
  • 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.
New Features:
  • 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.
New and Improved Documentation!

Traditionally, our documentation hasn't been as in-depth and fleshed out as our users and ourselves would have wanted. We've used our Wiki to store various small pieces of documentation, and while better than nothing, too many people were still getting stuck.

I'm pleased to announce that we've fully rewritten our documentation and made it available directly on our website. There's a new Users Guide, Administration Guide, FAQ, and the beginnings of Code Base Documentation.

There's still more planned for the documentation. The goal is to prevent it from getting stale, and to update it any time something related updates in Review Board. Over time we'll add more details on various pieces of Review Board, allow users to give feedback on pages, and more.

We've tried to make sure to address everything that the old documentation addressed, but please file a bug if something is missing or confusing.

Participation in Summer of Code 2009

This year, Review Board has been accepted as a mentoring organization in Google's Summer of Code. This will give students an opportunity to contribute to Review Board and to get paid to do so, and it should result in some awesome features added in the next version of Review Board.

Students who would like to participate should look at our ideas page for possible projects and our Summer of Code Information page for some helpful links and details on participating.

We've also decided to continue offering Review Board hosting for projects participating in Summer of Code, even ones that aren't related to Review Board. This can help mentors to review students' code, keep track of what was done, and to introduce students to good code review practices.

If you have project proposals or questions, you can reach us privately or on our reviewboard-gsoc@googlegroups.com mailing list.