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.
We at Review Board are pleased to announce that Clearvision has released the latest version of their UCM4SVN (Unified Change Management for Subversion) product with out-of-the-box support for Review Board. From their press release:
UCM4SVN is a lightweight process layer which sits above the open source configuration management tool Subversion and enables development teams to quickly and easily structure their code and work items.
UCM4SVN removes all of the complication within Subversion associated with branching, merging, release management, permission management, change management integration etc. by providing a single browser based interface.
The new integration with Review Board will allow developers, team leaders and project managers to perform code reviews as part of the natural but managed process instigated by UCM4SVN. The high level steps are as follows;
Via UCM4SVN a team leader assigns development ‘activities’ which either originate from one of the integrated change management tools (IBM Rational ClearQuest, Atlassian Jira, Trac) or as a UCM4SVN created activity;
Via UCM4SVN the developer accepts the activity and UCM4SVN performs a Subversion checkout;
The developer uses their preferred Subversion IDE (Tortoise, Eclipse, command line) etc. to work on the change set or file for the activity and eventually completes the work and performs a final SVN commit;
The developer, via UCM4SVN chooses to perform a ‘Close’ or ‘Deliver’ action and integrate the activity of changes into a common integration branch;
The act of ‘Close’ or ‘Deliver’ automatically creates a ‘Review Board’ request ticket for the team member acting as a reviewer;
The reviewer, via UCM4SVN, can decide to perform a review by selecting the ticket. Such action automatically opens Review Board and from this point Review Board manages the review process and stores all review comments;
The interaction between Review Board and UCM4SVN is most valuable when a reviewer decides to fail a review. Under these circumstances, a UCM4SVN change request is automatically created and assigned to the original code developer to ensure the code changes are implemented;
UCM4SVN manages the entire process to ensure the original activity and the code change requests from Review Board are implemented into the final integration branch.
Through the integration between UCM4SVN and Review Board the reviewer’s comments and requests to improve the quality of code are never forgotten or misplaced, a full audit trail is clearly recorded.
The natural development process managed by UCM4SVN is strong and agile enough for companies of all sizes.
Clearvision initially considered developing their own code review tool however, after researching the market and evaluating a number of similar products, realised the Review Board product was an ideal fit and matched Clearvision’s goal of producing simple but effective applications.
Clearvision would like to give special thanks to all those involved in Review Board.
Clearvision provide Subversion training, subversion consulting, subversion support and a range of subversion products including integrations between ClearQuest, Jira, Trac, Subversion, Git and a variety of migration tools. UCM4SVN will shortly be extended to provide Application lifecycle Management for the open source configuration management product Git.
Tonight we put out a small bug fix release that fixes a few small bugs, including some dashboard rendering issues when adding/removing columns. It also allows support for handling log rotation, so that the web server doesn't have to be restarted in order to resume logging after a log rotate.
We're focusing our efforts now on wrapping up the 1.5 release. Beta 2 will be out soon, and barring any regressions, we likely won't put out any more 1.0.x releases for a while.