For many months now, we've been hard at work on a new, major release of Review Board: Version 2.5. Finally, we're ready to share the first beta so you can <s>break it</s> play with it!

There's so much in here that I can't cover it all, so I've chosen a few of my favorite additions to talk about.

  • Expandable diffs in reviews

    When reading through a reviewer's comments on your code, sometimes it's just not clear what they're commenting on until you open the diff viewer. We've fixed that. Now, simply hover over the diff, and the familiar controls for expanding the diff will appear. You can now see more of the diff without switching pages.

  • Replace old file attachments and view their diffs

    File attachments on a review request can now be replaced with a new version of the file. You won't have to delete the old ones anymore.

    We also keep a history of each revision of the file, and allow you to see a diff between them. This works for both text files and images.

  • Image diffs for file attachments

    As I just pointed out, you can now view diffs between images uploaded to a review request. We have multiple ways available to see what changed in an image. Very handy for new artwork for a product.

  • Improved Review Dialog

    The Review Dialog is now instant-apply, meaning that when you make changes to a comment, you don't have to click Save to send those changes to the server. This is a life-saver when you're working on a large review and your computer crashes.

    It also now shows you how your Markdown text will look, so it's not a surprise when you publish your review.

  • Better bug tracker integration

    If you use JIRA, GitHub, or modern versions of Bugzilla for your bug tracking, we'll now show you the bug summary, status, and description when hovering over the bug number. You may need to reconfigure your repositories to enable this.

    This is the beginning of some deeper integration we have planned for bug tracking. Future releases will expand on this even further.

  • Webhooks

    Administrators can set up webhooks to notify other services when something interesting happens on Review Board. This currently includes publishing, closing, or reopening review requests, publishing reviews, and replying to reviews.

    Webhooks can be tied to review requests on specific repositories, or they can cover all repositories, or cover review requests not associated with repositories.

    A webhook will send a JSON payload similar to that of an API respons. If you have a service you're integrating with, and need a specific format for the payload, you can use a built-in templating language to structure your payload however you like.

  • API Tokens

    Scripts or services that talk to Review Board no longer need your username and password to use the API. Instead, you can now create multiple API tokens for this purpose. API tokens are a secure way of authenticating with the web API without needing your credentials, and they can be revoked at any time.

    Scripts or services using API tokens can also be restricted to performing specific operations on specific parts of the API, letting you keep things nice and secure.

  • Performance improvements for RBTools and the web UI

    Our API now allows clients to request only the data they need when making API calls. The result is that both RBTools (0.7 and higher) and the web UI are now much more efficient when communicating with Review Board.

  • Smaller database sizes

    We've changed how we're storing diffs, and the end result is a substantial reduction in our database storage needs (as much as 80%, from our tests). If you re-run condensediffs, or when viewing older diffs, we'll squash down those older diffs into a much smaller, more tightly-packed version. In the long-run, this means faster upgrades and backups.

There's quite a lot more in this release. Check out the release notes for the complete list of changes in beta 1.

To install this release, run:

$ sudo easy_install \
    -f \
    -U ReviewBoard

We don't recommend using this release for production purposes just yet, or against a production database, but please try it out and let us know how it works for you!