Re: [crossfire] C++/Qt server version

2008-11-30 Thread Nicolas Weeger
Hello.

I've put a first basic draft at 
http://wiki.metalforge.net/doku.php/dev%3Aserver_design

The first step, though, would be to define the exact kind of game we want, 
obviously :)


Feel free to tweak the page and add stuff you think is missing!


(note: the dates are informative, can be changed by some days/weeks if 
needed - but I don't expect those design steps to take years, actually)

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


signature.asc
Description: This is a digitally signed message part.
___
crossfire mailing list
crossfire@metalforge.org
http://mailman.metalforge.org/mailman/listinfo/crossfire


[crossfire] Client Snapshot Builds

2008-11-30 Thread Kevin R. Bulgrien
 Not at all. They are only difficult because they require availability of
 each platform. Or, to formulate it differently: it is hard to build a
 Win32/FreeBSD/Solaris/OSX package without a working installation of
 Win32/FreeBSD/Solaris/OSX.
 
 AFAIK, releasing has little to do with breakage.

 What I tried to explain was that it was not a good idea to make a release
 when you don't have the guarantee that it works at least good enough for
 common, daily use.
 
 That's also why the ailesse daily builds were never advertised as
 releases, but as builds - they don't meet the necessary quality checks
 of a stable release. Their only purpose is to allow non-programmers to
 test them and provide feedback. That's also why the Gridarta page on the
 Crossfire website says No release yet, despite daily builds having been
 available for months.
 
 In short: experimental build != release by far.

Agreed, it appears the use of the word release and automated in the
subject is the primary concern.  They need need not be there.

The release procedure mentions nothing about cross-platform checks.
Perhaps it should, but if a releaser checks all the platforms at the
moment, it is undocumented, and I suspect, not done, by looking at
the website client page, so sticking on that point might cause all
releasing to stop.  I have a Sparcstation I could set up, and enough
old hardware for a BSD, but will never have a Mac.
 
 The more serious breakage is due to incremental development
 and a failure to release in a timely manner.  Frankly, I see this as a
 lesser issue than the failure to make current development available

 The current development can easily be made available through a system of
 daily builds, again in the same fashion as Gridarta or JXClient, with the
 caveat that shipping packages for something else than Linux/x86(_64) may
 be made difficult due to lack of a proper testing infrastructure.
 
 Further, automated releases were only one possibility mentioned.  The
 other
 was for periodic release.  From what has been said in the past, it seems
 releases are not done because it is difficult.  The script makes it not
 difficult.

 Frankly, I don't get what would make releases so difficult, from the
 strict package creation side of things.

The releaser said it was difficult, and since he does the releases,
that's what matters.  Its in list history.  In response, I addressed
the issues I understood to be problems.

 Just as a side note, a reminder from the Wiki front page:
 
 Crossfire works on:
 - Linux
 - Windows
 - All *BSD?s
 - Mac OSX (Server and clients compile, in testing)
 
 So, if we advertise the game as supporting those platforms, then I
 consider it is our duty to ensure that the releases support them.
 Note again that I'm considering releases here, not builds.

I see from the web site that clients of varying versions are there,
demonstrating that we  have not stuck to ideals in the past, and
probably need not be idealistic at this point even if we do try to
improve incrementally.  Debian, and other packaging formats are
also missing, implying some external effort is understood to be
required, but then this is probably approaching the point of
beating on dead horses.

 Besides, people should be able care less whether some niche group happens
 to like a different x86 client while the rest of the world explores the
 cross-platform nirvana demonstrated by the other client.

 I don't think I ever mentioned any kind of cross-platform nirvana -
 JXClient has its own share of issues, some being related to portability. I
 don't think I denied you the right of enjoying another client, either.
 
 My points were that IMHO:
 (1) Package creation on an available platform was not a problem;
 (2) Package creation on a not available platform was a problem;
 (3) C code daily packages were not made public on ailesse due to (2).
 
 Given that your scripting solution didn't seem to adress (2), I found
 important to underline the issues I encountered with the daily package
 generation process on ailesse.

Got to start somewhere...  thats how most problems are tackled...  You
had a solution, not made public, I did not know about... I had to redo
effort.  Now I have something, but because it is not perfect must we
force the next guy to start from square one?

 Now, you can consider those issues as irrelevant - I've no problem with
 that. But then, it means that the new scripts will not make my task as a
 packager any simpler, making me wondering what purpose they'd then be
 supposed to fullfill.

Many projects do not attempt to package for all platforms but rely on
interested parties to care for that and report issues.  That's not the
same thing as being irrelevent in the purest sense of the word.  I would
like to see cross platform builds, but I don't want to see the project
continue as-is if that is the only reason.  Some of the distribution
packagers believe that packaging is not something a project should attempt
as I have 

Re: [crossfire] Client Snapshot Builds

2008-11-30 Thread Mark Wedel

  Quick notes (I've probably missed some - if I've missed anything important, 
follow up).

The list of supported platform is largely based on user input.  I've not had a 
mac, so that is based on someone providing patches (if necessary) and saying it 
works.  On going testing of those platforms does not happen by me, and maybe 
not 
at all.  At one point, I think the list was a lot longer, but then we started 
asking 'just when is the last time someone tried to compile on irix?'.

  For what its worth, I've moved for redhat linux to solaris (x86/amd64) so 
cover that base.

  The official release cycle is slow for a variety of reasons - off the top of 
my head:

- Broken release system - the tools/components are there, but changes have been 
made (addition/removal of file being most common) such that release/packaging 
fails.  Not hard to fix, but takes time.
- For official releases, desire to have stable components (no big check in the 
day before).  But folks also like to have a chance to fix bug and make other 
changes before the release, which sort of goes against stability (fixing bugs 
should make things more stable, but not always the case)
- Scheduling becomes a problem - between the packaging, uploading, and updating 
the page on sourceforge, it would be a couple hour process.  It may be the case 
that I have the time right now, but to let everyone have a chance to put in the 
patches, change, etc it means a couple weeks time, when I may not have time.
- The only real part of the official release was the source tar balls.  
Binaries 
may come later or not at all (I only did x86_64 rpms - never did anything more)

  On those notes, things to make releases happen more often:
- Folks other than me doing releases.
- Use standard release train model (release happens at this time - if change 
isn't done, need to wait for next train/release).
- More frequent releases such that missing a train isn't as big an issue.
- Do more frequent in between snapshots - if this uses same logic/scripts as 
official releases, it means that problems related to missing files get found 
sooner.

  A lot of that is easier said than done.  I've also said that I'll try to do 
releases more often, but finding time to do so is often hard.  And even on 
second point of release train model, I suspect that dates would be vague or in 
a 
range (something along the lines of 'Release schedule will be January, May and 
September').  That gives entire month to find the necessary time for a release, 
and not a specific day.

  One last note - with various free VM solutions out there, it now does make it 
easier to releases for multiple OS's or doing 32 bit releases on 64 bit linux 
(I 
know of the problem Lauwenmark speaks related to trying to do a 32 bit release 
on 64 bit linux - solution would be to have a 32 version installed in a VM)

  Now in terms of the 2.x branch:

For the client, given that lots of good stuff has gone into the 2.x branch and 
nothing really removed that breaks compatibility, I'd be tempted to take what 
is 
currently 2.x and make it the main trunk (I'd need to think about it more and 
see what changes have been done).  To prevent confusion, a long time back it 
was 
decided that the client would mirror server version - that normally worked 
pretty good when we were just doing incremental 1.x release, but doesn't work 
as 
good for 2.x.

  The reason for tying the versions together is it made support easier - just 
tell users to make sure their client was at least same version as server and 
things would work.  But also since that time, the protocol has stabilized a 
great deal.

  Now the idea of the 2.x client (and thus server) was that at time of release 
of 2.0, the client would fully support the 2.0 protocol and nothing more (all 
code related to deprecated commands would be removed.  All setup or other 
option 
related to protocol control would also be removed, such that at startup, the 
two 
  would already be speaking the same language.  Some setup commands related 
more 
to control/preferences would still be in place).  Such a client almost 
certainly 
would not run on a 1.x server, and a 1.x client would not work with a 2.x 
server.

  But that hasn't happened yet, and the current trunk client certainly does 
work 
on the 1.x servers, so maybe it does make sense to take what is in trunk and 
call it 1.x - it would get more folks using the features that are there.  It 
may 
just make sense to just work on trunk until such time when it really does 
become 
incompatible with 1.x clients.

  For the server, this is a trickier question - the trunk server clearly is not 
ready for official release - sure it will run, but work on balance and other 
areas need to be done.  One has to ask what do we get by releasing it more 
widely - I think we'd certainly get a fair number of bugs or questions related 
to known issues.  I'd be more tempted to do snapshot releases after certain 
major things are done but