There is a new entry into the open source software code repository space: Google Code – Project Hosting. This will hopefully be a long awaited kick in the pants for Sourceforge.net which hosts many, many projects but it can be difficult to find the cream of the crop, compare similar solutions and weed dead projects from the results.

Update: I assume that the reader is already familiar with Sourceforge and I focus on what Google is bringing to the table. Update: I wrote a guide on getting started with Subversion and Google Code hosting

Google Project Hosting Features:

The interface is clean, compact and concise. It is missing the abundant clutter that permeates Sourceforge and most programming tools. Avoiding “too many options” is something Google understands well.

After the break, all the features of Google Code Project Hosting as of launch 2006/07/28.

Storage and Version Control

Google is offering 100 mb storage, and uses Subversion (currently kicking CVS’ butt) for version control. Subversion access control is tied to your Google Account (using a password that is generated by Google). Guide on using it here.

Update on 100 Mb: The comments section has a response from Ben Collins-Sussman from Google.

We had to set a quota somewhere, to prevent spam/abuse (people using subversion to host photos, music, porn, etc.). If a project legitimately needs more than 100MB for source code, we can easily increase that quota per-project. See code.google.com/hosting/faq.html for more.

Defect Tracking

It also includes a custom defect tracking system with fields for: Type, Status, Priority, Milestone, Owner, Summary + Labels. The defect tracker also lets you Star bugs to be notified of issue changes. I assume that it will be an email update, but upon testing with two Google Accounts I wasn’t able to get bug notifications for either of them.

Status Values and Issue Labels for defects can be configured by the project administrator.

New = Issue has not had initial review yet

Accepted = Problem reproduced / Need acknowledged

Started = Work on this issue has begun

Tagging Support (called Labels)

Each project can be tagged with various categories by the project adminstrator. Note that tagging will end up being pretty arbitrary unless there are some kind of moderators going around and cleaning it up to achieve a common folksonomy. Users can enter any labels they choose, although some are banned (like “google“).

Creating Projects

Creating projects is simple and anyone with a Google Account can do it. All you need to do is enter a project name, summary, description and as many labels as your heart desires.

Project Administration

Once a project is created, the administrator can change the initial settings, add urls for links, discussion groups, and blogs as well as setting up an email notification for Subversion activity. The discussion group has to be a Google Groups.

The project admin can change settings for the defect system (mentioned above). S/he can also add/remove members or administrators.

There is an advanced option for deleting the project. It is unknown if the project name immediately becomes available again or if it is locked from re-use.

Non-administrators can’t add/remove themselves from projects. All project membership changes have to be done by a project administrator. A hassle, but ultimately less prone to abuse since you’ll have to contact an administrator to manually ask them to allow you to join the project. I was able to switch project ownership between accounts.

One thing I noticed is that when someone is added to a project, they don’t receive a notice. They also don’t receive notices when adding bugs to their name.

Supported Licenses

Code licenses supported are: Apache License 2.0, Artistic License/GPLv2, GNU General Public License 2.0, GNU Lesser Public License, MIT License, Mozilla Public License 1.1, New BSD License. Clicking on the license associated with a project brings up the full description.

User Profiles

Clicking on a user profile displays owned projects and projects they are a member of. There is no link to an email address, profile description, website or a list of message topics. That should all be feasible since they are all tied to the Google Account.

You can access the user profile of any Google Account even if they have yet to join a project. i.e.: http://code.google.com/u/engtechnology/

RSS Support

They have RSS feeds for updated projects and featured projects.

Infancy

The associate discussion group is currently being flooded with suggestions and bug reports: http://groups.google.com/group/codesite-discuss

Note that the Google Code FAQ hasn’t been completely update yet:

Why are you releasing code through Sourceforge? Well, because they were nice enough to oblige, and because developers here like Sourceforge. Future homes for new projects might include Tigris.org or language specific sites like the Vaults of Parnassus and CPAN.

Overall

This looks like a very good first stab at a FOSS project repository. Ultimately, I think the labelling will need some kind of moderation to try and achieve a common folksonomy/semantic markup so that common tags are used and similiar projects have similiar tags.

Updated: Only the projects administrators can change the labels on a project. So the “wisdom of the crowds” effect where the best tags rise to the top (like with del.icio.us, technorati, flickr, etc) will not apply. Something will be needed to find a common semantic mark up. It will not be found by individual administrators self-tagging.

I would really enjoy it if they could use their algorithms to suggest alternatives when investigating a particular project.

It is very user friendly and the only necessary feature I think it missing (other than the obvious option of downloading precompiled binaries) is some metrics on code development and stability, as well as a mechanism for differentiating the great FOSS projects from the merely good.

It doesn’t have as many “developers, developers, developers” features as SourceForge (and probably never will with Google approach to clean and simple layout), but that isn’t a bad thing. At the very least it lowers the barriers for project management. That might means more FOSS projects, but also a lot more crap to sift through.

Related Posts

External Links

>> Google Code – Project Hosting

>> Google Code – Project Hosting Frequently Asked Questions

>> Announcement on TechCrunch

>> Ben Collins-Sussman’s write up on his part of Project Hosting (subversion backend)

>> Andrew Whitchock’s discussion of BigTable

Unrelated Links

Digg | Del.icio.us | BlinkList | Furl

Spurl | Reddit | Simpy | RawSugar