John Cater wrote: > > Fellow Developers, > > I am a little concerned about the way we use our cvs tree etc at the > moment. It seems as if the two main activities are taking place on the > one branch. Or perhaps I don't understand how things are supposed to > work. > > Firstly, the repository is being used to fix bugs in the last release - > fine and good. But it is also being used to "test" new features (an > example is the race/class split). Is this the best way? > Is there a way of just getting a patch that handles the bugs in 0.95.7 > without the new features? In theory, CVS should not be a testing ground - stuff put into CVS should be tested/stable, but balancing is another issue. While having a 'stable' and 'bleeding edge' release are nice idea, as Peter mentioned, there is some issue of trying to keep it up to date. I personally don't really mind that idea, as long as it doesn't create any more work for me or other developers. What this would entail is somewhere volunteering to maintain the older & stable release. that person would watch checkins to the latest CVS repository, and see what things are actually bug fixes that should be backported, or other features that have proven stable and thus should be in the stable version. The other problem is how many people will use each of these two releases. If no one uses the latest CVS snapshot (or a very small sample size), then you'll never really find out if the stuff checked into CVS is balanced and stable. At the same time, if few people use the stable release, then there is a lot of effort to produce these that few people use. > > As for new features etc, I was looking throught the TODO file. I think > that it contains some very attractive ideas for future > directions/features in crossfire. However, I think some of them have > already been dealt with, such as the skills update etc, I'd love to > update the file, but I'm just not sure what's what. If you have questions, ask. I always try to answer them. > > Also, the TODO file contains some of the collected "past wisdom" for > things like player starting location / ressurection location that has > been discussed extensively before on the list or how objects were going > to be "redone" I do notice that the TODO has some out of date entries. The area about client issues that should be removed when we go to true client/server are all pretty much irrelevant or items that should be moved to a client TODO list. > > Now I'm a bug fixing kind of guy myself and I'd love to hunt some down > in a relatively static tree. I think also think it would be good if > someone like Jan went through the TODO list and made some kind of > priority ranking of the new features for the next major version. Note you can always do a cvs checkout (or base off of 95.7 for example), and fix the bugs in that, then integrate into CVS tree. For some bugs, the re-integration may be very easy - other ones may be large scale. > > Actually what I would like is a "feature freeze" of the current CVS, > leaving it only open to bug fixes with the focus on a "stable" 0.96 > Could we have another branch for 0.97 to which new features (from the > TODO list) can be added? Andreas mentioned he had is TODO list of things he wants to put into. I have my own, and I'm sure each person has their own TODO list in terms of priority. It may be a good idea share these lists (and priorities) so everyone can see what is in store for future development. My fairly short list: 1) Add metaserver support to the server. Originally, this information will be available via web or perhaps other interfaces, but adding support in the client to be able to try and connect to these servers will be needed - that may actually be the harder part (having client connect to the metaserver, present the list to the player to choose one (or none of the above), would actually be a bit of client code. 2) Re-do object structure. Mainly to remove overloading names and to hopefully makes things more general. But this is a major undertaking - my latest idea on this would be to implement the new structures, but have the loader by able to handle the existing form, and updating the arch's later on. This would also hopefully make the .arc files more readable, as the fields will actually be named for what they do, and not what happened to be left over like many of the objects use. 3) Map tiling (from TODO). I want to get #2 done before doing this. Somewhere in #2 and #3 would be a rules/engine split. Generic object & map handling would be in one directory, while things specific to the type of game (fantasy, science fiction, etc) would be in another. So while right now exits are handled in the server directory, that would really be in the engine directory (since all systems would use exits), but generation of some items may be in the rules. The current directory structure (whats in common and server) doesn't make a lot of sense, and even files within the directories don't always make sense (the 'skills command for example is dispatched in c_wiz.c, which certainly wasn't where I expected it). Generally speaking, the bulk of crossfire code is fairly unchanged from 7-8 years ago, so there are lots of artifacts left with that, and if we want to continue going into the future, I think this really needs to be cleaned up.