Thinking about online code reviews...
By user12618941 on Mar 23, 2007
Recently the OpenSolaris community conducted a poll about priorities. I took note that Deploy a public code review facility on opensolaris.org came in at #3 on the list. Of course some of you already know that I already run a public code review facility for the opensolaris community: cr.grommit.com. It turns out that I've learned some valuable lessons from that experience:
- It's possible to roll out such a facility without a lot of fancy web application infrastructure (cr.grommit.com is "powered by" shell scripts). I built a useful facility with fairly stone age tools.
- Running the infrastructure in a zone (graciously donated by Steve Lau) means that I can have some autonomy. Steve provides me a special ZFS filesystem to which I can dump data for him to backup.
- Providing rsync access makes posting codereviews an automatable process.
- Providing public-key-only ssh-only access means that I don't worry much about security.
- mod_pgheader is really useful for this sort of application. I use it to add google analytics to all pages on the site (including user content pages). We might want to use to add some OpenSolaris.org site navigation as well.
Having talked to Stephen and Steve since the poll closed, I think we'll be rolloing cr.grommit.com over to something like cr.opensolaris.org in the next few month. Being part of the opensolaris.org infrastructure is exciting because we can remove our ssh key management scheme, and use the SSH keys which users provide. The net effect is that the same key you use for voting will also be useful for posting codereviews.
Of course at the same time I'm very busy on a new project (more on that some other time), enhancing OpenGrok, et cetera. So it will take some time to get community priority #3 squared away. I've tentatively set the following goals for the re-work and migration:
- RSS (or ATOM or whatever) feed of posted codereviews; also a mailing list with the same.
- To do this we may want some more enhancements to webrev to generate a file of metadata suitable for use by a feed generator (perhaps we need a UUID for each codereview for disambiguation? What about codereviews which get reposted or updated? This will be an interesting challenge.)
- May also want to enhance webrev to be able to rsync things directly, like: webrev -o rsync://cr.opensolaris.org/...
- Integration with the opensolaris.org SSH key infrastructure
- Resolution of the spam problem-- today I approve each account request. If you start posting inappropriate materials, I'll just delete your account. If we move to a more automated system, we'll need to cope with this somehow. Perhaps you must have at least a "contributor grant" to post?
- Reskinned website which fits in with the OpenSolaris site look and feel.
If you want to help out, most of the above could be broken off into separate tasks. Since the community has agreed this is a priority, you could volunteer to help out and know that your contribution would be deeply valued.
In the future, I'd like to see a truly collaborative online code review system integrated right in with our RTI system-- something like Mondrian perhaps. Stephen and I have talked about such a system several times over the past couple of years. Mostly the issue is that it is a really a big commitment to build such a tool. If we're lucky, we might be able to integrate some existing pieces together (some bookmarks in this area: http://www.cenqua.com/crucible has a great demo; http://jcodereview.sourceforge.net/, http://www.notesfromatooluser.com/2006/12/online_code_rev.html thoughts on why these tools "suck", http://cvw.sourceforge.net/cvw/info/docs40/jcvwscreen.php3, http://www.laatuk.com/tools/review_tools.html).