[7] RE: [CF-Devel] Starting Suspended Animation Process

Mark Wedel mwedel at sonic.net
Thu Jan 3 02:17:46 CST 2002


 My personal thoughts on this:

First, for better or worse, the #crossfire irc channel has become a place where
lots of discussion is going on.  This is good in many cases when bouncing ideas
of people or discussing certain ideas.  The problem here is that if you are not
online at irc when the discussion happens, the first you hear about it is when
it gets checked it.  So the best thing is to still use irc as a discussion place
(which can be useful to get a reading on how much desire there is in what you
plan to work on), but still follow up to the list, perhaps something of the
lines of 'from the irc discussion, this is what I'm thinking of doing'. 
Unfortunately, it is hard to remember to do that at times if you have had a
discussion and think the idea is widely accepted (Because the people on irc when
you were there said cool idea).   But it really should be done - it is also nice
in that the mailing lists are archived, so even if an idea does not lead to
anything, you can then say 'look back at the old mailing archive for reasons
that wasn't done'.

 Second, while multiple cvs branches (stable vs unstable) may seem to help, it
only really does if people actually do run the unstable branches.  From my brief
experience, dealing with multiple branches in CVS, while not really difficult,
does consume a fair amount of extra time.  I actually don't see anything
specific about what should and should not get put into CVS in the doc
directory.  The spoken rule is that the functionality needs to have been tested,
but saying 'tested' is fairly broad (trying to figure out all the interactions
your code has with other code.  There are no testsuites in crossfire, so its not
like you can just go and run a regression test and see if anything breaks.

 I should also note a few other things about the CVS repository - first, it is
up to each server if they decide to run the latest CVS.  I will say that all the
servers that did that for the 1.0 release were a great help in finding many
bugs.  How good an idea it is to do that all the time for a widely used server
has just been shown that it may not be a good idea.  For people running widely
public servers, they may want to hold of a few days/week before updating after
big changes just to insulate themselves - hopefully people running CVS on
personal server will find any terrible bugs in that time period.  Second, CVS
does allow you to use dates (-B some date) when doing updates and checkouts, so
it is generally very easy to go back to an earlier release.

 Now certainly, I will admit it has been an unusually long time since the last
official release.  It may be worthwhile to take what was in the server as of a
few days ago and use that as a 1.1.0 release.  But from my standpoint, it gets
to be a tricky thing - ideally, for stability, you want to make the release
before any big changes go in (so the code released has been tested and debugged
for a while).  The obviously problem with that approach is then fairly shortly
thereafter, when people ask about some cool feature, you then say 'thats in
CVS'.  I will also admit that releases have slowed down a bit since CVS became
widespread, because it became easier to say 'thats in CVS'.

 Perhaps some formal release schedule may be used, eg, at the end of every third
quarter, an official release is mode.  For months 1 and 2 of that quarter,
normal rapid development/checkin can be done, but in the third month (eg, march
01 through march 31, june 01 through june 31, etc), only bug fixes get checked
in?  Maybe starting around the second week of that month, the public servers may
want to start keeping up to date with CVS to better test and find bugs.  But
certainly in that 2 month period of rapid development, they really should not.

 This at least means that the public servers are never really more than 3 months
out of date, and presumably not too much stuff will change in that 3 months
(and, up to the server admin, if some cool feature they really want now is
available in CVS, they could grab it and backport it to their stable copy)

 Note also that doesn't mean that no development happens in the third month - it
really just means nothing gets checked in.  The super cool XYZ could get written
in the first week of the month - you just need to wait until the next month
before checking it in.  We would probably need some way to handle the checkins
and deal with the merges - the first person to pounce in after the message
saying it is OK to check things in shouldn't necessarily always be the person
who never has to worry about merging possible conflicts.  Perhaps something of
the nature of people in the last week of that month saying what stuff they want
to check in, what files it affects, and how many lines in that file.  If one
person has 300 lines modified in that file, and another has 10, that person with
300 should probably have precedence, because merging in 10 will almost certainly
be easier than 300 (this is a rough approximation - if that 300 lines is just a
few new functions at the end of the file, those 10 lines may actually be tougher
to merge in than that).

    
    


More information about the crossfire mailing list