A Xith fix / enhancement process dialog

All

 It is pretty obvious the we are in a place many other net based groups have faced...where are we going and how do we get there??  Group governace of something like Xith is difficult, perhaps a small set of...err...guidelines..might be able to establish a process we can all agree to to some degree.I have been thinking on this and have a few ideas to toss around in no particular order.

o Sub projects that are actively maintained by the original author, required the authros input before another user makes API breaking mods or radically alters behavior. This is between the author and who ever in making upgrades…I am thinking of the recent HIAL mods that involded William…very nice collaboration here…three cheers!!!

o If a user wishes to modify a sub project and cannot find or get the original author to particpate, they should propose changing it without authorization. While I strongly hold to the concept that authorship is deserving of great praise and respect, at the same time I feel if I have written something, and I don’t plan on improving/fixing it, I lose my rights to veto changes after some acceptable time frame. Similar to posting estate information in a newspaper…people have N days to make a claim on assets, if thay fail to do so they lose out… People come and go in these situations, current participation weighs more than older participation in my books

o Major API changes should be described in a small proposal, open for discussion for a week or two. People vote with their comments…if you fail to vote for your elected leaders you cannot complain about your taxes.!! If a resolution can be achieved a release can be rolled for people you wish to stay with previous API’s . The power of individual votes is up for interpretation, some people are very active and maybe should have heavier weighting on their vote, other haver professional vested interest (Croft!!) in stability…this deserves a heavy vote also.

O Major API changes need to be inserted along with at least a verbal commitment that you rebuilt and tested the demo programs. After years of programming I am still amazed at the sublte surprises I have coded into my fixes.

o Major API changes need to be demonstrated in a new example or a modified demo…absolute requirement…prove your changes actually work…

o MyFavoriteFunctionVersion10298 is just a rediculus naming scheme, If something has been significantly modified then the two rules above validate the work and now our examples all point to the more current work (thinking of textureloader versioning)

o I like depracated functions to identify older non supported stuff…I am not sure if this works with small changing development groups with only occasional releases… I would prefer to update things to the newer version and drop old versions, since the API changes were proposed and discussed an ealier posting then there will be a general feel if anyone is going to be advesly affected before the changes occur.

Just some thought…your milege may vary :stuck_out_tongue:

hmm… I totally agree with you.

But all this is already practiced. Except for the question, what to do with deprecated/dropped stuff. The SchreensotEngine stuff for an example. I’ve moved the methods and marked the old ones depreceted. Or the whole Canvas3D class which was totally misplaced in the scenegraph package and which I’ve moved into the render package and placed a Canvas3D class extending the original com.xith3d.render.Canvas3D into com.xith3d.render. This way the code is still backwards compatible and the deprecated com.xith3d.scenegraph.Canvas3D class can be removed in the future. The disadvantage is that we’ll have several duplicated classes, if we do it with more classes. But I think it will be necessary to have a clean API. I think we need to break the API once in a whole and provide a plan for people to get an easy upgrading process. e.g. the old com.xith3d package structure should renamed into org.xith3d. First of all this is the correct naming for the package(s) and this way we’ll have the change to move things from the tk to the core (or vise versa) without braking the API. The toolkit could additionally serve as some kind of beta platform and when things have proved they can flawlessly moved to the core.

And I’ve written about a development plan just yesterday. I’ll make and release it at the end of the comming week.

Even if there’s nothing new in you posting, it’s nice to hear, that we’re pulling on the same string. :wink:

Marvin

I do agree with you hawkwind on all your points. Now there’s just some things that you’re assuming in your talk :

  • Xith users have to be on the forum
  • Everyone (no matter who) can come and begin to lead Xith3D

The thing that bothered me for a long time with Xith3D is : how far can I go ? To code things in supplement of the original codebase is not a problem for any open-source project but things like major API changes and things like that worry me more… What can and can’t we do ? Can we do anything as long as they’re no major complain ?

Marvin, I’m waiting your development plan with impatience ;D