I'm leaving too

A little over a year ago (Mar 8, 2023, according to the automated private message in my history), I came here primarily in search of help with what I guessed to be an epidemic of Python beginners mistakenly downloading the irrelevant, Python 2.x-specific turtle package from PyPI, hoping either to fix deliberately restricted[1] Python installations or simply not realizing that it’s part of the standard library. I asked a technical question that helped inform the advice I initially gave on Stack Overflow and have since rewritten for Codidact. Shortly thereafter I saw that others had noted the issue, which was nice.

I ended up sticking around and becoming quite the prolific poster (“2.3k posts created”, apparently). And then I got extremely interested in the “elephant” (or is it a platypus?) of Python packaging. To toot my own horn a bit, I became the first (and thus far only) recipient of the forum’s “Empathetic” gold badge outside of the CPython core dev team[2].

But all of that comes to an end now. The recent situation regarding supposed “disturbingly unprofessional conversations”, in turn surrounding a controversial proposal for changes to PSF governance (specifically the last of three proposed in that thread), forced me to reconsider my participation here.

I’m now forced to weigh my interest in discussing topics on a forum like this (as opposed to writing about them on a blog and/or explaining them in Q&A form on Codidact), against my impression of the rules here and how they are interpreted and enforced.

And between:

  • various provisions of the Code of Conduct which I previously didn’t expect to need to worry about, but now find disagreeable;
  • the apparent interpretation of those provisions by CoC WG members (as seen both in explicit statements[3] as well as my observations of what does and doesn’t get moderated);
  • the repeated lack of clear communication from leadership about a constellation of related issues (including the meta-issue of how this governance is actually structured and who’s responsible for what), even in supposed attempts at transparency, leading to unaddressed speculation;
  • my general read of the community’s most common viewpoints on Code of Conduct issues (as determined by the content of posts, number of likes, style of rhetoric etc.);
  • various specific things said by other well-recognized and respected community members in the ensuing discussion (I will reply to some of this in a separate post);
  • mistreatment of core dev team members and other highly accomplished members of the community, past and present;
  • the emphasis placed on CoC issues seemingly at the expense of practical, real-world matters that would offer much greater benefit to those supposedly being protected;
  • the various negative interactions I’ve had with other regulars here (and the fact that people don’t seem to understand why I was upset, or perhaps even that I was upset);
  • general frustration with the habitual flow of packaging discussions

I can no longer see myself participating here in any regular capacity.

I am not deleting my account, but henceforth I will post only in this thread, the threads directly related to the situation… and in the future, perhaps to announce project releases.[4] I absolutely still believe in FOSS and in the Python programming language (even if there are many things I think it does suboptimally), and am certainly not giving up on such development.[5]

I have at least three more posts planned for this thread:

  • a more concrete objection to the discussion in the “inclusive communications expectations” thread generally, and how it played out
  • a list which I owe to @FFY00
  • a grab-bag of replies to things said in all of this mess, that I haven’t yet managed to incorporate into other posts.

I hope you’ll bear with me.


  1. In far more ways than disclosed there, actually. ↩︎

  2. and in less than half the time that it took any of them - no slight intended. ↩︎

  3. e.g., although this comes from after I had made up my mind. ↩︎

  4. If any of you should ever have feedback regarding those, please use the corresponding issue tracker or email me privately, as appropriate. ↩︎

  5. I may even hope for my tools to be included in official python.org distributions in the future - under FOSS licenses I would have no right to forbid it, anyway. ↩︎

19 Likes

You’re free to disagree but I find this to be uncharitable and combative itself.

It’s true that the common definition of sexism is discrimination on the basis of sex, without qualifiers. Activists and philosophers have for a very long time used different definitions to suit the conversations they want to cultivate. One is reserving the use of “sexism” to mean what otherwise might be described as “systemic sexism”. Another commonly used formulation to capture roughly the same meaning is that that sexism is discrimination plus power, where power is understood to mean systemic or societal power.

This is not done to deny that discrimination in all directions can and does occur, but to distinguish between discrimination that occurs without power dynamics behind it or on the basis of only localized power dynamics in contrast with discrimination that occurs on the basis of societal-scale power dynamics. The latter is understood to be significantly more impactful than the former, and that understanding forms the basis for things like Python’s code of conduct, or at least for how the working group interprets it.

In analyzing any subject, it’s common to create technical meanings which sometimes repurpose words with more general meanings in broader usage. A really dense philosophy text can be basically incomprehensible without a strong grounding in the meanings being used. This case isn’t any different in principle, except for the fact that many people have worked, with some success, to make the technical usage from their communities become the broader usage. That generates conflict, but isn’t inherently a bad thing. The meaning of all kinds of words can shift over time, both due to concerted action and due to simple drift. At any rate, simply asserting that discrimination against men on the basis of their sex is sexism by definition forecloses that discussion without engaging with it.

Maybe this comment is wading into it too much already, even - you clearly have strong feelings on this matter which I don’t intend or expect to dissuade you of. I comment more to say that it’s one thing to disagree with how someone uses language, but failing to acknowledge how and why they are using language that way sets up a situation where people talk past each other instead of productively. Simply asserting the definition (one way or the other) usually works to build group cohesion among the already convinced, and it can sometimes sway unaligned individuals, but it doesn’t do much for discussion with those who disagree. In that case, both parties come away feeling like the other person didn’t really listen to or engage with what they were saying.

14 Likes

I find it very interesting how in a logical mind it can fit at the same time something clearly as unfounded as this claim of a mode in a population

(Is there a study that you are quoting there? Rhetorical.)

and at the same time (from this post) being able to detect it when it points in a different direction


I don’t need responses, nor want to discuss the validity of neither of these posts. Only pointing them out, presenting them like a mirror, because I have the hope that when someone has the capacity for rigorous logical thinking, then one is capable to apply it everywhere.

1 Like

This won’t make you more comfortable, alas: the OP in that topic didn’t even mention the CoC. The SC has power to put whatever restrictions it likes, for whatever reasons it deems sufficient, on participating in core development. That’s why, e.g. the OP says things like “CPython Core team”. A distinction that’s likely to whiz right over most PSF members’ heads.

If, e.g. any of the things I posted could plausibly have been sold as “a CoC violation” (which would be a real stretch to many eyes), I would have been hit with one (or dozens :wink:) already.

The SC could, e.g. unilaterally revoke my "commit bit’ on the CPython GIthub repository for, say, “not meeting the high standards expected of CPython Core developers”.

Will they? I don’t know. It’s pretty clear the OP wouldn’t have been made unless they wanted to lay PR groundwork for “making an example” of someone. While I would advise them not to pick on anyone without 99.98% compelling cause, better me than someone who credits at least part of their income to “CPython core dev” status.

5 Likes

A claim of “popular” is not a claim of “mode” - a claim of “most popular” would be (although not enough to distinguish unimodal from multimodal), I left it vague because more precise quantification is irrelevant to the point.

I’ve been enough of a “US white left-of-center liberal” myself to judge that I don’t need studies to know which beliefs are popular among “my people”. I hear them every day, echoing - and echoed by - our echo-chamber “news & opinion” sources

Can’t say I’ve paid it much attention in recent years. Last time I did, “all races can be prejudiced, but only whites can be racist” was the Correct View™. Like here:

https://www.aclrc.com/myth-of-reverse-racism

While it still largely makes good sense to me, I don’t want to see the PSF insisting than any other view can only be held in “bad faith”. Other views are common too. Among people of my age, very common. I can attest from personal experience that some people near my age never even heard of the view the PSF endorses.

It’s too simplistic for the global world anyway. For an extreme example, there are a total of thousands of castes, races, ethnicities, and religions that might claim group-based discrimination in India, but relatively few “whites” left in sight.

Do all the power dynamics analysis you like, but nobody is going to build a multi-million entry NxN matrix recording which pairs of those are necessarily “bad faith:” claims. Well, sure, @kknechtel might, but he wants to get back to packaging :wink:.

2 Likes

It’s been a busy few weeks for the moderators here:

Many of those flags were on Karl’s recent posts where he was directly attacking the @moderators and the PSF as a whole. The moderators needed to respond but wanted to ensure this case will be decided by a wider consensus. Therefore, we reached out to the Code of Conduct Working Group for a recommendation.

The COC WG currently consists of 12 members with 50% identifying as women. The members represent various ethnic, cultural, economical, and religious backgrounds. This provides the working group with excellent representation of differing viewpoints.

The COC WG responded with the following recommendation that we implemented:

The COC WG recommends the indefinite suspension of Karl Knechtel on Discourse due to a pattern of disruptive behavior. In particular, Karl claims moderation actions taken against him were unfair and unwarranted, and says they were an example of reverse racism, a concept with little to no empirical evidence.

The user showed repeated violations of the following behaviors expected by the Code of Conduct:

  • Acknowledging time and effort, in particular violated by attacks on the forum staff, the COC WG, and the PSF in general;
  • Gracefully accepting constructive criticism, in particular violated through explicit voicing of lack of trust against moderator actions like his posts getting hidden;
  • Showing empathy towards other community members, violating which has been a pattern with this user.

(For full disclosure, Brett Cannon and I are both moderators here and members of the COC WG, but we don’t personally know Karl and haven’t worked with him.)

If you have any questions, please reach out directly to @moderators.

18 Likes