Hits

Preamble

As a content warning, this post includes: words which refer to serious crimes; refusal to accept “social justice” orthodoxy; and Unicode code point U+1F609 WINKING FACE. Don’t worry - it will make sense in due time.

For those who are not generally familiar with big names in the Python community, a basic description of the parties involved is provided at the end (section “Dramatis Personae”). If you do generally recognize such names, just know that in this post, by “WG” I mean the PSF’s Code of Conduct Work Group (or Working Group).

For those interested in digging deeper into the history of conflict in the Python community surrounding the Code of Conduct and other political matters - e.g. to get a sneak peek at what I may write about in the future - I recommend the following links to threads from the Python Discourse forum:

Howto engage Python contributors in the long term?

The PSF should be less political, not more

Discussion about recent CoC events

As well as this search result for old mailing list discussion (this discussion didn’t thread very neatly, so I can’t really give a direct link to a single page).

This material will, I believe, give the reader considerable insight into the mindset of a certain subset of PSF members, particularly vis-a-vis the concept of “social justice”.

Overview

On July 19th, I was banned (“indefinitely suspended”) from the official Python Discourse forum, and several of my most recent posts were “temporarily” hidden by flagging “by the community” (per the stock phrasing of the Discourse software). I was already voluntarily about to leave, so I don’t particularly mind losing access - but it was nevertheless unjust.

Furthermore, the manner in which this was handled shocks and appalls me. In my estimation, the WG has acted with astounding hypocrisy, which I will allude to in this post and attempt to elucidate in later posts. In announcing my ban, they made a parting statement which misrepresents my position in egregious and indefensible ways. Further, it is my considered opinion that these actions reflect a “social justice” ideology which is neither just nor eusocial - one which I believe is fundamentally corrupt and enables serious real-world harm.

Aside from my own mistreatment, the WG similarly banned Dr. David Mertz - whose reputation in the Python community as a community member in good standing is truly incredible - with a similar parting statement which I consider similarly unacceptable.

Further, while nothing serious seems to have befallen Tim Peters so far, I’m appalled at how he has been treated through all of this. (I first got to interact with Mr. Peters - who I consider something of a personal hero - on Stack Overflow, on a question related to sorting, receiving praise for my answer. You can imagine how star-struck I was, and thus the extra importance this issue has for me.)

I refuse to be silenced on this matter - this post will not even remotely be the end of it. Because I happen to have found myself in a similar position before, I had the foresight to save my posts locally before I lost access to my account. I will be sharing these on this blog as reference pages, so as to show everyone that I indeed said nothing that could reasonably be said to violate the Code of Conduct.

I had been bookmarking quite a few posts about the problems with packaging in Python (using the site features), and now I have lost that information. However, I expect this will only be a minor setback in my goal of independently critiquing Python packaging and attempting to contribute my own solutions.

On June 13, 2024, a PSF board member posted a thread to discuss three new ballot measures to change PSF bylaws. To my understanding, these measures were also discussed on a members-only mailing list, and possibly also elsewhere. These measures all passed - despite quite a bit of opposition voiced in that discussion, the most controversial measure received over 80% votes in favour.

In that thread, Joannah Nanjekye was among those opposing the controversial measure, but her arguments were brushed off and her point of view was, as I saw it, generally not respected. There was also discussion in that thread about how the PSF had previously failed in adequately funding PyCon events in Africa and helping them run smoothly. (The link there is to another “open letter” which Dr. Mertz shared in the discussion, signed by Ms. Nanjekye.)

On July 11, a new thread was posted “collectively for the entire 2024 Python Steering Council”. The OP proposed that the following “not okay” things had transpired:

  • Bringing up examples of sexual harassment and making light of workplace sexual harassment training.

  • Utilizing emojis and turns of phrase in ways that can be misconstrued or perceived entirely differently by different people.

  • Resisting soft conduct moderation when people point out problematic statements in what has been said.

We were also reminded that

We expect everyone to uphold an inclusive communication standard in the Python community, regardless of your tenure, stature, reputation, or history with the project.

and informed that

Some communication styles that were unfortunately common in the past are rightfully recognized as inappropriate today.

strongly implying that someone of considerable reputation - someone from the “old guard”, so to speak - was being called out.

I didn’t habitually read the PSF section of the forum, because I’ve never been a PSF member. But at some point, the forum software suggested the latter thread to me, and I followed the link to the former thread. I don’t (and didn’t) have access to the PSF-vote mailing list, so I could only rely on the linked thread for information.

Between those contextual clues and the content of the thread, it was quite easy to suss out what this was supposedly about. And it was furthermore quite clear to me that this was a smear job.

It should be noted here that the measure which caused such vigorous debate the first time around, empowers the PSF Board to remove PSF fellows, by a simple majority vote, conducted internally, should they stand accused of Code of Conduct violations. Previously, this action would have required a vote by the general membership of the PSF. During the prior thread from June, it came to light that there may already be PSF Fellows whom are being considered for such expulsion.

On July 12, Tim Peters - the person I had guessed was being targeted - initially posted in his defense.

On July 13, Mr. Peters followed up by pointing out the chilling effect that the WG (and the steering) has had on discussion - according to reports made to him privately. In these posts I got some hints about the hypocrisy in the WG’s actions. Also on July 13, Steve Holden announced his departure from the forum.

The day after that (the 14th), I first voiced my support for Mr. Peters, and explained why I felt that posts like the OP are counterproductive if the goal is “inclusivity”. (As of this writing, that post has not been taken down.) Probably by later that day I had decided to leave the forum, but I didn’t declare this intent until the 16th. Over the next several days I spent quite a large fraction of my waking hours composing and presenting my thoughts on these issues, while also reading through a backlog of old posts about Python packaging, as well as researching previous instances of, shall we say, political tension in the community.

On the 17th (I think), I discovered documentation of the WG’s “enforcement procedures”, which had been hiding in plain sight the whole time. What I read there was truly egregious, but will have to wait for another post.

As mentioned, on the 19th, Dr. Mertz and I were banned. I did not receive a forum email about this, but I was able to gather that I - the first recipient of the forum’s gold “Empathetic” badge outside of the core Python dev team - had been deemed “too combative” for this environment. The same day - a few hours before this moderation - Łukasz Langa revived the very GitHub issue that motivated me to join the forum in the first place. The timing of this seems rather suspicious to me, but I can’t really say anything more concrete about it. Also the same day, a new banner appeared on the forum, promoting new “community guidelines” which had come seemingly out of nowhere.

To set the record straight

First, let me address the parting statements the WG left for myself and for Dr. Mertz:

  1. I absolutely did not, in any way, shape or form, claim that moderation actions taken against me “were an example of reverse racism”. Not only is this completely untrue, it puts terminology in my mouth which I was explicitly arguing against using, because I consider it problematic. My entire point was that people with my belief system do not use this nonsensical term (nor “reverse sexism”). Rather, my experience has been that the term is used by those who ideologically align with the WG, specifically in order to mock and dismiss obvious and serious real-world harms.

  2. Further, I barely mentioned racism anyway, choosing to focus on sexism instead. But above all, nothing I said about this utterly nonsensical term had anything to do with objections to moderation actions taken against me. I was very explicit about that - this point was specifically about the enforcement policy in the abstract. But just for what it’s worth, I stood up for Ms. Nanjekye, just as Dr. Mertz did.

  3. Rather than “reverse sexism”, the correct term is “sexism against men”, which is how I describe it. The existence of such discrimination in the real world is, in fact, abundantly evidenced; and in fact I presented a significant amount of evidence in one of my hidden posts - but discussion of this point is out of scope here.

  4. Neither I nor Dr. Mertz “attacked” (a word that is consciously chosen to create a false impression of threat to physical safety - a ludicrous notion on the Internet) “the forum staff, the COC WG, the PSF in general” or anyone else. Rather, we criticized your actions - because they merit criticism. At no point did we make any kind of insulting or disparaging remark, nor accuse you of anything we couldn’t prove. Anyway, to suppose that this has anything to do with a failure to “acknowledge time and effort” is so utterly ridiculous that I genuinely can’t think of a meaningful response.

  5. There is objectively nothing wrong, in any reasonably governed community, with “explicit voicing of lack of trust against moderator actions”. Nor can I fathom any reading of the Code of Conduct which prohibits this. It’s interesting that “moderator actions” here supposedly include “getting our posts hidden”, since that is supposedly the result of community flags instead. Regardless, by saying such a thing, you effectively admit intent to run a dictatorship and stifle dissent. Or, as you put it, intent to expect users to “gracefully accept constructive criticism”.

  6. Just to be perfectly clear: there is no possible “constructive criticism” involved in censoring someone else without comment.

  7. I see no sign, in your actions, of any actual concern for “empathy”. You certainly haven’t shown any for me; and you don’t, as far as I can tell, show any for neurodivergent individuals generally; nor for members of groups that aren’t on a list of approved recipients of empathy. So it is hypocritical in the extreme to accuse me of a “pattern” of failure to “show empathy towards other community members” - in fact, I have gone out of my way on a regular basis to ensure such empathy to the best of my ability.

  8. Dr. Mertz did not in any way, shape or form “defend the use of a derogatory term used against women”. To say so is to ignore one of the most basic tenets of logic and philosophy (by the way, what do you suppose is the subject of Dr. Mertz’s PhD?), and I frankly think it’s defamatory. Aside from that, I have to wonder: do you suppose that women are supposedly inherently harmed by the mere act of seeing certain words in print? (I am not a sexist, so I don’t imagine women to be so fragile.)

  9. Dr. Mertz disagreed with you regarding changes to the PSF bylaws. That was not, in any way, shape or form, a “refusal to accept” those opinions. On the contrary, he provided evidence that you are the ones who show disrespect to dissenting opinions - for example, Ms. Nanjekye’s. Aside from that, Dr. Mertz showed the utmost “respect for differing viewpoints and experiences”. But you did not, by my assessment, respect his.

  10. By saying that the WG’s “gender, ethnic, cultural, economical, and religious” diversity “provides the working group with excellent representation of differing viewpoints”, you imply that these traits necessarily cause people to have such differing viewpoints - which is both bigoted and demonstrably false.

  11. Your “busy” week (amounting, apparently, to approximately one (1) flag per moderator, per day) does not, in my opinion, in any way excuse such ignorance of the truth.

Second, I wish to present the understanding I arrived at of Mr. Peters’ supposed sins:

  • The “example” of sexual harassment he “brought up” was nothing at all about the harassment itself, but a simple statement that executives at places where he’d previously worked had been accused of it.

  • He supposedly “made light of workplace sexual harassment training” by proposing that it’s the workers who tend to receive such training when an executive is accused of sexual harassment. (Although he referred to such training as “sexual harassment prevention training”, believing reasonably that the other term sounds like it should mean rather the opposite.) It’s absurd, in my opinion, to find fault with such a critique of power and privilege.

  • “Utilizing emojis and turns of phrase in ways that can be misconstrued” refers to inserting a wink emoji (the 😉 character, which has special support in the forum software - so why should we not use it?) into posts.

  • “Resisting soft conduct moderation” entails standing up for neurodivergent individuals, continuing to talk about topics from posts that had been anonymously flagged (for absolutely no rational reason I can fathom), critiquing previous moderation decisions, and refusing (correctly, in my view) to accept that he had done something wrong. Or at least, that’s the best I can make of it. The only clear example of “soft conduct moderation” I could find in the thread was Carol Willing’s request “that the rehashing of sexual terms here and on the mailing list cease” - and it did cease immediately.

Finally: I have concluded that, on the basis of what is written in the Enforcement Procedures, the PSF Code of Conduct does not and cannot mean what it says. However, I will keep my explanation of this for a future post.

Dramatis Personae

The PSF is the Python Software Foundation, which is exactly what it sounds like. There is a standard Code of Conduct (CoC) which generally applies to all PSF-operated or PSF-maintained “spaces”, both physical (such as PyCon) and virtual (GitHub issue trackers for PSF-maintained projects as well as Python Packaging Authority (PyPA) ones, Discord servers, IRC, mailing lists, the official wiki. The top authority enforcing this Code of Conduct (in case someone needs to make a report about a moderator for one of those forums, for example) is a Work Group specially created for the purpose. In this post I refer to the Work Group as simply “the WG”, or “the PSF CoC WG”.

Łukasz Langa is a member of the Python core development team and release manager for versions 3.8 and 3.9, and the largest contributor to black (the best-known code style linting tool for Python). He is also a member of the WG, and a moderator of the official Python Discourse forum whence I was banned (although the moderator listing does not appear to be visible to the general public).

Tim Peters is one of the longest-standing members of the Python core development team. Over 20 years ago, he implemented the built-in sorting algorithm for Python - a pragmatic, hand-tuned algorithm so good in practice that it was later adapted to several other languages and environments, even much newer ones. He is the author of the Zen of Python (the Easter egg accessibly in Python via import this), and contributed to classic Python books such as the Python Cookbook (which I mentioned in a previous blog post). In Learning Python, Mark Lutz and David Ascher describe Peters personally as a “useful resource for the Python programmer”.

Steve Holden is a former Chair and Director of the PSF, who has been using Python longer than I have. He left the forum in protest over recent events

David Mertz is a PhD of Philosophy who has been using Python since antiquity and published multiple books about Python. He trains Python programmers at KDM Training and was formerly a PSF Director and Fellow. He renounced Fellowship status and was subsequently banned from the Discourse.

Joannah Nanjekye is another Python core dev. As far as I am able to discern, she is the only female core dev who is not white.

I, Karl Knechtel, am a Pythonista with close to 20 years of experience using Python (and further experience with other languages). I am somewhat active as a curator of Stack Overflow and a Q&A author on Codidact. Starting in March 2023 until now, I was one of the most prolific users of the official Discourse forum for Python.