Scope

This is about my (Tim Peters) 3-month ban from CPython core development, announced 7-Aug-2024. The intent is to eliminate the “information asymmetry” that usually accompanies a ban, by disclosing my interactions with PSF representatives in full. I’ve always advocated for transparency in all matters. I didn’t want an “anonymous” ban to begin with, and want no secrets (aka “privacy”) during the ban either. Sunlight is the best disinfectant.

Glossary

  • PSF: Python Software Foundation. a US 501(c)(3) non-profit membership organization holding the intellectual property rights in the open source Python programming language
  • CoC: Code of Conduct
  • CoC WG: a PSF working group charged with CoC enforcement
  • SC: Steering Council, a PSF group charged with core language development
  • CPython: the implementation of Python using the C language, the primary PSF “deliverable”
  • CPython core dev: a person working on the CPython distribution granted commit privileges by the SC
  • Discourse: a Python-related discussion forum run by the PSF
  • mod: a moderator on Discourse, with broad powers over posters and their posts
  • DM: a “direct message” on Discourse, sent to an individual rather than posted to the public

Summary

Brett Cannon wrote:

Everyone except the person in question has incomplete knowledge of what was said; information asymmetry easily happens when conversations span multiple topics, places, and public/private spaces.

I’m “the person in question”. No secrets were kept at my request, or preference. Here’s a summary of “secret information” actions involving me before the ban. Full disclosure. It’s exhaustive, to the best of my recollection and GMail’s search abilities. I want this to be the most transparent ban possible (granting the obvious need for the CoC WG to preserve privacy for people filing complaints - but I know nothing about those anyway).

The summary:

Number of times the CoC WG contacted me: 0

The announcement never actually says a CoC complaint was filed against me. If there was, they skipped all the steps on the CoC enforcement page that involve contacting me. The first time I saw these charges was the first you saw them: after I was already banned.

Number of times I contacted the CoC WG: 2

  1. I DM’ed a CoC WG member to tell them I intended never to post in my neurodivergence topic again, so would never ask for an official response, but asked if they would at least consider adding “neurotype” to the CoC’s enumeration of protected classes. They replied that suggestions should be emailed to the CoC WG. I replied that since they were in that group, if they thought it was a good idea they would suggest it themself. So they clearly didn’t like the idea, and that was fine by me, but I was done with the topic regardless. They “liked” that reply, and that was the end of it.

  2. The only time I ever filed a CoC complaint. It was against someone with power, and not suitable to make public. It wasn’t directly about anything publicly visible on Discourse. It wasn’t aimed at anyone on the SC. It shouldn’t be relevant to the ban, but I can’t know whether it was. Only they could answer that. It doesn’t appear to have any relation to any of the charges - but then I don’t know what some of them might be about.

Number of times a Discourse mod contacted me in their role as a mod: 2

  1. A mod told me they moved a post I made, in the bylaws topic, into a new topic. I replied that was fine, and agreed it was a good decision.

  2. A mod told me a post was offensive. I didn’t push back. I acted at once to address it, and did more than they asked to repair the claimed offense. A key to this was that their complaint was specific, direct, and arguably passed a “reasonable person” test.

Number of times I contacted a Discourse mod in their role as a mod: 1

In the closed PSF topic about David Mertz giving up PSF Fellow status, I contacted a mod to pass on, from David, that Marc-Andre Lemburg’s correction to David’s final post got the details right. A mod edited the suspension announcement to add that info near the top. I thanked them, and that was the end of it.

No, I never contacted a mod to ask that one of my (or anyone else’s) hidden posts be unhidden, let alone to argue about it. That’s their call.

I did publicly express disapproval of some moderator actions, but about others’ posts, not my own. That was before the current “Public posts confronting moderators about their decisions will not be tolerated.” rule was imposed, never after. I would like to (but don’t) believe that my feedback before then played a role in the mods agreeing to stop rewording posts.

Number of times the Board contacted me: 0

Number of times I contacted the Board: 0

Number of times the SC contacted me: 1

Emily Morehouse is correct that I was dismissive of the SC’s message. You’ll have to take some things on trust here, because I don’t have (and didn’t ask for) permission to share their email to me. For the same reason, I won’t reproduce my reply to them (which quotes their email).

In the end, their message appeared to me, rightly or wrongly, to have been made in bad faith. A key to this is that it was mostly very vague, and the one specific claim it made didn’t pass a “reasonable person” test to me1.

Without specificity, the best I could make of it was “we’re not objecting to what you’re saying, we’re objecting to who you are - become someone different, in ways you must already know we have in mind”. It left both sides unmoved, but they didn’t reply to my reply, so there was no “discussion”. It was a one-time exchange of monologues. Discussion didn’t start until after the ban was announced (but this post is only about pre-ban).

Number of times I contacted the SC: 0

Number of times a plain user contacted me privately to argue: 0

Number of times I contacted a plain user privately to argue: 0

To be clear: “Plain user” means anyone without relevant power (not on the CoC WG, Board, SC, or a mod). “Privately” means not in a Discourse public post, regardless of whether by Discourse DM, email, social media, in real life … “Argue” means to express an opposing opinion, or in any other way disagree, complain, insult, threaten, etc.

I also contacted Brett Cannon a few times not accounted for above, but not for his role as a mod or as a CoC WG member, but as “just Brett”, a long-time colleague I’ve always been on friendly terms with, to chat and ask his opinion. While I can’t know, I strongly doubt that has any relevance here. He recused himself from the CoC WG’s vote.

Besides that, I never contacted anyone else with power, nor they me, about anything, apart from public Discourse posts. It’s possible that one of the CoC WG members saw posts of mine on Facebook (shared only to “friends”), but best I recall no pre-ban post there mentioned anything about PSF spaces. But Facebook search is feeble, and I may have missed one. I had no account, or ever posted, on other gossipy sites (no Twitter/X, Mastodon, LinkedIn, Reddit, Hacker News, …).

So it’s hard to believe that anyone filed a complaint about non-public contacts, because there were none of any relevance that weren’t thoroughly friendly on both sides.

That’s all. Two grand total “official” complaints to me, and no non-official relevant contacts. One official complaint (from a mod) was resolved almost at once, and the other (from the SC) fell flat.

What actually works

If the “a key to this …” parts sound reminiscent of what replies in my PSF topic on neurodivergence said about what’s needed, I think that’s on target.

I never intend to offend. If I do, I’m happy to be told so, directly, as specifically as possible, and bluntly. There’s no need to make it “sound nice”. I won’t take offense, I’ve cheerfully endured mountains of public abuse for decades. There’s a mild example of that in the bylaws topic, where someone bluntly told me I was acting like an ass, but was very specific about in what way. Their tone was hostile. I didn’t care. I thanked them for pointing it out - and publicly agreed their specific complaint had merit, and didn’t repeat the behavior again. They did more to change my behavior, with one very brief post, than all the “official” channels combined. Ponder that.

Conclusion

“My side” is an open book now.

There was close to no pre-ban “secret information” involving me, and so also almost none that could possibly be relevant to the outcome. What remains of the messages in the topics involved are all the evidence you’ll ever get. You knew almost everything knowable when the ban was first announced. Answers are not to be found by appealing to the “god of the gaps” in this specific ban. Perhaps in other bans, but not in this one.

Addendum

Of course many people saw this coming. It was hard to miss that some “old timer” was in the crosshairs. But it wasn’t exactly2 clear who until I saw this post. Note especially who “liked” it.

So I knew then “OK! I’m next.” The only surprise then was how long it took.


  1. While they didn’t reply, they apparently agreed, since the specific claim they made never appeared in public - they changed the claim before public posting, but to one which also didn’t pass a reasonable person test to me - at which point my suspicion of bad faith increased. 

  2. Two of the SC’s complaints in their public topic were obviously aimed at me, but the referent for “soft conduct moderation” was unknown. As detailed above, I never opposed a mod action against me, so I wasn’t a plausible guess. No clarification was made, beyond that they didn’t mean David Mertz (who seemed to be most peoples’ guess).