Recently a code of conduct for Linux kernel developers was adopted. The full text is also included below (except for headings), interspersed with my comments and with emphasis added. In the interest of (hypothetical) brevity, I am focusing on what I perceive to be the major issues with it, therefore I am refraining from commenting on at least a few lesser issues.
I don’t know how this document will be enforced of course. That is precisely the problem. Some leeway is understandable. This is just absurd. It is not just vague, but opens up more avenues for abuse than if there was no document at all.
It is relevant context that this document – except for some cosmetic changes relating to where reports should be made – is based word for word on the contributor covenant, a document written by Coraline Ada Ehmke, who as you can see on that page is a self-proclaimed “Social Justice Warrior”. This screams of a political power grab.
Let’s go through the Linux version:
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone,
Stop, stop, stop. This sounds innocent enough at first, but who defines harassment? The Cambridge Dictionary includes the following definition: (emphasis added)
behaviour that annoys or upsets someone
If a maintainer says: “we appreciate your considerable investment in this code, but we are sad to say we will not include it because of X, Y and Z”, would it perhaps be considered annoying by the person receiving that feedback to see all their sweat and tears go to waste? If this aspect of the code of conduct is ridiculous enough to never be enforced, why is it included in the first place?
So: we’re not even a full sentence in, and we can already interpret the document as follows:
As a Linux kernel maintainer, you pledge to never reject anyone’s code, if you suspect it might annoy them.
It gets worse.
The sentence continues:
regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
I thought the word everyone was pretty precise and inclusive. What is this doing here besides making an ideological statement?
Next come some “recommendations” of how to behave:
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
Let me guess – prefixing a mail to a group of people with “guys” is not “inclusive”? Basically: type like a bureaucrat, or we’ll come after you for not being inclusive. But if you do type like a bureaucrat, we’ll come after you for not being welcoming!
* Being respectful of differing viewpoints and experiences
Respect is earned.
* Gracefully accepting constructive criticism
How about just receiving constructive criticism? It may or may not be accepted.
* Focusing on what is best for the community
Who decides what is best?
* Showing empathy towards other community members
So if you have empathy but – according to someone else – don’t show it, that doesn’t count? A lot of the Linux kernel communication goes through e-mail, not exactly the best medium to show empathy. And what does that mean anyway? Do what you feel is right, but in a nicer way? Or do what you feel is wrong, just so that someone else might avoid taking offense?
Examples of unacceptable behavior by participants include:
* 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
Who defines what an attack is?
See comment at the top regarding 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
Who decides what is inappropriate?
Maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
So here’s where attack and inappropriate get defined I suppose. Isn’t this what is really setting the stage here? How about if the entire code of conduct is replaced with this single sentence instead of all this mumbo-jumbo?
Maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Never mind, here the “appropriate”, “fair” and “clarifying” part go out the window as well, as does the code of conduct itself. Now we’re talking about “other behaviors”! So now you can get into trouble based on the particular mood of a particular maintainer on a particular day.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
More mumbo-jumbo. This does not put any effective limits on what “representing” means. We might as well assume that anything you do in your life could be considered “representation” if it somehow comes into contact with a Linux kernel developer.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Technical Advisory Board (TAB) at <tab@lists.linux-foundation.org>. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The TAB is obligated to maintain confidentiality with regard to the reporter of an incident.
I.e.: you can get accused by someone who wants to be anonymous, without having the chance to defend yourself against that person or persons. Otherwise the TAB would be breaching their obligation to maintain confidentiality.
Further details of specific enforcement policies may be posted separately.
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.
This Code of Conduct is adapted from the Contributor Covenant, version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
Recap:
- What “representing” the project or community means can be defined at any time, to mean anything.
- “Inappropriate” behavior can be defined at any time, to mean anything. At a miminum, annoying someone on a single occasion qualifies.
- You can get accused anonymously, without a chance to confront that person.
- You can get banned for “inappropriate” behavior while “representing” the project or community.
Ergo:
If you, as a Linux kernel developer, anywhere in the world, at any time, in any context, whether you realize it or not, behave in some way that, directly or indirectly, results, at any time in the future, in some anonymous person, justified or not, claiming to feel at least slightly uncomfortable, be warned that you may be permanently banned from contributing to the Linux kernel.
Leave a Reply