I have had two packages merged, which I guess that makes me technically a contributor, so here is my takes on the issue.
In my opinion Codes of Conduct (or CoCs in short) are one of the worst things that have happened in recent years to Free and Open Source projects (hold that though, I will address it soon enough), and the Contributor Covenant (CC in short) is the worst offender. I will explain shortly why this is, but please allow me to elaborate first. There is no problem of harassment in FLOSS, there is a problem of socially awkward nerds in FLOSS. Harassment presupposes malice, i.e. that the offending person is intentionally being abusive. If you have never said anything that made you want to vanish into the ground the moment it came out of your mouth you are not human. Some people will slip up more often than others, and let's face it: the people who are more likely to slip up are also more often the ones who are good at programming. Why is it this way? I don't know, I'm not a psychologist or anthropologist, I just need to know that this is the way things are. Now here is the important part: for an offensive act to be committed it takes two sides, the offender and the offended. Part of social competence is knowing not to slip up, but part of it is also knowing to just let it slide when someone else slips up. Again, I'm not talking just about online discourse, but social interaction in general. When someone says something stupid just ignore that person, and if it keeps happening try to correct them in a friendly manner. This is how we grow as humans. This leads me into why the CC is a harmful CoC. The CC presupposes malice by default, more than half of its content is focused on punitive measures, not on helping each other. In contrast, the GNU Kind Communications Guidelines (GKCG in short) explicitly promotes a cooperative two-sided perspective: > Please assume other participants are posting in good faith, even if you > disagree with what they say. When people present code or text as their own > work, please accept it as their work. Please do not criticize people for > wrongs that you only speculate they may have done; stick to what they > actually say and actually do. > > Please do not take a harsh tone towards other participants, and especially > don't make personal attacks against them. Go out of your way to show that you > are criticizing a statement, not a person. > > Please recognize that criticism of your statements is not a personal attack > on you. If you feel that someone has attacked you, or offended your personal > dignity, please don't “hit back” with another personal attack. That tends to > start a vicious circle of escalating verbal aggression. A private response, > politely stating your feelings as feelings, and asking for peace, may calm > things down. Write it, set it aside for hours or a day, revise it to remove > the anger, and only then send it. There is nothing like this in the CC, but there is this: > Instances of abusive, harassing, or otherwise unacceptable behavior may be > reported by contacting the project team at [INSERT EMAIL ADDRESS]. All > complaints will be reviewed and investigated and will result in a response > that is deemed necessary and appropriate to the circumstances. The project > team is obligated to maintain confidentiality with regard to the reporter of > an incident. Further details of specific enforcement policies may be posted > separately. > > Project maintainers who do not follow or enforce the Code of Conduct in good > faith may face temporary or permanent repercussions as determined by other > members of the project’s leadership. The CC is claiming to foster "an open and welcoming environment" while at the same time holding a gun to every maintainer's head. The accused is not even allowed to know what the accusation is about (confidentiality clause), so how are they supposed to know what they did was wrong? There is no clause that allows the accused to defend their position, only punishment is defined. This applies even to the maintainer, so if they maintainer wants to protect an unjustly accused person, the maintainer will be on the chopping block. To make matters worse, the CC never defines what constitutes offensive behaviour. Take a look at the following list: > * The use of sexualized language or imagery and unwelcome sexual attention or > advances > * Trolling, insulting/derogatory comments, and personal or political attacks > * Public or private harassment > * Publishing others’ private information, such as a physical or electronic > address, without explicit permission > * Other conduct which could reasonably be considered inappropriate in a > professional setting The fourth point is clear, but what exactly constitutes any of the remaining four? Is "Wow, thank you so much, I could kiss you!" considered "unwelcome sexual attention" or just an exaggerated expression of joy? Is overhearing people talking about "dongles" and "forking repos" considered unwanted sexual attention? If I wanted I could consider it the former and pull the trigger metaphorically. I am asking because this is not a hypothetical question, people have been loosing their jobs over these issues for real. Do you think this makes for a healthy community? The GKCG does not even attempt to define what qualifies as unacceptable, because unless you pay a lawyer to write a tens of pages long document which no one will read, you will never have a sufficient definition. Truly money well spent. As for the last point, if you really want to remove anything that would be inappropriate in a professional setting, you have to go all out. No "I could kiss you", but also no informalities, no emotion, and the project maintainer will have to sign all his mails not with "Ludo'" or "Ludovic", but as "Mr Courtès", RMS becomes "Dr. Stallman", Guix becomes "The GNU Guix project", no Hacker culture jokes and quips the manual, and so on. If this what you want? As a closing thought, I wish to address my opening statement that CoCs are one of the worst things to happen in recent years to FLOSS. The argument with which CoCs are "sold" to FLOSS projects is that there is problem of harassment in the community which prevents people from contributing. And yet I have to see any project where contributions have improved as a result of adopting a CoC, where people who were previously harassed became contributors. In fact, I have yet to see any actual harassment, and not just socially awkward nerds being socially awkward. On the other hand, I have seen enough examples of existing long-time contributors being expelled from projects and being harassed, especially by proponents of the CC. The CC's own author is one of the worst offenders of the CC's own terms, going after people's private social media accounts and quote-mining them to demand their expulsion or even extort money. Yet none of those people end up contributing to the projects they disrupt. Is the damage you invite really worth it? Guix is too important of a project, functional package management is the only proper solution to package management. I believe there are interest groups of proprietary software companies who would rather want projects like Flatpak succeed, which are more applicable to proprietary software. Please don't let them hold a gun to every contributor's head by inviting trouble into the project. You have people in this very thread who are afraid of contributing, and even I was considering leaving my packages just sitting on my local hard drive rather than submitting them upstream, but as the GKCG says: "Please assume other participants are posting in good faith, even if you disagree with what they say." PS: I agree that there is no point in having both the CC and the GKCG at the same time