An open letter to the PSF CoC WG, addendum 1/n: the suspension of Tim Peters
Preamble
First, thanks to everyone who has contacted me with praise, thanks etc. since my previous post, or shared the link. I’m truly grateful for all such support.
If you haven’t seen that post yet, please take a moment to read it first. It gives important context (such as explanations of acronyms), which I will not be repeating here.
In my next post (not an “addendum”), I plan to give my thoughts on what to do about all of this, and going into more detail about my mindset. But for now, I want to focus on current events.
Updates
On July 20 - the next day after the banning - Tim Peters posted to pursue some points I had made about how neurodivergence is handled in the Python community (particularly on the Discourse forum and, from what I could see, in internal dev discussions). The post went through a few revisions, so I can’t recall the original title. I understand how some might have seen it as provocative, but I’m quite sure it wasn’t intended that way. Many people seem to have interpreted it as an appeal to let neurodivergent community members get away with more - absurd, in my opinion, but a detailed discussion will have to wait for another time. Let me simply say that Mr. Peters’ tone is consistently calm and his writing is unfailingly empathetic - although perhaps it isn’t empathetic to the right people for the WG’s liking.
There’s just one point from Mr. Peters’ posts there that I want to respond to for now:
He did not see himself as retaliating or being abrasive at all. He saw himself always as making logical, respectful arguments. That he was unable to pick up on that others mostly saw him as being vindictive and abrasive is the point.
For the record: I didn’t see myself as retaliating because I was not retaliating. I didn’t see myself as being abrasive - I went out of my way, in fact, to suppress any sign of anger in my tone and focus on hurt, seeking empathy. Even now (and in the previous post) I put exceptional effort into moderating my tone - and in marking my opinion as opinion. (“Explicit is better than implicit”, after all - now where have I heard that before? 😉) I indeed saw myself as making logical, respectful arguments - because I inarguably was. I did, in fact, understand quite well that some people saw me as being abrasive (I don’t know if “vindictive” is a word that could have come to mind) - phrasing from others like “You’re free to disagree but I find this to be uncharitable and combative itself.” makes that clear enough. But I did nothing about this - because that perception was, to me, so blatantly unjustifiable that it merited no concern. Obviously, it’s completely unjust - and unworkable - to allow someone to say that, give several paragraphs of justification for a political stance, and then expect me not to explain the reasoning for my own position in response.
Anyway.
On July 26 - a week after banning myself and David Mertz, so also on a Friday - PSF staff member Deb Nicholson posted what appears to be a PSF position statement, titled “Python’s Supportive and Welcoming Environment is Tightly Coupled to Its Progress”. The post is signed by the PSF Board of Directors - who apparently are not the same as the staff. (As far as I can discern, Ms. Nicholson is the only member common to the PSF Staff and the WG; she and three others are common to the Board of Directors and the WG.)
This post contained a mixture of self-congratulation for maintaining a “welcoming” community; agonizing over the difficulty of “try[ing] to be transparent” and “responsive, especially in the areas that people want to know more about” while supposedly keeping privacy in mind; and aggrieved allusions to the problems supposedly caused by myself and others, who supposedly made “sideways comments about the kinds of people making reports” and ascribed “bizarre motives… to the people in charge of the PSF”.
As I have come to expect, this was also accompanied by an appeal to the paradox of tolerance - implying that those expelled had in some way expressed intolerance. This is, of course, completely groundless, and furthermore hypocritical. It is they who have refused to tolerate views not in agreement with their own. (Never mind that this misrepresents Popper’s original argument in the first place; he spoke of intolerance for actions, not speech.)
The only reply to the post came from Tim Peters. It was hidden almost immediately - even though Discourse displays the message “This post was flagged by the community and is temporarily hidden.”, there is some evidence that this action was taken by a moderator. (Moderators on Discourse are “Trust level 4” members, and Discourse weights community flag reports by trust level; I have it on good authority that a single flag from a “Trust level 4” member will hide a post with the default forum settings. There are a scarce few non-moderators on the forum who thus qualify, but no reason to suspect any of them.) At any rate, there was clearly nothing objectionable in Mr. Peters’ reply (which also received 5 “hearts”); it comes across that rather than simply locking the post, the WG wanted to send a message that no dissent would be tolerated and that there was no point in reply at all. (Perhaps they would have allowed sycophantic replies; but unlike the first few responses in the “Inclusive communications expectations in Python spaces” thread, no such praise was forthcoming this time.)
The next Friday (August 2) passed apparently without anything significant happening, and so I imagined that everyone in a position of power had collectively decided that the matter was behind them.
However, this proved not to be the case. This past Wednesday, August 7, the Steering Council - speaking through member Thomas Wouters (who was previously a PSF Chair) moved to suspend “a Core Developer” for 3 months. This is, supposedly, “an attempt at corrective action” which responds to “a recommendation” from the WG involving “direct, very specific communication about the problematic behaviour and its impact”, since “Core team members are expected to act as role models for the community”.
Despite being tucked away in the normally minimally active “Committers” category, the post got thousands of views in the first 24 hours. Then on the 9th, the story was picked up by The Register, and the thread seems to have seen a small second surge of interest. By the standards of the Python Discourse forum, nearly 9000 views in a few days is quite a lot. The Register’s article (it seems they did at least some actual investigative journalism - a welcome rarity in the modern era) confirmed what was immediately obvious to anyone paying attention to these recent events: the suspended “Core Developer” is, of course, Mr. Peters.
The charges
The Steering Council post provided a bullet-point list of ten supposed transgressions - I have learned that long lists like this are almost always, automatically, nonsense being drummed up to “purge the undesirables”.
I initially planned to go over these point by point, but after reading them, it makes more sense to do some reordering and grouping first.
So, without further ado:
Defending “reverse racism” and “reverse sexism”, concepts not backed by empirical evidence, which could be seen as deliberate intimidation or creating an exclusionary environment.
It’s taking an incredible amount of self-restraint not to go into detail here about the subject matter of these terms themselves - perhaps that could be the subject of the next addendum. But suffice to say for now that, to the best of my ability to discern, Mr. Peters scarcely mentioned these terms at all; nor did he say anything I could find about the topic of sexism against men at any point. Regarding racism against white people, meanwhile, he merely observed that “only whites can be racist” is an established line of thought that is expected in some circles, while being scarcely imaginable in others. He did, however, arguably, indirectly, defend my right to hold my own position on these topics. So that’s the only thing I can fathom that they have in mind here. The WG’s claim here is, in my estimation, an incredible leap of logic, and frankly defamatory.
Regardless, even supposing that Mr. Peters had somehow done this, I defy anyone to show how the Code of Conduct prohibits it. This document does not, apparently, mean what it says - like I said last time.
Overloading the discussion of the bylaws change (47 out of 177 posts in topic at the time the moderators closed the topic), which created an atmosphere of fear, uncertainty, and doubt, which encouraged increasingly emotional responses from other community members. The later result of the vote showed 81% support for the most controversial of the bylaws changes, which demonstrates the controversy was blown out of proportion. Excessive discussion of controversial topics or past conflicts, which could be seen as sustained disruption of community discussions.
This seems to have been foreshadowed by a seemingly unrelated thread in the Discourse feedback section, which refers to “Community Guidelines” that were published on July 19th, the same day I was banned - that is to say, ex post facto. Initially, I didn’t think Łukasz Langa’s post there was notable, but now the phrasing “cases where a single person posts 50 times in a topic of 180 messages total” really stands out - oddly specific numbers there.
Anyway, the idea that one person making a significant fraction of posts in a thread - mainly in order to reply to others challenging him! - could “create an atmosphere of fear, uncertainty and doubt” is simply ridiculous. This point seems to be trying to make it sound as if Mr. Peters had been singlehandedly trying to rabble-rouse opposition to the bylaws change in question, which is bluntly counterfactual. (Not to mention: most people who voted on the ballot measures probably didn’t read the thread anyway.)
And again: I defy anyone to show how the Code of Conduct prohibits this. This document does not, apparently, mean what it says - like I said last time.
As for “controversial topics or past conflicts”, it doesn’t come across that the WG, the Steering Council, the forum moderators or anyone else are interested in any discussion of these. Unfortunately for them, I have a blog, and I refuse to be quiet.
Using potentially offensive language or slurs, in one case even calling an SNL [Ed.: Saturday Night Live] skit from the 1970s using the same slur “genuinely funny”, which shows a lack of empathy towards other community members. Use of potentially offensive terms, even when self-censored or alluded to indirectly.
These appear to refer to the same anecdote, in which Mr. Peters described having been involved in a PSF Board vote (ten years ago) opting to request the removal of a package from PyPI with an offensive name. In the post, this package was referred to consistently as “XXXX” and this name was described as “a word that Dan Akroyd used to apply to Jane Curtin”.
To be clear, Mr. Peters did not in fact say that “an SNL skit from the 1970s” was the “genuinely funny” thing, but rather SNL generally. Regardless, the idea that it “shows a lack of empathy towards other[s]” to… claim to have liked arguably-problematic media decades ago is… well, I don’t have any polite words for that. “How dare others like things I don’t think they should be allowed to like!” - my, how inclusive and tolerant. I had understood, in my supposedly-neurodivergence-limited mind, that empathy is about understanding the thoughts and feelings of others. Apparently, however, it’s actually about suppressing one’s own thoughts and feelings.
Making light of sensitive topics like workplace sexual harassment, which could be interpreted as harassment or creating an unwelcoming environment. Casually mentioning scenarios involving sexual abuse, which may be inappropriate or triggering for some audiences.
I addressed these in the original letter. To recap, Mr. Peters spoke about how he had been at companies where an exectuive would be accused of such conduct and he and his coworkers would be subject to “training” as a result. It’s beyond absurd to “interpret” this complaint as seeking to harass others. But I guess this is how they understand the Code of Conduct’s prohibition on “Sexual language and imagery”.
Discussing bans or removals of community members, which may be seen as publishing private information without permission.
Apparently the WG are quite partial to seeing things in ways that they “may be seen”, regardless of how illogical those viewpoints might be. Across the various groups entitled to ban or suspend people from various online Python spaces, there is no consistency as to whether announcements of such removals name the person removed - certainly there was no attempt made to hide my identity. Regardless, even in cases like this one where “a Core Developer” gets suspended, it’s laughably obvious who was punished.
More to the point, I can’t fathom any legal theory by which “private information” includes ban status, nor any sensible reason why permission should be required from anyone to bring up the fact that someone was banned. It comes across that they are trying very hard to make this sound like the same sort of thing as (from the Code of Conduct) “Publishing others’ private information, such as a physical or electronic address, without explicit permission”. Of course, it makes no sense to put a physical address, or even contact information, in the same category as whether or not someone has been expelled from the community.
It does, however, make perfect sense to forbid such things if the real goal is to suppress all criticism of the bans.
Please also note the phrasing “removals of community members”. Sounds quite dystopian, no?
Dismissing unacceptable behavior of others as a “neurodivergent” trait, which is problematic because it creates a stereotype that neurodivergent people are hard to interact with and need special treatment. Making assumptions or speculations about other community members’ motivations and/or mental health.
The only way I can fathom that Mr. Peters could be construed as having said anything whatsoever about “mental health”, at any point in all of this, is if one considers neurodivergence a mental health issue. This makes about as much sense to me as calling a missing finger a physical health issue, but that’s all I’ve got.
Similarly, I can’t recall anywhere that Mr. Peters assumed or speculated about the motivations of others. On the other hand, this list from the WG repeatedly speculates about his motivations: “could be seen as deliberate intimidation”, “could be interpreted as harassment”, etc.
Regardless, no: Mr. Peters did not, in any way, shape or form “dismiss unacceptable behavior of others as a ‘neurodivergent’ trait”. This is a blatant misreading which seems to have formed the basis of several replies to him in the July 20th thread - but there’s simply no reasonable basis for extracting that meaning from anything he said. I can only commend Mr. Peters for his patience in dealing with such replies.
Rather, the point Mr. Peters was trying to make was that neurodivergent individuals may often miss social cues (pretty much by definition) and therefore not understand e.g. that they’re being warned about conduct unless this is made explicit. On top of that, he posited that certain things I did (like, er, “making long posts with logic and evidence” and “responding to objections by further clarifying and justifying my position”) were not actually “unacceptable”, but instead that neurotypical people might be disinclined to view these actions charitably.
He was, I submit, absolutely correct in this. Bluntly, I would say that, by any rational reading of the Code of Conduct, I did nothing wrong. But the Code of Conduct, just to reiterate, apparently does not mean what it says.
As for a “stereotype that neurodivergent people are hard to interact with” - it’s trivial to “interact with” those whose idiosyncrasies you refuse to accommodate. But that’s a topic for another time.