Re: [crossfire] [Crossfire-cvs] SF.net SVN: crossfire: [5665] maps/tags/1.10/

2007-03-06 Thread Mark Wedel
Nicolas Weeger wrote:

 I think one major issue is how long it takes to make a release.
 For instance, I know there are some things to do for Windows server/client 
 (and I will write that down somewhere!), but I don't know how long it takes.

  I know this release is taking a bit more time, but that is also because I'm 
documenting it.

  the arch and map stuff is pretty easy - it is basically make a copy to the 
branch, tar it up, and upload it.

  Even the server and client is pretty easy _if_ everything works correctly. 
The directions are basically update the configure.in, run autoconf, do make 
dist.

  The issue is when things don't work right - someone adds a file but forgets 
to 
update the makefile.  Then you go through, fix that, repeat the steps, etc, and 
hopes it works.

  Also, for the client  server, I do some extra checking, like can I run the 
client, log into the server, and have it work?  Just a basic 'this isn't 
completely brain dead' type of thing.  that takes some extra time, but after 
being hit one time with something being delivered that was braindead, it seems 
like a good idea.

  The time may also depend on your upload speed.  Uploading 40 MB of map files 
takes a little bit of time on an ADSL connection.

  But in short summary, I'd say that normally it takes the good part of an 
evening to do a release (2-4 hours).

  If releases are done more often, I'd expect this to go down some - likelihood 
of release process getting broken is less when there have only been 20 changes 
and not 200, etc.

 
 IMO, what we should do is:
 * automatize to the maximum the release process. This can include writing sh 
 scripts for Linux, scripts for Windows, and so on. [as a side note, I'm 
 thinking of doing a small C program for Windows to replace the Perl script 
 for maps, and make the build process more easy, ie change version numbers and 
 such. C because Perl isn't needed, apart for arch collecting which i can do 
 on my linux box)
 * time how much time a release takes
 * decide after we automate to the maximum :)

  See other post about automation.  Certainly more automation can be done, and 
that shaves some time off.  I suppose the main advantage of automation is it 
could be something that you do a 'make release 1.11', go to bed, and next 
morning, log on to find everything worked and the files are uploaded to 
sourceforge.

  At least for me, it may be a little while before I trust everything that much.

  And I'm sure it could be automated more - I think it basically came down to:
A) Do a write a script to automate it more, which will take X amount of time to 
write and make sure it works
B) Just do it by hand, where it takes Y more time than fully automated

  Where Y*NUM_RELEASES  X, but unclear what value NUM_RELEASES are.  it's also 
a matter of time concentration.  If Y is 10 minutes, not a big deal - just 
means 
I go to bed a few minutes later, and shaving 10 minutes off probably means I go 
to bed 10 minutes earlier.  if X is 90 minutes, that is enough time to actually 
do something relevant - look into fixing some bugs, writing new features, 
whatever else.


 
 I would aim for something like a release every 2 months. It may appear short, 
 but if release process is automated well we don't take much time to release. 
 It would enable us to have many tests and such.

  More frequent releases do also have the advantage that there is likely less 
breakage.

 
 Note that we should probably do trunk releases too, so people get to test it.

  The trunk releases get messy, because from what I recall, what we have right 
now in trunk may not be compatible with final release of 2.0 (in terms of maps, 
locations, etc).  So it gets sort of tricky to put this out there, but don't 
rely on it too heavily, because things could change in incompatible ways.  But 
that sort of discourages people from using it.

  Its sort of a different discussion, but the compatible breaking changes 
should 
probably be done as soon as possible, so that the rest of more tweaking, fixing 
bugs, etc.  But time doesn't always work that way.




___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [Crossfire-cvs] SF.net SVN: crossfire: [5665] maps/tags/1.10/

2007-03-05 Thread Mark Wedel
Kevin R. Bulgrien wrote:
 Log Message:
 ---
 1.10 branch
 Hello.

 I (and I'm sure others) would have appreciated some notification of
 incoming 1.10 release, as I'm trying to fix some things related to Windows
 version of server.

 Could I ask for ~2 weeks notice before releases, so we can freeze stuff
 and fix critical/blocking bugs?

 Nicolas
 
 The old adage about CVS not being a replacement for developer communication
 likely applies well in this situation, IMO.
 
 2 weeks not needed here as _any_ notice would be appreciated.  I had two
 regressions to fix in maps.  I could have had them fixed in a few hours,
 but had just discovered them through playtesting and was needing to
 experiment a bit to learn how to fix them.  (I have fixed them now, but it
 is too late.)  With 24 or 48 hours notice, these regressions might have
 been fixed for the release as I could have upped priority for hammering
 out a correction.
 
 I acknowledge it is my problem for not having tested well enough before
 committing.  At the time I did test on my server, but did not have in mind
 the nuances of testing for hidden attribute changes that come in from the
 arch when switching out floor pieces.  I know now, so hopefully it won't
 happen again.


  As said before in other thread, sorry about no advanced notice.

  If I knew I was going to make the release last weekend, I would have given 
advanced noticed.

  It just turned out that I found myself with the time to do the release when I 
sat down at the computer at the weekend.  So I basically had these options:

1) Start the release process since I know I had time then.

2) Give notice about an upcoming release, and hope that I'd actually have the 
time to do it before when I said so.  My estimated probability of this was low 
(and if the deadline is missed, it almost seems like the process is restarted, 
since at some point, the immediancy of a release coming out goes away.

3) Do neither - wait 2-3 months when I estimate I may have time, and schedule a 
release then (which would be when the release is done if I missed schedule on 
#2)

  IMO, none of those is ideal - the ideal is ability to announce I'll do a 
release in 2 weeks, and then actually do the release then.  But as of right 
now, 
that seemed low.  And since there were no docs, its not like I could point 
someone else to do the release in that timely fashion.  Hopefully, since I'm 
writing docs, that may be more doable.

  Looking back, the only thing I might really change is perhaps saying 
something 
on irc like I'm going to do a release starting right now - if you have 
anything 
ready to commit, let me know now and commit it, to catch any of those ready to 
commit fixes (but that in itself can sometimes be dangerous).  If I had a time 
machine, I'd send a note to myself 2 weeks ago to send mail to the list saying 
I'm going to do a release in 2 weeks.  But I have to go on what I knew at the 
time, not what I knew later.

  Otherwise, I still think my decision to do a release now is better than 
waiting another 2 months for a release.  Even though the code has some bugs, 
I'd 
say it is better than what is out there right now as 1.9.1, and at some level, 
getting code out there for others to use has some advantages.

  This is one of the arguments for frequent releases - sure, each build will 
have some bugs, and could be made better if delayed, but by getting the builds 
out there, you get people to discover some of those new bugs so that they can 
get fixed in the next release.  If infrequent releases are done, quality may in 
fact not be better because people are stuck using an old buggy build for a 
longer time period.

  Now to turn this more constructive, I think the real question is:  How often 
should we be doing releases?  Every month?  Every 3 months?  Somewhere in 
between?

  I think anything more frequent then every month (save for critical builds/to 
fix something DOA) doesn't make much sense, as I don't think the 1.x branch is 
changing fast enough.

  I also think that less than every 3 months is too long a gap - just looking 
at 
the client, there were lots of things changed since the last release, such that 
if there were 3 releases in that time period, each would still have enough 
changes to be compelling.


___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


Re: [crossfire] [Crossfire-cvs] SF.net SVN: crossfire: [5665] maps/tags/1.10/

2007-03-04 Thread Nicolas Weeger
Le dimanche 04 mars 2007 08:55, Crossfire CVS repository messages. a écrit :
 Revision: 5665
   http://svn.sourceforge.net/crossfire/?rev=5665view=rev
 Author:   mwedel
 Date: 2007-03-03 23:55:08 -0800 (Sat, 03 Mar 2007)

 Log Message:
 ---
 1.10 branch

Hello.

I (and I'm sure others) would have appreciated some notification of incoming 
1.10 release, as I'm trying to fix some things related to Windows version of 
server.

Could I ask for ~2 weeks notice before releases, so we can freeze stuff and 
fix critical/blocking bugs?

Nicolas
-- 
http://nicolas.weeger.free.fr [Petit site d'images, de textes, de code, bref 
de l'aléatoire !]

___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire