Its my code - and maybe I don't want my code in other peoples repos where they can do strange stuff to it. I worked extremely long and hard on it. So I want control of it. Simple as that.
Fair enough.
But I've also worked long and hard, so have many other people at Linux, OSG, JSBSim, you name it.
The simple fact is that if all these people would follow your argument, you would not have JSBSim (among other things) or Nasal or canvas - upon which your current code builds. From that follows that your position can
not become a general maxim (and become an ethically acceptable position in the Kantian sense)
unless you consequently do not use JSBSim or other free software/libs in the future.
Also I made no contradictions.
You haven't seen them - but you sure are making them.
but we ran it like a closed source - no contributions from outside members unless we specifically test and integrate all changes - no support for users downloading from ANYWHERE else but our repo - no advice on how to change code how they want or adapt it - not allowing code at all that doesn't follow the strict guidelines that we set up, its extremely locked down. For this I was called dictator - but it is a good dictator as you can see from the result.
I'm not sure you even understand how OpenSource is run - you seem to confuse it with FGMembers where everyone was supposed to commit to everything.
Do I offer support for Shuttle versions obtained from anywhere but FGAddon or my devel repo? No, I sure don't - that'd be sllly because I can't know what 3rd parties do with the code.
Do I give advice how to change code? Only in cases where I am convinced that the other person has studied the problem and has a sound case to make (and would, after testing, commit the change in some form).
Do I allow any random code to be committed to either FGAddon or my devel repo? Of course not, I have an idea of efficient code structure and a purpose for the project and people don't get to mess with it.
Have I been called a dictator? Plenty of times (we should have a dictator-afternoon get-together) - the whole FG team has been identified with Nazi leadership (all those Germans from Edinburgh and Minnesota...) - pretty much every attempt to protect the repository against random inefficient code bits someone thinks cool is met with the charge.
So - in what way do you run a closed source model please?
FG has been like this since more than a decade. Closed source means non-disclosure agreements with your paid coders, it means people get coding on stuff whether they like it or not because they get paid, it means distributing binaries only,...
***
But do I mind people forking stuff and working with my code on their own repository? No, not really. See - it's about information flow. Someone else thinks 'thermal management - how to implement that? Perhaps remembers that the Shuttle has an implementation - takes a look into the code - because it's... open. Gets an idea how this can be done, perhaps adapts the code, perhaps re-does it in JSBSim. In the course of doing so, finds a flaw and sends me a message - we both win.
I see some cool thing implemented in an aircraft, so I take a look at the code to study how it's done, think about how I would implement it in my project.
Some may also tinker with silly things - it's their playground, doesn't have to bother me - as long as they're honest about what they're doing when they re-distribute.
Do I mind people just taking stuff, selling my work as theirs and so on? Yeah - but they do that with my copyrighted stuff just as well unfortunately, and your chance of making a successful legal case in Russia for a few hundred Euro damage are... slim. The fact is that people who believe in just taking do that and find a justification later.
So basically the only way to actually control your code is to close it and never let anyone see the source - but that locks down the information flow just as well. Which - as I said above - works fine if you're the only closed guy in an open environment, but it doesn't scale - once everyone does it, we all loose.