Switching from CVS to Subversion: test svn repo available

Neil Williams linux at codehelp.co.uk
Tue Oct 25 06:16:51 EDT 2005


On Tuesday 25 October 2005 3:26 am, Chris Shoemaker wrote:
> On Mon, Oct 24, 2005 at 09:37:07PM -0400, David Hampton wrote:
> > > I've spent more time refreshing out-of-tree patches that I have
> > > actually developing code! (ok, not really, but a LOT of time, it's a
> > > PITA.)
> >
> > You should have spoken up the moment you saw Neil's patches go in and
> > said to yourself "that's not related to the gtk2 port."
>
> To be fair, I didn't *know* they weren't related to G2.  I guess
> that's my ignorance but I'm not sure why noticing that should be /my/
> sole responsibility.

If I'd known early on that Chris' patches existed out of tree and that they 
involved areas I wanted to redesign, I would have tried to help and weave the 
two together. I've stayed out of this discussion because I only have limited 
knowledge of CVS (and live with it) and GNU arch (bad experience due to 
inexplicable config). I don't feel qualified to discuss the details of one 
tool over another.

What I would like is independent of the tool(s) we use:

1. Occasional developers - those committing patches once in a while like 
Didier - to have an easier method than posting patches to a mailing list. 
Maybe a "new developer" branch. After all, that is how nearly all the current 
developers started.

2. More emphasis on why and how branches should be used and guidelines for new 
developers on code management. Some method of clearly attributing branches to 
particular goals beyond a short, cryptic, branch name.

3. More acceptance that new developers don't necessarily know the unwritten 
conventions of code management in GnuCash. Encourage such developers to use 
personal branches so that everyone can see what is being done BEFORE it gets 
into HEAD or other "critical" branches like gnucash-gnome2-dev. (This 
naturally involves making such branches easier to manage for everyone.) 
Recently, we've had numerous people interested in building gnucash and 
numerous posts of the -devel list covering basics like which branch to use 
and how to check it out. Clearly, our documentation needs improving - it 
appears to be pitched at a level of background knowledge that is higher than 
the people being attracted to development.

4. Has anyone seriously considered using the SourceForge project more? SF is 
sticking with CVS but we don't have to use it. Other projects successfully 
use the SF Trackers for patches and the SF documentation is much better than 
our own. Currently, no SF trackers are available. SF Tasks could also help by 
making out-of-tree work visible to everyone. Again, not enabled. Ideally, 
everyone with commit access should have membership of the SF project and be 
able to at least update the trackers, tasks and documentation.

5. More write access to online information outside the mailing list archives. 
The gnucash.org website is not being updated, new documentation has to go on 
other websites and isn't always linked from the gnucash site. At least if we 
used SF more, all listed developers could correct, update and submit 
documentation on *code management* issues. Using News and/or Docs on SF could 
dramatically increase the ease of drafting new developers into the fold.

Overall, I don't care which tool everyone else decides to use, all I want is 
more publication. More code, more visible and less reliance on the CoreBuild. 
This is free software, it's meant to be shared around - yet the current 
system discourages sharing ideas and code plans, insisting on completed code 
that doesn't break the CoreBuild. All this does is virtually guarantee that 
new code will be incompatible with someone else's out-of-tree code, contain 
entrenched ideas that are hard to fix at such a late stage and lower the 
overall code quality. We need more peer review of incoming code and that can 
only come from more publication, more sharing, of the code itself at the 
earliest possible stages.

Why don't we use SF more? We don't even promote GnuCash as an SF project. We 
use the file release mirrors and the donation system and that's about it.

Maybe I joined too late to know why SF was left as a stump but I find it very 
useful and I think it can still help with our current problems.

> > > It's pretty off-putting.  I think, ideally, *anyone* who wants
> > > to should be on the SCM train.  Let everybody go as fast as we know
> > > how.  If people think it's best to require some test of endurance in
> > > order to write to the OneTrueBuild, then so be it.
> >
> > Its not an endurance test.  I for one want to see the quality of code
> > that people write before I give them free reign to play in the "One True
> > Build".

Which is why, IMHO, we need more publication of code. "out-of-tree" code 
should be banished. All code related to gnucash present or future should be 
visible to all developers, no matter what state it is in. I desperately want 
people to have a chance to see cashutil, even in it's current state.

Small snippets of code could go on SF Trackers.

Large chunks like Chris' "out-of-tree" code and cashutil should be visible to 
everyone via whatever WWW tool we use for viewing the development code. I 
don't much care how, as long as it is EASY (to create and merge), quick to 
update (i.e. not moderated), separated from the CleanBuild/CoreBuild and well 
documented.

If nothing else, I want all gnucash code in all stages to be visible to all 
developers - new and old.

> > I agree with you there.  Code should stand on its own, but I insist on
> > knowing that its quality code.  I'd rather take the time to look at a
> > new developer's patches up front than to have the program blow up in
> > strange and mysterious ways, and then have to track down problems after
> > the fact.

And I wish I'd known how to achieve that when I started with gnucash. I 
didn't, I started in HEAD, I moved to gnucash-gnome2-dev only because of 
libxml2 dependencies and it was only when I had completed 95% of my redesign 
that anyone suggested a branch of my own. I wouldn't have minded using a 
branch if someone had suggested it this time last year (and explained the 
benefits). It's one of those things that new developers cannot be expected to 
know in advance. Some may feel that this can and should be expected - all I 
can say is this kind of elitism will only further weaken the appeal of 
gnucash development.

If we had online development documentation that could be updated by any 
member, I believe things would be far simpler for people like me. I know we 
have the Wiki but that is more of a users site - where development can be 
explained to curious users.

> > > > and old devs leave as they find other projects to work on.  The main
> > > > issue is that ALL the core devs got burned out after 1.8 and there
> > > > weren't any fringe devs to pull up in the ranks.

Volunteers will get burned out if the "code management" conventions are not 
explained and updated.

> > Define healthy dev rate.  In the four years that I've been associated
> > with the project its never had more than a handful of core developers.

I still believe that this is a weakness, not a validation. Volunteers we are 
and volunteers we are likely to remain - motivation is imperative and 
anything that saps that motivation must be our collective enemy.

The current "code management" fog has seriously drained my motivation for 
gnucash development. It's only since I made my most recent commit here and 
was able to move back to QOF that I have rediscovered the pleasure of 
programming. In QOF, I can relax and write better code. I commit much more 
frequently and in smaller chunks. The only reason for this is that I am not 
afraid of committing. I should not fear a gnucash commit and although this 
has improved recently, it's a hard memory to shift.

Developing in gnucash MUST be fun, it must be enjoyable and give a feeling of 
reward. Personally, I do not believe this will be possible until all work is 
within the tree and this paranoia about the CoreBuild is salved by having 
easier branches and MUCH better documentation of the implicit conventions.

> > None of the core developers are still around from when I started working
> > with Gnucash, except for Derek.  I've gone from guy submitting patches
> > to the build system to primary developer.  Josh started sometime after
> > me and wrote the entire scheduled transaction system.  Neil's come in
> > and redesigned a core part of the engine.  We have the same number of
> > core devs as in 2002, just different ones.

And how long before this collection of over-worked developers burns out?

I'm not the only one feeling that gnucash development is unnecessarily 
burdensome. The contrast with my other projects is all too clear. There is a 
limit - a point beyond which it would be too much effort to continue and that 
point is always closer than it may appear in voluntary projects.

I've worked in voluntary projects of other kinds, I've worked with charities 
and setup my own charity from scratch - I know the personal pain of burn out 
and I feel I know the signs.

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20051025/4c5cef63/attachment-0001.bin


More information about the gnucash-devel mailing list