On the Proposed PHP Code of Conduct

Recently, Anthony Ferrara opened an RFC for PHP internals to adopt and enforce a code of conduct. Even leaving aside for the moment whether this is an appropriate use of the RFC system, the RFC generated a lot of discussion on the mailing list, in which I participated at great length, and for which I was hailed as abusive by at least one person in favor of the RFC (a great example of a kafkatrap).

To restate what I said on the mailing list, my position on the RFC is not merely “opposed”, but “reject entirely as unsalvageable” (though I did make some attempts at salvage in case it goes through). I continue to stand by everything I said there, and in other channels, regarding the proposed Code of Conduct.

Normally, if you had not heard about this particular discussion, I would say you were lucky, and probably the happier for it. In this case, I have to say that you should be paying close attention. The Code of Conduct as presented enables its enforcers to stand in judgment of every aspect of your public, private, professional, and political expression. I understand that’s a bold assertion; I will attempt to support it below.

The Contributor Covenant version on which the RFC is based is authored and maintained by intersectional technologist and transgender feminist Coraline Ada Ehmke. Ehmke believes that open source is a political movement:

From the onset open source has been inherently a political movement, a reaction against the socially damaging, anti-competitive motivations of governments and corporations. It began as a campaign for social liberty and digital freedom, a celebration of the success of communal efforts in the face of rampant capitalism. What is this if not a political movement?

Why Hackers Must Welcome Social Justice Advocates

Whether or not this description of open source is accurate, it is true that Ehmke thinks of open source as a political arena. As such, one must read the Contributor Covenant as a political document, with political means and political ends. Specifically, it is a tool for Social Justice.

As a tool for Social Justice, it recognizes no boundaries between project, person, and politics. This attitude is written into the Contributor Covenant with the text, “This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.” So, when is a project participant not representing the project? The answer appears to be “never.”

That is, a project participant is always representative of the project. We can see one example of this from the “Opalgate” incident. In reference to a Twitter conversation where Opal is not the subject, Ehmke opens an Opal project issue, and then attempts (with a Social Justice mob of backers) to intimidate the project managers into removing one of the Twitter conversants from the project because of his non-project-related speech.

This is Social Justice in action. Remember, it is the author of the Contributor Covenant acting this way. To look at this incident, and simultaneously opine that the Covenant as a tool of Social Justice is somehow not political, or that it does not intend to police speech unrelated to the project, reveals that opinion as obviously incorrect. This kind of behavior is not “abuse” of the Contributor Covenant; it is the intended application of the Covenant. The Covenant is designed specifically to enable that behavior under cover of “safety” and “welcoming” and “respect”.

But “safety” and “welcoming” and “respect” are the primary goals of the Covenant, aren’t they? I assert they are the curtain behind which the true goal is veiled: power over persons who are not sufficiently supportive of Social Justice. I think is it appropriate to mention the motte and bailey doctrine here:

[The doctrine is compared] to a form of medieval castle, where there would be a field of desirable and economically productive land called a bailey, and a big ugly tower in the middle called the motte. If you were a medieval lord, you would do most of your economic activity in the bailey and get rich. If an enemy approached, you would retreat to the motte and rain down arrows on the enemy until they gave up and went away. Then you would go back to the bailey, which is the place you wanted to be all along.

So the motte-and-bailey doctrine is when you make a bold, controversial statement. Then when somebody challenges you, you claim you were just making an obvious, uncontroversial statement, so you are clearly right and they are silly for challenging you. Then when the argument is over you go back to making the bold, controversial statement.

Sentiments like “safety” and “welcoming” and “respect” are the motte of the Covenant: the defensible tower from which challengers are ridiculed. (“It’s nice! Who doesn’t want to be nice? Why do you think we should enable harassers and abusers? Why do you want to exclude women, LGBTQ, etc?”) But the real purpose of the Covenant is to enable work in the bailey: that is, to gain power over the political enemies of Social Justice, by using project membership as a form of leverage over them.

We saw that bailey-work in the Opalgate example above. As another example of attempting to use leverage, we have the following incident in the Awesome-Django project, run by Roberto Rosario. Rosario turned down a pull request, and thereafter received this demand to adopt and enforce the Contributor Convenant. (Interestingly enough, Github deleted the issue entirely, as far as I know without comment, and without notification to Rosario; the archive.is link appears to be the only evidence of the issue’s existence.)

After Rosario declined, the issue-opener ended the conversation with an attempt at intimidation: “You are a member of the Django Software Foundation and are supposed to be setting the example. I will be forwarding the content of this issue to the Chair to evaluate your continued presence in the DSF.”

Thus, the issue-opener began in the motte (“welcoming” and “respect”) but ended on the bailey (threats to leverage refusal of the Covenant into rejection from a project). Again, this is not an abuse of the Covenant. As a tool of Social Justice, that is its author’s intended purpose: to give cover for threats and intimdation against those who do not support the author’s politics.

Since threats and intimidation are the end-game, consider what else might be threatened by being insufficiently supportive of Social Justice in general, and the Contributor Covenant in specific. Any project leader, any conference organizer, any publisher, or any employer, might be approached regarding your politically-incorrect opinions as expressed on any non-project forum or subject, and be threatened and intimidated into distancing themselves from you. This leads to ejection from projects, denial or disinvitation from conferences, rejection of manuscripts, and refusal-to-hire or outright firing, based on political (not professional) concerns.

This is not the kind of behavior found in a free and open society. It is instead the behavior of a society that is totalitarian, even fascist-with-a-smiley-face. You are not allowed to disagree with the Social Justice proponents, in any capacity. You are not even allowed to “not care” – you will be made to care.

As such, I assert that the Contributor Covenant, and any other codes of conduct originating in Social Justice, are to be opposed out of hand, both in PHP, and in any other place they are suggested.


While reading in preparation for writing this piece, I came across a lot of information that didn’t really fit, but might still be useful. Here’s a partial list of links.

Social Justice In Action

Discussions About Codes of Conduct

Alternative Codes of Conduct

Are you stuck with a legacy PHP application? You should buy my book because it gives you a step-by-step guide to improving your codebase, all while keeping it running the whole time.

45 thoughts on “On the Proposed PHP Code of Conduct

  1. This articulates why I’m against so many “social justice” laws. They aren’t about the sugar coated mottes, but instead about gaining power of others. The greatest social justice is free association. You are welcome to participate. You are welcome to not participate. Very well articulated!

  2. Though I doubt they all have this intent, it sounds a good deal like the Church of Scientology’s methods of destroying their enemies. Not good.

  3. As a note on Rosario’s issue–he reported it to GitHub and specifically asked that it be nuked. (I read the issue live during the time between that screenshot and the disappearance.)

    • No he didn’t. He was public on his Twitter account about the expected administrator intervention of deleting the issue.

    • No he did not specifically ask that it be nuked. He reported the account and Github deleted the submitted issue, which they don’t do when accounts are deleted.


      I reported the account as soon as I locked the issue. The account deletion is typical, the issue deletion is not…

      There are Github employees that have made their support for SJW narrative clear, not really surprised of the issue deletion.

  4. Seems very well researched, though I didn’t follow any links before commenting, and excellently expressed. I appreciate your contribution to the discussion.

  5. almost the only thing more boring than social justice warriors instructing people who don’t care on how to behave is people mis-using the word “fascist” as if it was an expletive

  6. I’m concerned that your own attitude is upsetting other devs. It’s easy to say you don’t get paid for the work, but your also not getting a bonus for upsetting anyone.

    I Do also wonder why you want people to reserve the right to upset people away from the PHP project. Why is it so important to you to reserve some time to upset whoever you like?

    If people get upset and you don’t mean to upset them; I understand it can seem like less effort to just ignore them, assume they have a problem; but if you can solve that problem, even just when dealing with them, and bring more people in, what is the harm?

    • There’s not a niceness problem. You’re making that up to gain a political bludgeoning tool.

      Let’s try this:

      “Your mere presense insults me. Please, step down of any group you code because I feel deeply triggered by the implications drawn from your comments.”

      Imagine it’s directed at you.
      Imagine the only way to solve this was for you to never speak about your social justice ideals in any medium, and apology for things you believe in.
      Imagine it was all because someone with SJ ideals harassed someone, so you MIGHT harass and disturb people in the project too.

      “We should be more inclusive, and if that means excluding SJ types then it’s a valid sacrifice.”

      I shouldn’t be silently contributing your society… “or else”. But this seems what your ilk wants. To have dissenters shut up and keep working.

  7. This rejection of a code of conduct is an explicit attack against the perfectly reasonable idea that there might be rules in a specific community. He extends the ridiculous notion that all communities operate under a kind of anarchistic laissez faire attitude toward community conduct, anything other than that is an Orwellian breach of free expression.

    Aside from being a ridiculous, absolutist, and polarizing viewpoint, the author also predicates this argument mainly through the use of a loose analogy, with the fallacious idea that analogously compared phenomena operate in exactly the same way as each other. Even worse, the point of this maneuver is to paint his perceived opponents as cowardly and manipulative through a tenuous use of negative feudalistic imagery.

    Proceeding from here he thinks it is important to say that there is no “hate speech exception” to the First Amendment. This is true but in this situation he intends to make the leap to say that not only does the First Amendment protect speech (true) it protects an individuals capacity to use any platform in which to publish and disseminate their opinions, and to have immunity to negative repercussions of behavior they are responsible for outside of a community in regards to that community’s prerequisite standards for participation (these latter things are *demonstrably* not true, throughout the entire history of the United States).

    • Poppycock. Or in other words, nonsense. And mostly gobbledegook. The number of logical fallacies in that screed is amazing.

    • That was a lot of words to say “I don’t like this”. Your last paragraph is hilariously inaccurate. Nowhere did he say you should be able to say what you want, anywhere free of disagreement. What he did say is that you should be free to say what you want off the clock without fear of someone attacking your livelihood because they disagree with you.

      You’re just a verbose idiot trying to hide his stupidity in a lot of extraneous words.

      • The personal insults at the end shows lol’s conduct violates the rules he / she proposes we all follow.

        This make sense, as these Codes of Conduct are only meant to be deployed against unbelievers while protecting the right of believers to abuse.

    • Rejecting a badly worded code of conduct, and rejecting a person who self-proclaims as a savior of the world with corruption and megalomania mixed into their creed, doesn’t make anyone an opposer of a polite or civilized social structure any more than it makes them an opposer of world peace when they reject religions who have the hubris to represent the same.
      Your mind and personality are corrupt no matter what you say you represent, and this filth emanates from your words and the way you speak which is apparent to anyone who observes your conduct, and it emanates from how your code of conduct was worded to use a moral smokescreen to cover up your filthy ill-intentioned ambitions. It is the responsibility of everyone to reject hypocrites and those filth who use moral high-standing as a cover for their evil, and you are experiencing it first-hand now.

  8. Try reading this


    it’s called “Code of Merit”

    Rosario was attacked back in 2014 by the so called “Social Justice Warriors”, he is defamed and demonized through lie and smear with “violating Code of conducts”. He got banned and even “fired” from his position for having not toeing the line and “not in the right side of history”

    i think coding have nothing to do with politcs, and shouldnt be in it. The recent infestation of the so called “SJW” is ridiculous, from changing github’s CoC, to banning projects with “bad words”

    it’s ridiculous, dont fall for it. Reject them if possible

  9. Feminists are not coming for your jobs. No, really, they are not. No, they are not.

    Oh yes they are.

    Modern Feminism Is Cancer and this is one way the cancer spreads. The CoC is a carcinogenic social virus.

    To the extent anyone agrees that regardless of their progressive intentions as a young adult they may grow old enough to become the villains (the “racist” uncle), then you should be against these sorts of CoCs, because they come for your jobs and to take away your livelihood.

    It is a guild that insists on swearing allegiance to some ugly king.

    • Thanks for the propagandist reply, obviously the ability to code has made you a social expert as well.

      • All you do is insult people in the comments.

        Why you try applying a little conduct for yourself.

        Oh, that’s right – rules for thee, but not for me…

      • Unfortunately, it seems your supposed social expertise has not bestowed upon you the ability to code.

        So let’s leave the programming to the programmers and the whining to the whiners shall we?

  10. Here’s my alternate CoC. It’s free for any use
    Code of Conduct for Danby’s Open Source Project
    1) show us the code.
    2) you are not required to tell us anything about your race, ethnicity, religion, sexuality, gender identity, pastimes, hobbies, likes, dislikes, turn-ons, family or even your real name in order to contribute to this project. If you bring it up, it is presumed that you want such things to be commented on. Not all comments will be positive.
    3) you are free to take offense at anything or everything anybody says. Everyone else is free to ignore you, and probably should.
    4) We believe in Free software, Free Speech, and Free Beer.
    5) We are not here to welcome you. We are here to write good code. If you can write, document, or test code well you are most welcome. If not, your opinion is not required.
    6) If you do not like how this project is run, or the people who run it. you are free to fork the code. Good Luck.

    • It’s possible that Saletan is being ironic, but I think
      it’s much more likely that he means exactly what
      he says.

  11. “…is not arguing for purging political enemies of PC/SJ. He’s arguing against it.”

    I’ve determined lately that to an alarming number of people, the following three actions are equivalent:

    1. criticizing $foo but being generally in favor of $foo
    2. being against $foo
    3. “allying” yourself with the “enemies” of $foo

    To people who actually grew some critical thinking skills, this is ridiculous.

    The problem is that to the people above who think 1 === 2 === 3, there *is* no reasoning with them – the reasoning doesn’t work. I mean after all, they’ve already confused those three statements as tautological…

  12. These seem legal minefields.

    Just got to look at what happened to todogroup’s Open Code of Conduct, large companies (ie that have access to lawyers) from Google, Yahoo, GitHub, Facebook and Twitter wouldn’t go near it with a 10 foot barge pole.

  13. Paul,
    I appreciate your post and for your willingness to speak out on this RFC.
    When I work on a project, offer a code contribution or speak on PHP I do not bring my non-code, personal ideologies with me.
    However, my social media and blog are not exclusively about PHP and technology, they include personal opinions, some of which will be disliked, and possibly even found to be offensive to some people.
    Does this mean that I have to choose between having free speech or being a contributing member of the PHP community?
    In my opinion it is about mutual respect. I won’t bring my non-code, personal opinions into a code conversation, and you don’t judge the merit of my coding contributions for having non-code, personal opinions that you don’t agree with.
    It seems simple enough to me.
    Am I missing something here?

    • What you’re missing is that proponents of Social Justice based codes of conduct *want* to be able to judge you on non-code aspects, in any sphere of your life. (Though I suspect you already know that. ;-))

  14. I’ve been doing a lot of reading regarding the CoC. The thing that sticks out to me, and doesn’t seem to be a focal point in the discussion, is the fact that the internals team is so dysfunctional that this topic needs to be addressed.

    As someone that has been using PHP for years as a tool to get things done, it doesn’t make me feel very confident about the team/people making the decisions that will drive the future of PHP.

    A driving force behind me looking at alternative web dev tools is the fact that I hear a lot more negativity coming out of the internals group than positive, and that makes me seriously doubt the future of PHP.

    Some will say “then stick around and help PHP”, but a very strong voice in my head says “why dig in for a stressful uphill battle when I can contribute to a community that might accept my contributions without so much of a fight.”

    And being an outsider, it might not be my place to “fix” the relationships between core committers. In my personal life I don’t get involved and try to fix things between two friends that are in the middle of marital problems.

    Being an outsider, my opinion regarding a tool I want to use is based on (among many factors) “is this the right tool for the job” and “do I have confidence in the people maintaining this tool.”

    My point is, forgetting all the political junk, there is something wrong to begin with if there seems to be this all-important need for, and resistance of, a CoC.

  15. Fuck it. Fuck codes of conduct.

    If you come near my freedom, I will break your face.
    I will say what I want, when I want.

    You DO NOT HAVE a right not to be offended.

    So to all the justice warriors, all the assholes that come with “codes of conduct” in hand, FUCK YOU.

    Feel free to apply your own fucking code of conduct to your projects. On mine, Im the boss. If i dont like you, i will tell you to go fuck yourself elsewhere.

    You are no right. I dont give a shit, I dont care, I’m the boss on my projects.

  16. Your summary of Saletan’s article is completely backwards. It detracts from an otherwise strong piece, and casts doubt on your reading comprehension abilities.

    Please familiarize yourself with William Saletan and his body of work. The entire article you link to is bitterly sarcastic. He even calls this out himself in the last line: “Otherwise, perhaps we should put down the pitchforks.”

  17. I’m just shocked anyone falls for such things.

    There seems to be a weird phenomena where very privileged middle class liberals have lived in such nice and safe environments their whole lives such that they effectively have no social immune systems against dangerous ideologies.

  18. […] On the surface, the various proposed codes of conduct being added to Open Source projects seem reasonable enough.  However, in the hands of a proficient SJW, they can be used as a weapon.  PHP programmer Paul M. Jones explains: […]

  19. […] On the surface, the various proposed codes of conduct being added to Open Source projects seem reasonable enough.  However, in the hands of a proficient SJW, they can be used as a weapon.  PHP programmer Paul M. Jones explains: […]

Leave a Reply

Your email address will not be published. Required fields are marked *