The way we develop Storm (and other projects as well, for that matter) allows people to start contributing fairly easily. Here is an overview on the procedure so that anyone interested can jump in and contribute more closely (patches are still welcome), or at least understand what's going on in certain situations (e.g. when you see review or review requests flying somewhere).

Right now, there is a limited number of people with direct write access to the central 'trunk' branch (i.e., members of the Storm team in Launchpad):

There are no upfront constraints about getting people into that list, being just a matter of interest and track record.

On the other hand, there's little benefit in being in that list, since Storm uses Bazaar for version control, which allows anyone to push branches which will even be seen associated with the Storm project at Launchpad (without any human intervention), and that's pretty much what interested developers have to do to get non-trivial features merged (including the core developers, of course).

So, to illustrate how the process of developing a feature and doing code reviews works, let's say that Jolson wants to contribute a new backend to make Storm "communicate" with DBF files. Here's a possible story about that,

This will create a local branch named "dbf-support".

using TDD to make sure that all changes are properly tested, and committing often to create a good track of what's going on.

To do that, the only thing Jolson needs is an account in Launchpad and an SSH key registered, which he has. This command will associate the branch with his user in Launchpad, and with the project.

That's basically it. There are variations on details, of course. We're not *too* rigid about where the review happens, for instance (sometimes via mail, or interactively on more tricky issues), but we do try to follow more or less the same logic for every change.

For details on getting started with development, see StartingDevelopment

DevelopmentProcedure (last edited 2011-12-29 16:01:39 by magmatt)