As I mentioned above, some people are bypassing the Git commit histories by simply copying and pasting code and not cherry picking original commits.
Those people willl also remove any remarks about copyright in the code, so what exactly is your point?
As any psychologist can tell you, anyone is driven by a combination of
- fun, you do something simply because it is fun, you like doing it
- reward, you do something because of the reward attached to it, whether it be money or something else
- status, you do something because it makes people recognise you, look up to you
Assuming none of the contributors makes money of it (history has shown that is a possibility), it is either done for fun or for status. And the only reason for wanting to stick your name to everyhing is status. "look at me, I did this". For the same reason these people are angry when their name is removed, because that means people can no longer see they did it, which reduces their status. If the desire for status is stronger than the desire to have fun, it is driven by "ego".
10 years ago it was difficult to get PR's accepted into PLi and that is one of the major reasons why OpenViX and and OE-Alliance got created.
Even today stuff gets talked to death before getting acted on (if at all), and people just get bored and do their own thing in their own distro.
All part of the fact we're not a team, we're a group of "Einzelgängers".
There is no common design, there is no common architecture, there is no plan, there is no single goal to work to. Even a simple set of coding guidelines is missing, see the lenghty PEP8 discussion.
As a result, everyone does what they like (and skip what they don't), without it being part of a bigger plan. By themselfs, in their "attic room", and dumps it on the table when it's done, with a "take it or leave it" label attachted to it.
Because whatever is made will be a suprise to most people, and the first time they see it, that is when the discussion starts (you forgot this, did you think of this, what if this, etc...).
And because of the lack of a common direction, every one has their own idea's of how "they" would implement it. And for some it is difficult to accept their their approach might not be a good one (that is true for both the coder and the commenters).
That will only change if we decide to
- move aside our personal intrests and work towards a common goal
- actually define this common goal, in enough detail so people can work on it
- accept everyone has their own style and skill level, and might do things differently than you
- accept that you don't know everything, and take on bord feedback from others
I tried to push and pull (even called it flogging the dead horse) over the years, but as I'm not a Python or C developer, my efforts remained fairly high-level, and it subsequently failed.