Another pitfall I see is what I call 'claiming with neglect' where a user will claim something then let no one else touch it, usually in a pull request that someone put a bunch of time into. But then not do what they said they were going to do. Two years later the pull request dies on the vine and nothing changes. The person who made the request usually just wanders off due to lack of feedback.
Another is letting pull requests sit for years. Just set a max timeframe. If it does not go in that time close it. Do leave the person hanging. I get that happens on a dead project. But on a project that is obviously active? Give that pull request some love. Close it, tweak it, or merge it (something!).
My naive hope is that a code of conduct could be crafted with defensive measures to at least mitigate such problems, but that is probably hopeless in the face of bad actors.
I have some links bookmarked:
https://github.com/nodejs/TSC/issues/325
That directly followed a failed attempt at enforcement that led to a fork:
https://web.archive.org/web/20170821212745/https://github.co...
This article covers the whole thing:
https://theoutline.com/post/2206/the-node-js-code-of-conduct...
An HN discussion:
https://news.ycombinator.com/item?id=15101668
> My naive hope is that a code of conduct could be crafted with defensive measures to at least mitigate such problems
The problem isn't the letter of the law, it's that the rules don't seem to apply to certain groups of people.
But don't you think these were (at least in part) only the visible outbreaks of conflicts that had already been simmering for a long time? If that is so, introducing an explicit governance/CoC may have been a long overdue step that ended up breaking some crockery, but only because it wasn't enacted early enough...
Codes of conduct are great when the etiquette is ambiguous. Open source projects are not one of those.
When the users are in the wrong, you should be able to kick them out uncontroversially. And when the maintainers are in the wrong... They tend to ignore their own CoC anyway. Speaking from experience, I've tried contributing to a particular PSF project in the past, adding a feature to support a use case the maintainer did not like (supporting tab indent option in a code formatter), which was ignored and closed; and when I pointed out to the maintainer that his behaviour was in breach of the CoC, that too was ignored. What are you gonna do? In the end I had to fork the project.
* Make governance explicit: Mostly backfires.
* Have and enforce a code of conduct: Mostly backfires.
All the recent dramas were entirely caused by having explicit governance and code of conduct bylaws, which would not have happened (and didn't happen) without these before. It only encourages public fights over these.