What's That Noise?! [Ian Kallen's Weblog]

Main | Next day (Jul 28, 2006) »

20060727 Thursday July 27, 2006

Google Code Project Hosting

At Greg Stein's talk, A Google Service for the Open Source Community, he outlined how Google's following up on it's Summer of Code project with a new contribution to open source. No, it's not a dating service or personal trainer service for geeks (that'll be Google's 2007 contribution). And no, it's not source code search (does Krugle have that covered?). This is project hosting on Google Code Project Hosting.

Yes, there is nothing new about project hosting; there's long been things like Source Forge, Tigris, java.net and so forth. Things like Sourceforge are doing a great job, but there are strengthes that Google has that could be brought to bear on the project hosting space. Some of the unique features of Google's project hosting that Greg cited are

simplicity, scalability, reliability
The system is built with Google's trademark minimalist approach to user interfaces as well as leveraging Google's horizontal scaling and robust the data center sauce.
Subversion on Bigtable
They've built a new backend for Subversion that, instead of using flat files or BerkeleyDB, uses Bigtable. Bigtable data is fast, highly available and replicated across data centers so that all Subversion stored resources will benefit from the Bigtable backend.
Complete re-think of issue tracking
Bugzilla, Trac, Jira and most other issue tracking systems are workflow heavy and laden with permissions and security provisions. The heavy stuff is often unnecessary, it just gets in the way of issue tracking for open source projects instead of facilitating the core use cases that people need. They've replaced all of the highly structured data model and query environment with labels (tags). Labels get attached to projects and issues to tags and provide a minimalist structure to query by using full text queries.
Next came the demo.

Creating a new hosted project is simple enough, you fill out a form with the project name, a summary description, a full description, select a license (Apache, Artistic + GPL, GPL v2, LGPL, BSD, MIT and Mozilla are choices ... dual licensing is not permitted) and apply some labels (tags). If you don't have one yet, a subversion password is created for you (it's *not* your gmail password). Your project will have a tabbed interface for the main page, issues, browsing the soruce and an administrative page. Project creators and administrators must use a GMail account. If not using GMail, bug reporters must have some Google account (Picasa, Groups, etc). The "Issues" screen provides a tabular view of bugs, the columns are ajax enabled for parameterization. The neat thing is that instead of using a big form with tons of check boxes and selectors, the issue tracking uses query expressions to refine issue search results. Status field for a bug can be free text; while a static vocabulary is defined and selectable in an ajax drop down the vocabulary is unconstrained. Status isn't the only metadata that's open-ended, instead of having "release version", "milestone", "component", etc the system uses labels. The issue list column repertoire is adaptable so that you can select labels you've defined as listing criteria. All of the open endedness may be an invitation to pandemoneum but the focus is on having the user interface make it easy for the user to do the right thing.

Some of the administratively defined aspects of a project include the issue creation template (defines the prompts that issue creators will see), project links, project discussion groups (using Google Groups), project blogs and activity notification email addresses. The system will support issue tracking feeds. Most of the metadata that will be visible on the project summary page that newcomers to the project will see.

There's currently no "tarball download" service and integration with other Google services is in the works. For the time being, any downloads made available must be done within the limit of the quotas on your subversion repository (100 MB). Plans for importing and exporting, creating APIs and so forth are underway (the issue tracking seems like a natural fit for Atom and Atom Publishing Protocol).

Congrats to Greg and the Google Code team on a great launch!

( Jul 27 2006, 03:46:06 PM PDT ) Permalink