[Potlatch-dev] Codebase and git

Richard Fairhurst richard at systemeD.net
Mon Feb 28 09:31:25 GMT 2011


In the near future it looks likely that P2 will become the default 
editor on osm.org.Consequently we need to move from the 'rapid 
development' stage to the 'mature code' stage, and enforce a bit more 
rigour in the codebase - "with great power comes great responsibility" 
and all that. :)

In particular, two absolute, non-negotiable rules:

1. At any given moment, the main P2 codebase needs to be of a quality 
deployable on osm.org.
2. The main codebase must always compile without errors or warnings 
(using the recommended compiler setup).

Rule 1 means, for example, no '?' icons and no partly-working 
functionality. If an order comes down from on high (OSMF) that "P2 needs 
to be able to do this" or "P2 must stop doing this", we need to be able 
to react instantly, without spending time fixing up half-completed stuff 
or drawing icons until we have a deployable version once again.

In conjunction with this, we will be moving from svn to git (as used for 
the core Rails port). This will allow people to hack on their own 
improvements in parallel until they're ready for integration into the 
main codebase. Andy will be posting a nice git tutorial to the list in 
readiness (he doesn't know this yet ;) ).

To reiterate, this absolutely isn't meant to stop people working on cool 
new things, but rather to make sure that osm.org always has a stable, 
predictable editor. git should facilitate both of these: it's good news 
for all of us.



To pave the way for P2 becoming the main editor, we need to freeze 
functionality for now. There's some cool stuff being committed, but 
right now, anything that is not either (a) fixing an existing P2 issue, 
or (b) bringing P2 up to feature parity with P1 (e.g. i18n and 
history/revert), is not an immediate priority. As it takes up time for 
others to learn and review, and may introduce new issues in itself, it 
could be a distraction from the pressing task - and we really shouldn't 
have to make this choice, which is why we're moving to git.

r25368 should be the base for the functionality freeze. That's certainly 
not to say that we abandon the stuff that's been done since then, but we 
will separate it into the essentials (a and b above) and the 
enhancements (new functionality) as part of the move to git, and then 
move the new functionality into the core code as and when it's ready.

cheers
Richard




More information about the Potlatch-dev mailing list