With the release of
Rietveld, another tool for those interested in doing web-based code
reviews is now available. We looked at Review Board back in
January. It was inspired by an internal Google tool, written by Python
creator and Google employee Guido van Rossum, called Mondrian.
That tool in turn spawned Rietveld.
The feature sets of Rietveld and Review Board are strikingly similar, which
is not surprising as
they both used Mondrian as a model. van Rossum originally wanted to turn
Mondrian into a free software project, but it was too tied to "proprietary
Google infrastructure", so he started over, with Rietveld as the result.
Both tools are implemented in Python using the Django framework, but one
major difference is that Rietveld is written to use Google App Engine.
There are multiple ways to get a set of patches into the Rietveld system to
create an "issue"—the term used for a patch set undergoing
review—from an upload of a unified diff to using a python script to
retrieve the patches from a repository. Currently Rietveld only
supports Subversion, but van Rossum would like to see support added for
other version control systems over time. Review Board has a bit of a head
start in this area, so it supports Mercurial, Git, Bazaar, Perforce, Subversion and CVS.
Once an issue has been created in the system, reviewers can then be invited
to comment on the changes. Navigating through the diff is straightforward,
application" feel to the interface. Double-clicking on a line brings up a
comment box that a reviewer can fill in to attach some comments to that
line. All comments are held as "drafts" until the reviewer is satisfied
with their review at which point they "publish" the comments for the author
and other reviewers to see.
The Rietveld project is
free software, released under the Apache 2.0 license, while the application
itself runs via the Google App
Engine. Anyone can browse the system, but folks who have a Google
account can add issues, comments, and conduct reviews using the tool.
Because it uses App Engine, people wanting to try it out on their
code need not find a server to install and run the application—as
would be required with Review Board—they can just upload a set of
patches, invite some reviewers, and proceed.
This kind of simplified deployment is one of the benefits that Google App
Engine is meant to provide. For free software projects, where code review is
purposely done in the open, Rietveld provides a way to quickly try the
application out. Those who wish to keep their source code secret may want
to install their own instance of Review Board or another tool. It may be possible to
install Rietveld in a different environment by replacing the App
Engine-specific pieces, but that clearly is not where it is targeted.
While Rietveld does not provide much in the way of additional
functionality from Review Board—in fact it lags Review Board in some
areas—it does provide a very nice introduction to the Google App
Engine interface. Developers will undoubtedly be using the code as a
template for their own ideas once Google makes more App Engine accounts
available. Given the shared history, language, and framework, it isn't
impossible to imagine that Review Board and Rietveld might join forces one
day. Even if they don't, some cross-pollination is inevitable which will
result in both getting better. Hopefully, with more projects using one or
both, better code for the community is the result.
to post comments)