Open Source Code Review Tools

by Ostatic Staff - May. 08, 2008

Most developers are at least passingly familiar with the notion of code review - that having source code read over by another developer, or a group, is a good way to catch things that the original author missed. While code review started out as a physical meeting process, there's been increasing interest in supporting distributed code reviews via the web. A recent tool release from Google, Rietveld, brought this back into the news - but there are other tools that are probably a better fit for most organizations.

1. Rietveld

Rietveld starts off with major geek cred because its primary author is Python's Guido van Rossum. The tool is written in Python (of course!) and hosted on Google's own experimental cloud-computing framework AppEngine. Anyone with a Google account can participate; after logging in you can identify Subversion repositories and branches containing code that needs to be reviewed, upload changed source code files, and invite reviewers. Reviewers can see an online diff and leave their own comments, and the system uses email notifications to keep the discussion moving along.

Rietveld is right now a bare-bones implementation, though it's already being used by a number of Python projects. If you main interest is in finding the best tool to use for code reviews, though, there are at least three other web-based open source code review tools that you ought to evaluate before committing to Rietveld.

2. Review Board

Review Board comes from some developers at VMware. It's a Django-based tool that you install on your own server, with a workflow very similar to that of Rietveld. One nice thing it offers is syntax color-coding in the diffs; this makes Review Board diffs much easier to read that Rietveld ones. It also implements Lucene-based search to help in managing large groups of diffs.

3. CodeStriker

Codestriker is a perl-based tool that, like the other alternatives here, you install on your own server. It supports a wider variety of diff types out of the box than the others, including built-in integration with CVS, Subversion, Clearcase, Perforce, Visual SourceSafe and Bugzilla.

4. JCR

JCR (which stands for Java Code Reviewer) is another Python-based tool. Unlike the others, it does not integrate directly with source code management systems; it's designed to have whole files available for review. JCR emphasizes a more formal process, with tracking of who did what and a review meeting to take action on code comments.

For a large-scale, formal development organization, I'd look at JCR first. Web-based and open-source projects may find Review Board or Codestriker to be a better fit. While Rietveld is worth watching, and has certainly helped make many more developers think seriously about code reviews simply due to Google's reach, it's going to have to work hard to catch up in features to the pre-existing projects.