Sure, code it up and I will commit it in. Submit changes as a either the changed files or a patch to IssueZilla. Prefrably, keep to the Xith3D coding standards.
OK, this was the first time I have used IssueZilla. I think I botched the issue description but I did figure out how to submit the updated source code file as an attachment: https://xith3d.dev.java.net/issues/show_bug.cgi?id=102
OK, I added it in. I ended up just copy+pasting the code from the description since that was the only change. It was good to have the .java file though to see it in context, so thanks for doing that.
Please submit the other changes when ready, I will try to commit them within a week. If there’s some code people can experiment with, I generally make an “experimental” build when I am making changes so people can play with it before it goes into the core. You’re welcome to do the same if you think its worth it.
OK, I will probably work on Node.duplicateNode() next. I will probably not make an experimental build because no one is using the methods I am working on since they were not previously implemented.
Ok, I didn’t pick that up. Will there be a lot of changes to that class? I ask because generally file level author attributions are added for major additions/changes to the class in question so that the list is one of the major authors of the class to keep the list size down (you will notice my name appears only in files which I have majorly modified and not all I have modified). All contributors are listed on the Xith.org page and this is the official credits (and you will be recognised there). The dates should be updated, indeed. As for your last question, I’m not really sure as I didn’t write that myself. Essentially it’s a BSD licensed community project, so I’m not sure what difference it makes (legally there is no “Xith3D Project Group” entity that I know of). Do you have a specific concern?
OK. After duplicateNode what else is there to do for this feature?
I go by the policy that anyone who contributes any code whatsoever to a class gets an @author tag attribution. It cuts both ways in that it gives credit where credit is due and, in the case of less stellar work, does not assign blame to the original authors when the actual change might have been made by an unattributed individual. I will even go so far as to put an @author tag for “Unattributed” when an author is unknown or anonymous. Here is what I wrote about it a few years ago:
“All developers who modify source code, for any reason whatsoever, should place their javadoc “@author” tag in the file and update the version date. This both alerts the other developers that changes in behavior may be due to modifications by other developers, provides credit where credit is due, and allows the code owner to track down those with experience and knowledge with certain code sections that may need debugging or enhancement. The latter is especially important with legacy source code and projects with high developer turnover.” http://croftsoft.com/library/tutorials/version/
It worries me a bit. If that copyright statement is going to be included in the source code file, I would be comforted by an explicit statement that the “Xith3D Project Group” includes all contributors, including myself. This is to distinguish it from the alternative where all contributed code becomes the sole copyright of the originators.
Not real sure yet. It has been 2 or 3 weeks since I have looked at it.
I respect your coding practices and can see your reasoning behind them.
Xith3D however has a different policy on this matter. The @author tag is used to indicate major authors of a particular class. If you see someone’s name on the class it means they have done some major work on it (or indeed created it). Java.net provides us with an excellent set of CVS tools including a web based view and mailing list. Both can be used to determine what changes have been made - the web view is good for specific classes and the mailing list good for specific users (and to view the commits in a timeline). As far as giving credit goes, contributors (not just to Xith3D but to the Xith-TK as well) are listed on the Xith3D Credits page and I shall certianly add your name ot the list.
I believe that the most imporant thing about standards and practices is that whatever is chosen for a project, it must be applied consistantly otherwise there is no point having any at all. I am really greatful for your contributions to Xith3D and I am hoping that you will make further ones and do so following the standards that are in place for the project (NB. that I don’t mind what standards you use for a particular package of the Xith-TK, essentially those packages are “mini-projects” with their own standards, etc).
“All contributions are copyright their respective authors” is probably how I would word it. I’m not a laywer but my understanding is that unless you sign a statment that transfers your copyright to someone else what you do belongs to you anyway. So as far as that goes, most of Xith3D was created by Scott Shaver and David Yazel, with Yuri and myself being the biggest contributors since then. Just as for Linux, the copyright belongs to the invidividual authors of each patch, but at the end of the day it doens’t matter because it has an open source license which allows people to use it.
How would I go about getting that policy changed? I certainly feel that a new policy would encourage contributions and therefore the growth and usefulness of Xith.
You are welcome to create a thread on the topic to ask the community. Furthermore if you want method level attributions, feel free to put an @author tag on the method javadoc. As you can tell, I would rather just leave the standards as they are and just concentrate on other areas which need improvement more urgently
Yes, but potentials contributors may be pleased to see their names in a javadoc, even if they’ve just done a 2-lines bug fix that increase performance of 5%… (which is great… but maybe a bit exaggerated…)
If there’s a problem with some functionality with a class, people look at the author-tag, so they know whom to ask. (cause the one who’s written it, probably also understands it best)
So if croft has fully understood what the class does, then it might be wise to put his name there, too, so there’s one more person others can ask if there are problems. He will also have spend much effort in understanding the class completely, so it’s not something that’s given for free.
If he only understands parts of the class, I think it’s best to simply add his author tag to the methods he wrote or changed (if he want’s to have his author tag there) - So people don’t start mailing Yuri (or whoever wrote that class) and ask him stuff he doesn’t know about.
Fair point - I guess that’s sort of what I am getting at with my test, but rather than just “understanding” I suggest actual major changes - more of a responsibility for the class and inline with what I interpret “author” to mean. The first point of call for support will always be the forums, though the attribution could be used to flag specific people.
There might be a way method level @authors can be added in to the javadoc, I’ve never really looked into it but I think I remember reading it somewhere. Should I look further?
If I make the proposed logging changes for example (Issue #100), I’m hardly going to place my name in all Xith3D classes… Currently I have only placed my @author on classes which I have majorly changed or created from scratch - anyone wanting to see what my major contributions are can see from this. Someone wanting to see my total contributions can look at the CVS mailing list archives that I linked to previously.
I’m certainly all for encouraging Xith3D contributions I personally would rather smaller changes not be noted in class level @author tags but if everyone else would prefer that I’m happy to change the policy.
I would like to see the policy changed but method level @author tags are OK with me as a 2nd-best option. Please add my @author tag to the method I modified.