RBTools 0.3.1 is out the door, with an important crash fix for users running Review Board versions older than 1.5.2, and a brand new feature sure to make administrators a bit happier.
Starting in 0.3.1, .reviewboardrc has gained a new configuration option, REPOSITORY. This can be used to override what repository information is sent to the Review Board server when creating a new review request. You can give it a different path, or, with the upcoming Review Board 1.5.3, you can give it the name of the repository (the same name you'd see for it in the New Review Request page).
This is particularly useful when repositories are SSH-backed and include a username. If you have more than two possible paths to a repository, you can choose the one to send to the server with this setting. Your upstream repository you want to use may be svn+ssh://email@example.com/var/lib/svn, but your users may be using their own usernames instead of "bob." In these cases, you can set something like the following in your project's .reviewboardrc:
Tonight we released RBTools 0.3, the latest and greatest update since 0.2. RBTools, aka "That thing post-review lives in," supports the new API in Review Board 1.5.x and contains fixes and enhancements for CVS, Subversion, ClearCase, Mercurial, Perforce, and more.
The are so many improvements in this release, but two big highlights I'd like to point out are the support for the new Review Board 1.5.x API, and the addition of Plastic SCM support.
Review Board 1.5.x's new API is extensive, and we're working to make RBTools take advantage of it. To start with, we've updated post-review to make use of it, which is important because the old API is going away in the upcoming Review Board 1.6 release. The plan is to introduce new scripts alongside post-review that call into the new API, replicating nearly all of the web UI's functionality from the command line. At the same time, we'll have a Python API that developers can use to talk to Review Board. All this will happen for the RBTools 1.0 release.
As I mentioned, we received Plastic SCM support by way of Dick Porter, one of the Plastic SCM developers. This is a new cross-platform DVCS provided by Codice Software, with professional and community editions. It's meant to work with the Plastic SCM support going into Review Board 1.6. If you're using Plastic SCM, you should be able to start using Review Board and Plastic SCM together soon.
There was also a big push for improvements to ClearCase, Mercurial, and Perforce. I'd like to thank Jan Koprowski for the ClearCase work, Dan Buch for Mercurial, and Ben Hollis for Perforce. And of course, there were many other contributors with critical bug fixes and enhancements in this release.
For the full list of changes and contributors, see the release notes.
Please note: If you're using Review Board 1.5.x and after upgrading to RBTools 0.3 you can't log in, you may have an incompatible WSGI configuration. Please see the FAQ entry on fixing this.
Happy New Year, everyone! Hopefully everyone's had a good holiday and start of the new year. We've been hard at work through the holidays on many improvements to Review Board, and tonight have released 1.5.2.
Review Board 1.5.2 is a fairly substantial and critical feature and bug fix release. It fixes many of the problems developers have encountered with the new API we introduced in 1.5, particularly with authentication. Developers working with our API should consider the 1.5.2 release to be the minimum requirement from here on out.
If you're using WSGI, it's very important that you read the release notes for updating your configuration, or you'll hit problems with the API in the future.
Administrators trying to set up SSH-backed repositories, particularly private GitHub repositories (both standard and GitHub Organizations) should now have a much easier time getting going. We've introduced SSH key management to make it easy to generate new SSH keys, upload existing ones, or view the public key for an existing key. Review Board will be able to use the configured SSH key to access SSH-backed repositories without having to change the home directory for the web server's user.
There are many other fixes in this release. I've only mentioned a couple of them. See the release notes for everything else in this release.
Starting in September of this year, we've been participating in UCOSP (Undergraduate Capstone Open Source Projects), a wonderful program similar to Google's Summer of Code where students at various universities in Canada participate in open source projects for school credit for four months.
This term, we had six fantastic students working on a variety of exciting projects, many of which are landing in the upcoming 1.6 release. They just wrapped up with some screencasts demoing all the work they've done. I'd like to introduce these students and share these screencasts. In no particular order...
Kevin worked on a variety of usability enhancements to the web UI:
Entering an invalid user or group in the reviewer list now presents a temporary inline error message telling you that the user/group wasn't found. It was easy before to typo a name and not realize you've done that right away, and this should solve that problem.
Old reviews are now collapsed, shortening long review request pages. The way this works is that any reviews that you have already seen that predate the most recent update to the review request will be collapsed, unless that review has had a reply since you last visited the page. Any collapsed review can be expanded to see the full discussion.
A new one-click "Ship It!" button was added next to the "Review" button that makes it dead simple to post a review that approves the change. This is great when you don't have any comments, as it speeds up giving approval on the review request.
The user page has been vastly improved. Currently, when viewing the page for a user, we only show the outgoing review requests, but with Kevin's new change, we now show some information about the user, as well as their Gravatar.
When hovering over a username (both the the review request's submitter name or the author of a review), a little info bubble pops up with some information on the user. This is a mini version of the user page, and is extremely useful information to have on hand.
Wow, that's a lot of nice additions. In his own words:
Lianne's project was to take the existing code for Webhook support written during Google Summer of Code two years ago and package it into an extension. This was originally developed as a piece of Review Board, but we decided it would be better off as an optional extension. Lianne's project was a good test of our extension framework, and gets us a huge step closer to making Webhooks available for everyone. Of course, because it's an extension, it requires the experimental extensions branch, which we'd like to focus on after 1.6.
For those not familiar with Webhooks, they're a mechanism that sites can use to notify other sites or scripts when some event has taken place, using HTTP POST requests to one or more URLs. For example, posting a new review request could post an update on some internal dashboard, or on Twitter, or to CIA. This should be a useful feature for many admins and projects out there.
Awesome, isn't it? I'm personally looking forward to using this in our project's own Review Board install.
Lindsey Sawatzky and Brendan Curran-Johnson
Lindsey and Brendan worked together on a joint project to provide a full-fledged Python client API for Review Board. Today, any clients out there have to hand-roll their own support for our APIs, including our own post-review script. By providing an actual API, third parties, and ourselves, will be able to do more integration with Review Board.
Along with the new API, they also developed several new utility scripts for working with review requests. These will serve as a replacement for post-review, eventually. For example, they have scripts to open review requests, close them, create and update, upload screenshots, apply patches to the working tree, and more.
The scripts work like git commands, for those familiar with them. There's a main "rb" script, and the first parameter to it is the actual command to use. These can even be custom ones in your path, making it easy to create scripts that naturally fit in with our own collection of scripts.
We'll be getting this into a future release of RBTools, and migrate post-review over to using it. Should make your custom hook scripts and other points of integration way easier to write!
Laila had two projects this term. The first will put a smile on any Windows Review Board administrator's face. She has written a full Windows installer for Review Board, making it easy to get up and running face with minimal fuss. It handles the installation of the various bindings for databases, code repositories, and more. I'm hoping we can make this official in our 1.6 release.
Her second project was file upload support. With her change, you can upload any type of file into Review Board, download the files, and comment on them. It's a much requested feature. Developers could upload artwork associated with the change to open source projects, or log files for unit tests, or whatever.
I know some companies have been asking for this for quite a while, so we'll work to get this into 1.6.
Hongbin worked on another often-requested feature: the ability to update bug trackers when a review request is created. This is an extension that works with Google Code and Bugzilla (with some optional Bugzilla plugins installed) and can update any associated bugs when a new review request is created or when a review request has been updated to point to a bug.
Again, since it's an extension, people will have to wait for the extensions branch to land, but hopefully that'll only be in another release or two. I expect bug tracker integration to be one of the top downloaded extensions then.
I want to thank all our students for their hard work this term. You've all done excellently and I'm thrilled that so much has been accomplished this term.
Special thanks to Mike Conley. Mike was a student in the last Google Summer of Code, and took on most of the mentorship and coordination in UCOSP on behalf of Review Board this term. I don't know how we would have ever done it without you, Mike!
And of course, thanks to Karen Reid, Andrew Louis, and everybody else at UCOSP! We loved participating this term, and greatly look forward to next term!
Review Board 1.5.1 has been released. It's a small bug fix release that fixes a few small problems, including lighttpd installation, serialization problems with the API's XML output, breakages with SCons files, and better error reporting for Git repositories with incorrect permissions, to name a few.
It's a pretty small, safe release with no real emergency fixes, but it's worth an upgrade, particularly if you're affected by one of the problems.
Review Board has been in development for almost four years now, and in that time we've seen a lot of growth in the project, and have brainstormed exciting directions to take it.
To that end, we're proud to announce Beanbag, Inc. We formed Beanbag to maintain Review Board and to better help fund it in the future by developing services and software around it.
We're starting small. Beanbag is owned and operated solely by David Trowbridge and myself (Christian Hammond), and will remain that way for the foreseeable future. Long term, we're hoping we can start doing even more with Review Board to help address developers' needs.
As for Review Board itself, nothing is changing with the goals or the way it's run. Our own personal copyright on the project is transitioning to the new company. Otherwise, the project is staying the same. It will still be open source under the MIT license. We will still do active development on it. It's the same project you (hopefully) love, with the same people running it.
Our first big Beanbag project is our upcoming Review Board hosting service for small businesses, RBCommons. We will be providing shared and private hosting for organizations and businesses for a reasonable monthly fee. We'll take care of installation, upgrades, and maintenance. If you're interested in this, you can sign up on the RBCommons site to be notified, and we'll let you know as soon as we begin alpha testing.
At long last, after just over a year of development, we present to you for your consideration... Review Board 1.5!
Review Board 1.5 is a major release with many new features for users, administrators, and third party developers. We have improved usability, improved error feedback and logging, and made it easier to review changes.
Users will see notification bubbles when a review request is updated and improved e-mails with fragments of diffs and screenshots. They'll see when code blocks have moved in the diff viewer, see which class or function a block of code is in, and better control how they see whitespace. Comment regions are more clear in the diff viewer. Reviewing on an iPhone and iPad now works. Screenshots can be uploaded by dragging them from the file manager into the page. Auto-complete matches first and last names, and group names.
Administrators can more easily create and manage repositories and bug trackers on various services. They can decide which ones are shown and which are not. They can view and filter the Review Board log file when diagnosing problems. Offload uploaded data to Amazon S3. Write custom management commands for administering Review Board.
Remote Git repositories are now possible. Repositories over HTTPS or SSH can be added and accessed without complex workarounds.
Third party developers have a much more powerful, flexible, and manageable API for integrating Review Board into their applications and services. They can do most of what Review Board's own web UI can do. They can even implement custom diff viewers if needed.
This is just part of the feature set of Review Board 1.5. See the full release notes for all the great things in this release.
At this point, all of our work will focus on 1.5 and the upcoming 1.6. The goal is to keep the 1.6 release shorter with a smaller feature set. We likely won't be releasing any 1.0.x releases unless major security problems are found.
If you are using Review Board 1.0.x, performing an upgrade will automatically install 1.5. You can upgrade by typing:
$ easy_install -U ReviewBoard
If you want to stay on the 1.0.x branch, you need make sure you upgrade to the exact version you want by specifying it during package installation. For example:
$ easy_install -U ReviewBoard==1.0.9
Thanks to everyone who helped make this release possible! That includes all those who have helped spread Review Board in your organization. If you use Review Board and would like to come celebrate with us, please let us know through this simple form.
We can see the end of the tunnel, and it's bright and full of marshmallows!
Tonight we released Review Board 1.5 RC 2, the (hopefully) final RC release before 1.5 goes live. After our testing with RC 1, we're pretty confident we're at a good point to ship the final release soon. How soon? Why, next week, if all goes well. But you didn't hear it from me.
1.5 RC 2 fixes some remaining compatibility problems and usability problems found in RC 1. It smooths out the new API quite a bit as well.
Some of the key highlights include:
Python 2.7 packages
Compatibility with PyLucene 3.x
Support for review requests without a diff (for reviewing screenshots)
Improvements to screenshot drag-and-drop to make the experience a bit more reliable
Some various authentication fixes for NIS, LDAP and Active Directory.
If you are at all planning to use Review Board 1.5, please upgrade to RC 2 and let us know if there are any major regressions. At this point, the goal is to release very soon, with any non-showstopper bugs being targetted for 1.5.1.
We always like to hear from our users, so drop us a line if you're using it, and with your permission, we'll add you to our Happy Users list.
We're planning a release party in the Silicon Valley, California area for some time in October. Details are still being worked out, but if you live in the area and would love to join us and some fellow users for dinner and drinks, contact us on the mailing list with your general availability (preference for week day vs. weekend, when you could tentatively make it) and we'll let you know when the plans are set.
Why, hello everyone. I hope everyone had a great 4th of July, whether it was a holiday or just any ol' Sunday. The 4th is now over, and I had hoped to get this ready before the day was up, but well, the 5th will do nicely.
I have two presents for you. Two fresh, new, shiny Review Board releases.
Review Board 1.0.9 is simple release that fixes a few random bugs (UTF-8 fixes for syntax highlighting, Subversion keyword collapsing problems, linkified text for bug numbers and paths, and the Starred Groups page), as well as switching the default memcached Python module to python-memcache. This new memcached release is more up-to-date, and is now installed by default along with Review Board. If you're upgrading Review Board, you shouldn't have to do anything.
Review Board 1.5 RC 1 is a much bigger release, and is hopefully the last release before the final 1.5. This release contains all the changes and fixes in 1.0.9, but also introduces many new enhancements and fixes.
The main enhancements include improved move detection, WSGI installation, and support for using the main web UI on the iPhone and iPad. It also improves the new web API by allowing callers to retrieve basic information on the active session, filtering review requests by date/time, and downloading patches or parsed diff opcodes.
At this point, we want to get the final 1.5 out the door ASAP. Much of our time will be spent on documentation updates and fixing any critical bugs that pop up. If you're planning to upgrade to 1.5 soon, it may be worth upgrading a copy of your installation to RC 1 soon to make sure you won't hit any show-stopping bugs. We'll be limiting the bugs we fix for 1.5, pushing things out to 1.5.x unless they're major regressions.
After several months of hard work, we finally cut a release of Review Board 1.5 beta 2! This is a much more stable beta than 1.5 beta 1, and includes some new usability improvements, new features, many bug fixes, and a new public API.
One of the nicer improvements in this release include the new diff viewer comment flags, which span the range of lines that the comment was made on instead of only pointing to the first line in the range. This is much nicer looking and much more usable. They also no longer overlap the line numbers, so it's easier to see what line is being commented on.
The largest change in this version is the new REST API. We've had a public API for a long time that worked on a resource model, allowing third party applications to interface with Review Board, but it was hard to maintain and had many warts. The new API is actually a RESTful API, meaning that it's fully resource-based, uses standard HTTP methods and HTTP response codes, is largely self-documenting, and every resource links to related or child resources.
There isn't any documentation yet for this, but we'll be working on some before the final 1.5 release. We'd like to encourage developers using the existing API to begin supporting the new one. You can start browsing the resource tree by pointing your browser to your site's /api/ path. If you're using Firefox, you can use the fantastic JSONView extension to better browse the tree.
Many things were fixed in this release and I'd like to thank everyone for providing feedback, reporting bugs, and submitting patches.
Going forward, we may have a third beta in order to finalize some of our API code and fix most of the remaining bugs, and then we'll try to crank out the release candidate and then final release as soon as we can.