Groogle: A sensible source code review tool

By

IT departments are pretty familiar with tradeoffs. You can buy a comprehensive package to meet almost any need, but the cost might be prohibitive. Sometimes you can get something that does most of what you want, but forces you to change your work routines. But the beauty of open source software is that you can modify any given applications to suit your exact needs.

When Graham Pitt found that existing open source code review tools didn’t match his organization’s work flow well, or didn’t enforce it, he began working on his own web-based code review tool. Groogle makes reviewing code fast and effective because it only does the things his team wants and needs, and it doesn’t cost thousands of dollars per seat.

Groogle is particularly effective for reviewing code held in a Subversion revision control system. It has tight Subversion server integration, is language-agnostic, and focuses on usability and supporting workflows rather than changing workflows to support the code review tool. It can also help enforce an agreed-upon workflow. The workflow that Groogle imposes can be customized by modifying a database, and administrators can define new workflows by defining new review types. “This customization will be made accessible from the front end in future releases,” Pitt says.

Groogle has a more limited scope than comparable commercial tools in terms of the variety of source control systems it supports. Although it is extensible, it only supports either Subversion servers or file uploads of archives in tar, gzip, bzip2, or zip format. It is designed to review code changes where changes are held on separate branches. It doesn’t review non-text documents like many commercial review tools.

Groogle includes support for integration with many authentication mechanisms, including Active Directory. It also provides syntax highlighting for more than 100 different languages.

Groogle is written in PHP, JavaScript, and XSL, and leverages open source GPL projects such as Doctrine for database object relational mapping (ORM), PHP File Tree for tree support, jQuery, Geshi for code highlighting, libGD, Pear::Auth, Pear::Log, Pear::Text_Diff, Pear::File_Archive, and Pecl::Svn. “We use a LAMP stack because the tools provide a quick and easy way of storing, indexing, and presenting data to users across different platforms. There’s no need for the end user to download anything for their PC; all they need is a modern web browser.”

Similarly, the project chose to host on SourceForge.net because “it provided the quickest and easiest portal to make a GPL project available to the masses. It provides an instant web site, easy download management, statistics, makes the project searchable instantly, and setting up a publicly accessible Subversion repository via SourceForge.net was trivial.”

In addition to being searchable from SourceForge.net, Groogle announces new releases on freshmeat.net. “Together they provide a considerable amount of relevant traffic for Groogle. The numbers of downloads of Groogle is far in excess of what I expected,” Pitt says.

The road map for Groogle includes new features such as CVS and Git support, Subversion authentication support, private reviews, providing review metrics in CSV and graph formats, RSS support, major performance improvements, a greater focus on collaboration for group reviews, and ongoing improvements to the layout and presentation of Groogle and features in the Groogle database. “Groogle is a long way from finished,” Pitt says.

Major releases tend to be six to 12 months apart and bring significant new features. Minor bug fix releases typically come out every couple of months, as and when bugs are filed and fixed.

Pitt says progress on Groogle is slow because he’s generally the only developer and he works on the software part-time. “Some patches have been gratefully received and merged, but big releases and new features are often a long way apart because of this. Developers are always welcome to help on Groogle, and users who give feedback on functionality, layout, feature requests and provide bug reports are always appreciated.” You can contact Pitt via email or through the Groogle support forums on SourceForge.net.