-- tl;dr start -- We're using gerrit now. And as we use it we all keep running into issues stemming fundamentally from how gerrit is designed.
I had an irc discussion with Roan[1] awhile ago tossing around ideas on how we would write a review system for git if we wrote one from scratch. Based on a number of things I noted there I started a draft of how such a review system would work: https://www.mediawiki.org/wiki/User:Dantman/CodeReviewSystem
I probably haven't written down nearly as much detail on that page as I've thought out for the actual system.
This is a long term project. It's definitely going to take awhile before it's ready to manage MediaWiki. However we're using git now, so this project doesn't have as much pressure. Since git is distributed things can easily coexist; We can put this up on labs before it's ready for primetime. When it's somewhat ready we can opt-in to trying it on less important repos. And even when we switch it will be possible to do so in a way such that gerrit and the review system co-exist until all changesets in gerrit have finished being reviewed. -- tl;dr end --
In one of my one-day bouts of coding I started trying to implement the system: https://github.com/dantman/gareth
Right now the code is EXTREMELY rough, and it barely does anything. My focus is on getting the fundamentals needed for the system to work (otherwise it's a fancy ui that does nothing). So I've made short-cuts on a lot of things so I don't get held back implementing the clean stuff.
I'm probably the only person with a whole enough idea of how this'll work to push forward on the fundamental parts of it. However despite that I welcome help on the project and have a number of things that other people should still be able to write while I work on the fundamental pieces.
Right now I've skipped past a number of things: - We need a views system, something that will let us template out many sections of html. And will allow different themes to override them. - Right now I've copied some of the classes from MediaWiki like WebRequest and stripped stuff out of them. Anyone up to it is free to clean these up into the start of a real framework based on MW's code that can in the future be the base of both this and MW. - The project needs a good database system. I copied our database classes in but never got to using them. I'm isolating all database stuff into some model classes so different database handing can be swapped in. Anyone who feels up to it can adapt our database code to work as a framework for the review system. - Right now I'm implementing git handling using proc_open to interact with git's porcelain and plumbing commands. Anyone who feels up to the task is free to implement a PHP extension for interfacing with git we can swap over to using. - I'd really like to eventually have a way to list a set of commits using a nice line graph the way that things like gitk, gitx, and source tree too. I welcome anyone who feels like trying to write something like a JS library to generate in-page SVG (Raphael?) making a vertical list of commits listed that way.
I welcome anyone who feels like turning the short-cuts into a properly written system. And anyone who feels like turning MediaWiki's code into a framework. Or anyone who feels that a framework they know fits best and wants to make the review system use it (Though no file layout controlling MVC frameworks, please).
[1]: The discussion was buried somewhere deep in http://bots.wmflabs.org/~petrb/logs/%23mediawiki/20120329.txt try somewhere around [20:16:09]