Name: James Henstridge
Member since: N/A
Last Login: 2008-03-29 00:44:08
Homepage: http://www.jamesh.id.au/
Notes:
A GNOME hacker. Author of gnorpm, gnome-python, libglade, pygtk and others. Former maintainer of dia. Contributor to various gnome packages.
[New diary entry] [Planet Gnome] [Planet Ubuntu] [Technorati Profile]
Storm 0.13
Yesterday, Thomas rolled the 0.13 release of Storm, which can be downloaded from Launchpad. Storm is the object relational mapper for Python used by Launchpad and Landscape, so it is capable of supporting quite large scale applications. It is seven months since the last release, so there is a lot of improvements. Here are a few simple statistics:
| 0.12 | 0.13 | Change | |
|---|---|---|---|
| Tarball size (KB) | 117 | 155 | 38 |
| Mainline revisions | 213 | 262 | 49 |
| Revisions in ancestry | 552 | 875 | 323 |
So it is a fairly significant update by any of these metrics. Among the new features are:
It doesn’t include my Django integration code though, since that isn’t fully baked. I’ll post some more about that later.
Double the Fist
For anyone that cares, the new series of Double the Fist is starting tonight at 9:30pm on ABC2 (and repeated tomorrow on ABC1 for those who don’t get ABC2). It has been a long time coming (4 years since the previous series), so will hopefully be worth it. I guess it will be available on the internet shortly after for those outside of Australia.
It is also good to see Roy and HG covering the Olympics again, even if it is only on the radio this time rather than television. The shows are being posted on the website after airing.
In Orlando
I’ve just finished the first day of the Ubuntu online services sprint in Orlando, Florida. I didn’t repeat last year’s trick of falling asleep at the airport, so the trip was only about 29 hours all up.
We’ve got a great team that I am looking forward to working with, so it’ll be interesting to see what we do over the next little while.
Using Storm with Django
I’ve been playing around with Django a bit for work recently, which has been interesting to see what choices they’ve made differently to Zope 3. There were a few things that surprised me:
Other than these things I’ve noticed so far, it looks like a nice framework.
Integrating Storm
I’ve been doing a bit of work to make it easy to use Storm with Django. I posted some initial details on the mailing list. The initial code has been published on Launchpad but is not yet ready to merge. Some of the main details include:
What this doesn’t do yet is provide much integration with existing Django functionality (e.g. django.contrib.admin). I plan to try and get some of these bits working in the near future.
Metrics for success of a DVCS
One thing that has been mentioned in the GNOME DVCS debate was that it is as easy to do “git diff” as it is to do “svn diff” so the learning curve issue is moot. I’d have to disagree here.
Traditional Centralised Version Control
With traditional version control systems (e.g. CVS and Subversion) as used by Free Software projects like GNOME, there are effectively two classes of users that I will refer to as “committers” and “patch contributors”:
Patch contributors are limited to read only access to the version control system. They can check out a working copy to make changes, and then produce a patch with the “diff” command to submit to a bug tracker or send to a mailing list. This is where new contributors start, so it is important that it be easy to get started in this mode.
Once a contributor is trusted enough, they may be given write access to the repository moving them to the committers group. They now have access to more functionality from the VCS, including the ability to checkpoint changes into focused commits, possibly on branches. The contributor may still be required to go through patch review before committing, or may be given free reign to commit changes as they see fit.
Some problems with this arrangement include:
Distributed Workflow
A DVCS allows anyone to commit to their own branches and provides the full feature set to all users. This splits the “committers” class into two classes:
The social aspect of the “committers” group now becomes the group of people who can commit to the main line of the project – the core developers. Outside this group, we have people who make use of the same features of the VCS as the core developers but do not have write access to the main line: their changes must be reviewed and merged by a core developer.
I’ve left the “patch contributor” class in the above diagram because not all contributors will bother learning the details of the VCS. For projects I’ve worked on that used a DVCS, I’ve still seen people send simple patches (either from the “xxx diff” command, or as diffs against a tarball release) and I don’t think that is likely to change.
Measuring Success
Making the lives of core developers better is often brought up as a reason to switch to a DVCS (e.g. through features like offline commits, local cache of history, etc). I’d argue that making life easier for non core contributors is at least as important. One way we can measure this is by looking at whether such contributors are actually using VCS features beyond what they could with a traditional centralised setup.
By looking at the relative numbers of contributors who submit regular patches and those that either publish branches or submit changesets we can get an idea of how much of the VCS they have used.
It’d be interesting to see the results of a study based on contributions to various projects that have already adopted DVCS. Although I don’t have any reliable numbers, I can guess at two things that might affect the results:
I am sure that there are other things that would affect the results, but these are the ones that I think would have the most noticeable effects.
jamesh certified others as follows:
Others have certified jamesh as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!