Getting a Grip on Google Code
netbuzz writes "Niall Kennedy reports on his blog that Guido van Rossum, author of the Python programming language, has begun showing off his first project since joining Google last year. 'Mondrian is a Web-based code-review system built on top of a Perforce and BigTable backend with a Python-powered front-end,' Kennedy writes. 'Mondrian is a pretty impressive system and is currently in use across Google.' Kennedy's description of Google's current code-review system sure makes it sound like it was in need of an upgrade. 'The Mondrian tool creates a much better workflow by creating task-specific dashboards, in-line commenting, well-tracked statistics, and more,' he writes. 'The application is built on top of Python open source libraries such as the Django framework, smtpd.py mail service, and the wsgiref Web server software.'"
python all the way! or ruby..
Why UNIX?
first!
miss. Thanks for playing, come back soon.
Does Ruby support 8-bit characters and Unicode yet? Or load balancing, or HTTPS? Didn't think so.
It had me interested until I read "perforce."
My eyes! The goggles do nothing!
Good idea, building on a closed-source SCMS that's (barely!) a mid-level player in the market. I can understand not wanting ClearCase, but what's wrong with CVS or Subversion? Hell, even Monotone or GNU Arch...
Oh well, could be worse: they could have gone with StarTeam, PVCS or MKS Source Integrity...
Just junk food for thought...
Am I missing something here? Why don't the use Subversion?
Codestriker does the same thing. Except it is in perl + GPL, on source forge.
Disclaimer: I've yet to work with Perforce, having not yet graduated from CVS, but at least I'm not using VSS.
Totally OT, but your comment reminded me of this. A great piece of history from the Multics group about an error code that never was meant to see the light of day, yet, through circumstances, did show up once during an upgrade.
I could care less if they managed their code using punch cards.
Where's the 0xBEEF
That hunk of complete crap!
Jesus Christ on a stick.
IME, when a company goes from being small, well run and efficient, to bloated, bureaucratic and hopelessly *hopelessly* stupid, the FIRST thing they do is switch to Lotus Notes and Perforce.
It's like old people moving to Florida buying an RV.
You can't check out files with both Unix and Windows line-endings. See http://smithii.com/perforce_bugs for the ugly details.
Blargh! Mondrian is already an open-source OLAP engine! Seriously, a casual google search could tell you that. And it's not some sf.net abandonware, it's a mature and powerful OLAP Cube engine used by some big-name corps!
Oh, and just to rant a bit more: Python WAS ALREADY THE NAME of the Lisp Compiler used in the CMUCL Common Lisp implementation and lately SBCL. And was relatively well known in computing science at the time Guido was naming python because it is a snazzy type inferencing lisp compiler!
Guido's some sort of naming-dick. What'll he call his next python project? Glibc? Mesa? Gimp?
Next they're going to release a web-based internet browser.
This is why working at google is awesome. Internal code reviewer is big news.
I use the tool in question, it's good.
Also I've used perforce at a previous company. Generally most people who talk about SCMs and reference CVS as a potential replacement/alternative to P4 really do not know what they are talking about. P4 has it's problems, granted, but if you are looking to maintain a massive code base, there really are few choices. Atomic change lists, they are fantastic.
suufering *BSD
Worse in this case, Mondrian is also the name for statistical and plotting program (available since at least 2002).
:-)
In biology, when somebody accidentally names something as a homonym (i.e. the name already exists for some other species), then some other person who notices it often names it after the person who made the mistake. Having a species named after you is therefore either an honor, or it means you goofed.
So, perhaps he should call it "Guido"
Google Mondrian: web-based code review and storage
* Search/Google
* Programming
Google Mondrian logo
Guido van Rossum unveiled his first Google project, Mondrian, tonight during a Python tech talk at the Google campus in Mountain View. Mondrian is a web-based code review system built on top of a Perforce and BigTable backend with a Python-powered front-end. Mondrian is a pretty impressive system and is currently in use across Google.
Shared Development Environment
Google uses a company-wide Perforce depot with almost no developer branches. Each developer has their own NFS workspace readable by anyone in the company, including automated processes. An administrative process takes snapshots of each developer workspace including local development environments accessed over SSH. Files within these snapshots can be compared to checked-in data, encrypted, and archived.
Previous methods of review
Previous to Mondrian code review was conducted largely over e-mail using Google command-line wrappers built on top of Perforce. A developer could initiate a code review from within the g4 mail tool, which would fire off an e-mail and begin a review thread. When the developer receives a response of "looks good to me," or lgtm for short, they could proceed to checkin. Changes could be compared using tkdiff.
Design-level reviews are often conducted by e-mailing around Word documents or editing a team wiki. Recently some design reviews have moved onto an internal version of Google Docs.
Web-based collaboration meets code review
Mondrian code review
The Mondrian tool creates a much better workflow by creating task-specific dashboards, in-line commenting, well-tracked statistics, and more. The application is built on top of Python open source libraries such as the Django framework, smtpd.py mail service, and the wsgiref web server software.
Code reviews can be initiated and completed from within the Mondrian interface. A developer requests a review from another user or a group of users to kick off the process. Each invited reviewer can add comments directly underneath a line of code or reference the entire file. You can request and diff the file against previous versions as well. It's a pretty slick interface, lightly highlighting each line of code as you hover, and popping open a comment box in response to a double-click. Comments can be saved as a draft and shared at a later time.
Putting the entire code review process online means you never have to worry about referencing the most recent version of a file or losing e-mails. Mondrian captures every outgoing e-mail related to the workflow, looks for key data such as revision numbers, and updates a to-do list accordingly.
More on BigTable
Mondrian uses BigTable as backend storage for user data. More specifically, it's used to store:
* Change metadata such as a description or list of files
* Comments entered through the web interface or via e-mail
* Encrypted file snapshots taken from user workspaces
* Per-user data such as active changes or last view dates
Summary
The Mondrian web code review system is pretty impressive. Guido estimates he has spent about 25% of his work time on the project since joining Google in December 2005. Mondrian served as Guido's introduction to Google technologies and processes with the help of a few other Googlers treating it as a side-project. The application is so deeply intertwined with Google technologies it's not likely to be available as open source until Subversion and a backend such as SQLite can be supported.
Guido's full talk, including a demo of Mondrian, should be available on Google Video sometime in the future.
This is a nice design win for Django as a web framework. I wonder how much of the stack he ended up using and whether he used the ORM layer at all.
Microsoft is using Perforce for source code control? Why aren't they using their own product--Visual Source Safe? Does it suck or something?
"Not an actor, but he plays one on TV."
For fanboys and lackeys. And people who feel important because they know somebody who knows somebody who thinks g is great or something, but can't write any code of their own :(
The entire google team in other words!
Our product Crucible http://www.cenqua.com/crucible provides online web-based code review including inline commenting, workflow etc. Crucible is currently in Beta release and supports CVS, SVN and Perforce. Free licenses for Open Source projects are available.
Cheers,
-Brendan
My company, Smart Bear Software, has developed a commercial tool for peer code review called Code Collaborator. We support a wide variety of SCM's, including CVS, Subversion, Perforce, Clear Case, and soon Team Foundation Server.
Using our tool, we also performed the largest case study of peer code review ever published and have made it available as a free book. It includes data from 2500 reviews of 3.2 million lines of source code at Cisco Systems. To get your free copy, just sign up on our website.
Valve also uses Perforce.