We had the opportunity this year to participate in the Google Summer of Code, a program that pays college/university students to work on open source projects for the Summer. While we've mentored students in the past for other projects, this was our first year as an actual organization accepted into the program. And we can't wait for next year.
We had three students this year, Eduardo Felipe Castegnaro, Helder Ribeiro, and Markus Knittig. They worked on several awesome features, many of which are making it soon into the upcoming Review Board 1.1 development releases.
Eduardo Felipe Castegnaro
Eduardo worked on three main features: Improved whitespace detection/handling in the diff viewer, move detection, and policy support.
The new whitespace detection/handling feature gives reviewers the ability to dynamically show or hide lines that contain only whitespace changes. If a diff contains many lines that have, say, trailing whitespace removed, those lines can be hidden in order to simplify the review process. This feature is in today for the upcoming 1.1 alpha 1 release.
The move detection shows when a block of code in a diff has moved within the file, instead of just showing adds/deletes. Indicators beside the code show that the lines have moved, where they moved to or from, and, when clicked, will jump to the original or new location. This feature is scheduled for the 1.1 alpha 2 release.
The Policy support change is designed to give organizations more control over the rules governing their review process. It will be used in a future release to allow these organizations to enforce, for example, that a change can only be submitted if three senior people sign off on the change. There's still much that needs to be done for this work, and it won't be making it into the 1.1 release, but it's tremendous progress for this much-awaited feature.
Helder worked on support for Web Hooks and some infrastructure changes needed to support it.
Web Hooks allow organizations to set up scripts outside of Review Board that will be notified when a review request has been published or updated and when a review or reply has been posted. These could be used to, for example, update the bug reports associated with the review request, providing a link to the review request. Web Hooks are scheduled for the 1.1 release.
Much of Helder's work has been to get our code set up in such a way where both the Web Hooks and existing e-mail support can be based on the same signals. It's also done so that more notification mechanisms can be added in the future, which wasn't really easy and clean before. Helder also worked on various other little fixes throughout the code.
Markus worked on Eclipse integration for Review Board. This support will make it possible to manage review requests directly from within Eclipse. This work is a bit separate from the main Review Board codebase, and will be continuing on his eReviewBoard repository on GitHub.
This year was great, and we're certainly looking forward to participating again next year. Over the course of the Summer, we've learned what works, and what doesn't, and will be taking this knowledge into our next year in order to refine our processes and make the Summer of Code a great experience for everyone involved.
We'd like to publicly thank all of our students for working with us this year and producing such awesome work. We've sent special Review Board Summer of Code 2009 t-shirts to everyone involved, and hope they'll all continue to work with us on the project in the future.