Inclusive communications expectations in Python spaces

It was hard for me too to read the instances of (paraphrasing) “believe, accept, learn” in any other way. That’s no way to run a secret court. I’m personally a fan of “reasonable person” standards, which is especially important when issues involving trauma may come up. Almost by definition, when trauma is involved, rationality can go out the window.

But it’s possible he had something much more anodyne in mind: if someone says they were offended, believe them, don’t argue that they “shouldn’t be”, and … weil, what to learn from it may be clear as mud. Well, sure. These are cases where “accommodate” may be the best that can be done (I typed about that more elsewhere - it just means avoiding the specific things that triggered the offense, if it all possible, provided they can be identified - in the real-life example I gave, yes, avoid any mention of fire in earshot of the traumatized person, but, no, don’t endanger public safety by removing all fire extinguishers from the building).

But if that’s what was intended, it should be balanced by the flip side: if someone says that they didn’t intend any offense, believe them too, accept it, and try to learn from it (although what could be learned may also be clear as mud).

13 Likes

POV is vital here. I believe you, but I can only speak from my own POV. So let’s skip to the end:

Believe it or not, very different context. By “the early days”, I don’t have 15 years ago in mind, but more like 30 years ago. From my POV, “the early days” were over by the time the PSF was founded.

In the truly early days, nobody was trying to, e.g., “foster a community”. We were working our asses off to write tens of thousands of lines of what we hoped would be world-class code. Pure nerds, and nobody cared about anything other than whether a person (regardless of any demographic marker or “identity group” they may present with) could contribute to that single-minded goal.

Very far from ideal for “everyone” of course, but that wasn’t the aim. For example, people who thrived in that environment:

  • Had to be fluent in English.
  • Almost always had to be fluent in C, including being acutely aware of the many ways in which various C compilers could give different behavior for the same code.
  • Usually needed to be a bona fide expert in the domain to which they were contributing.
  • Couldn’t need significant hand-holding, mentoring, or management - there was nobody to play the other role, outside of Guido’s extremely limited time.
  • Had to be assertive, if not downright pushy. They had to pick their area(s) on their own, and sell their results on their merits.
  • Had to be able to communicate effectively via computer-based 7-bit ASCII plain text media.

I could go on, but I’ll spare everyone :smile:.

No project can (let alone “shoud”) remain in that mode, but, for the duration, things like a contemporary notion of “diversity” were neither pursued nor avoided. Getting code written was all that mattered. You’re gay? Nobody cared. French? Likewise, provided you could communicate with Guido. Trans? I have no idea whether any trans people were there in the early days (it’s especially hard to guess from a mailing-list post), but, again, it mattered not one whit.

It’s in this highly qualified sense that I meant it was very welcoming at the start. Which, indeed, means that in fact almost nobody was welcome - paradoxical, I know :wink:.

As the “code deficit” diminished, more time freed up for “community-oriented” efforts, and things changed, For example, of the bullet points above, I had most natural sympathy for those not meeting the “assertive” part. I was painfully shy as a child, and dreaded working with others. So I made a point of reading, for years, every single post on c.l.py, in part to give some help and an encouraging word to newbies, especially those seemingly apologetic for their mere existence.

Very few of those ever went on to make significant contributions to CPython’s code, but that was no longer the all-encompassing goal.

All things pass, but one of the constants is that I know of no organization anywhere, ever, in which absolutely all people were truly welcome. There are always long lists of conditions, both explicit & implicit.

I think the PSF turned out “better” than most in that respect, but humans are tribal animals, and there will always be in-groups and out-groups. That won’t change, but we can at least combat the ugly aspects of it.

8 Likes

Ahh moderation. I find it is both necessary, and hard to get right.
When I was a moderator giving reasons for moderation often helped but took up my time. When I was moderated against then recieving that feedback, and if i still felt wronged, getting feedback from a second moderator stopped further protest.

Both sides can be upset and so care needs to be taken in communications.

  • Be more specific in your allegations, link to actual text selections. Show who is alienated in more detail - by links to text.
  • In section (1): Explicitely highlight what is considered “making light of” so readers can confirm your description.
  • In section (2): There is no mention of intent. No one knows everything. If offense is taken, but none was intended then a mediation must be measured and may even need explanation. You write: “Some communication styles that were unfortunately common in the past are rightfully recognized as inappropriate today.” This may seem patronising to those, for example, viewing current political debaters. It is not all rosy now. Don’t pit the young against the old.
  • In Section (3): Your tone seems dictatorial rather than one of moderation.
12 Likes

To be fair, for whatever reasons, “secrecy” appears to be of paramount importance. Given that, “specific” is unlikely. We even got an announcement of a “ban” once that said not one word about who was banned, or about why. Baffling to me, unless the intent was to foster an atmosphere of fear.

And I may be partly to blame for the vagueness of the OP here. The first two points were obviously directed at some posts of mine, and they sent me email in advance containing more info than what was said here about their aim. The email repeatedly stressed that they were unhappy about “tone” and “tenor” more than about anything specific.

Part of my reply was that, if they posted “something like that”, it would be very easy for people to read it as the Inner Party searching for thoughtcrime (tenorcrime, tonecrime) [1]. I didn’t receive a reply, but when I saw that all mentions of “tone” and “tenor” had vanished in what was posted, I assumed they may have taken that caution to heart.

But maybe not. In any case, there’s really not much point to posting “don’t be a Tim!”, because there are so very few PSF members as old and in the way as I am :wink:.

Speaking of which, the language of basic web emojis is the single most universally understood language on Earth. I use them to be as clear as possible to everyone, everywhere, They’re efficient and succinct, and even a bit of fun. No, they’re usually not suitable in, e.g., a paper submitted to an academic journal.

At which point someone else may object that “e.g.” is off-putting elitist jargon, better suited to an academic journal than a post to my “community”.

It’s not possible to “win” this game :wink:.


  1. referring to Orwell’s “1984” ↩︎

12 Likes

Contrast those two statements and notice there’s a spectrum there, but with a common theme. Be too public about a ban and you risk reputational harm to people that may be viewed as too much “punishment” for the transgressions. But keep it all quiet and people feel like they don’t know the practices here.

But at either end of that spectrum you used the term akin to “fear”. Now we obviously try to balance all of this when making decisions around the CoC, but this is part of what makes this all such a hard (volunteer) job to do. It seems no matter what we do there’s “fear” from your/a perspective.

Now I personally choose to trust those in charge to do their best and be reasonable people (and to be clear, there are people above me like the SC and PSF board of directors, so I am in charge only so much). I also trust in myself that I won’t run astray of the CoC so badly that its enforcement will ruin my career. So, in the end, I don’t have the “fear” presented here and instead choose to have trust replace it. I can understand why people have that “fear” viewpoint, but this is one of those instances where I don’t know if there’s anything that can be done to fully alleviate that feeling if you don’t trust in yourself and the people involved. And if that’s the case then participating here may be too stressful to warrant staying.

13 Likes

I’ve tried to stay out of these discussions, but a couple of things not in the initial statements, but the followups have caused me to want to say a small bit, at a little risk to myself putting some details I don’t normally talk about publically out there to contextualize the impact. [1]

I’m not a fan of the CoC. I think it is well intentioned, and my faith in the communities I choose to be a part of does help mitigate the issues I take with the CoC and similar policies that are in my view, flawed. I think some of the language in it has significant problems, but I haven’t found it to be something I can champion improvements to. There are only so many hours in a day, and I’m trying to stick to things where talking about it doesn’t leave me emotionally drained.

Python’s CoC at only an initial read seems much better than most policies I’ve read on this, in particular:

Every member of our community has the right to have their identity respected. The Python community is dedicated to providing a positive experience for everyone, regardless of age, gender identity and expression, sexual orientation, disability, physical appearance, body size, ethnicity, nationality, race, or religion (or lack thereof), education, or socio-economic status.

This phrasing is extremely inclusive and doesn’t fall into traps whereby treating one group as inherently advantaged, you would force someone who doesn’t feel comfortable talking about their identity online to disclose it to decide how to handle policy violations.

But in the enforcement procedures, this is undercut

  • Does this behavior negatively impact a marginalized group in our community? Is the reporter a person from a marginalized group in our community? How is the reporter being negatively impacted by the reported person’s behavior? Are members of the marginalized group likely to disengage with the community if no action was taken on this report?

I’m not a cis-het male of Anglo-Saxon descent. Despite that I could pass for at least a few of those, literally every identity label in that would be incorrect in describing me.

Not everybody who is part of a marginalized group is comfortable discussing their membership to that group [2], nor are assumptions about this from appearances ever okay. I find myself wanting to speak up here and point out that this phrasing doesn’t even only create disparate outcomes in a direction that’s seemingly intended, but also in ones not. It would be sufficient to say something like “is this activity harmful to individuals or groups based on discrimination involving immutable characteristics of an individual or group or based on circumstances outside the individual or group’s direct control”. It continues to serve as a reminder to moderators to consider outsized impacts on marginalized groups without requiring it to be only about marginalized groups and undermining the incredibly inclusive other part.

Neither Vagueness nor unequal enforcement of these sections are required for them to be effective and inclusive (outside of situations of the paradox of intolerance)


I can also empathize with the impossible situation moderators are in on disclosing actions and how much to disclose. I think that editing someone else’s post for content is over the line and that if this needs to be done, mods should hide (or in extreme cases remove) the content and, so long as the content did not rise to full removal, reach out to the author allowing them the opportunity to rephrase. This would act as a level of trust in both directions and allows people to keep their intent their own, while rectifying issues that may have crossed a line on their own, rather than it being forced by a mod. This also can help as a teachable moment from a place that isn’t shutting people down in a way they feel has no viable response.


Thank you to those engaging and discussing perception. Perception matters. These aren’t easy discussions to have no matter what your perspective is, I know I’m not perfect, and I’m not assuming others should be either here, but I do hope we can talk out the differences and issues different parties have and have the community end up stronger for it.


  1. If you don’t know me personally, this is not an invitation to ask about my personal experiences on this, while I would like to be at a point in my life where this is something I can comfortably talk about, writing this post is something I didn’t think I was going to do, and through a long time considering if I was comfortable putting that info out there… well, I’m not, but it feels necessary based on how things are going to advocate for what I believe in. ↩︎

  2. Seriously, this topic and several of the others has had me twisted up for a while on whether the right thing was to keep ignoring it and just focus on contributing to the parts of python where I have knowledge. it’s uncomfortable to be so vulnerable. ↩︎

13 Likes

The problem is that you put the quotes around the word punishment, rather than around the word transgressions.

And when they inevitably find out, there are at least as upset about the decision as they would be if you had been up front about it.

Also, they don’t just feel that way. It’s objectively true, clearly.

I had a much longer rant in this post originally, responding to a different line from your post. But I think that content would be better off-site. Instead, I’ll just take a moment to remind you: David Mertz helped write and enact the CoC, has oodles of social-justice/feminism/marxism/what-have-you cred, and is now telling you directly that recent interpretation is utterly ridiculous.

People don’t know what the practices are, because the practices demonstrably are not what the CoC says they are.

Even though the people enforcing it say that they are.

Because the enforcement policy demands such a difference.

We all know very well that you volunteer for the job. But it’s really interesting how everyone who actually volunteers and gets selected is like-minded.

But also, please keep in mind that the people being disciplined are equally well volunteering their own time.

8 Likes

This is my first post here; but this comment is out of line.

Without an example of volunteers being rejected for ideological reasons from working on the CoC committee, this insults people who volunteer to make the python community conform to our shared values. If there is evidence of of ideological selection, it should be presented, but absent any evidence, let’s not insult our volunteers with baseless accusations.

11 Likes

The two statements are actually about the same thing: the single incident that inspired most fear was far from “public”. The precipitating threads on python-dev and python-ideas were of course very visible, but I believe the name of the sole person banned was never revealed. They were the “secret subject” of the info-free ban announcement. Their name isn’t even in Victor Stinner’s external record of CoC bans.

But their name is widely known anyway. Some things cannot be kept hidden, no matter how hard you try (no, they didn’t advertise their name either - they stayed quiet as a mouse). In that case, the banned person was to my eyes (python-dev admin at the time, reading every tedious post in whole) hardly the most abusive poster in the thread. So why were they the only one banned?

But I’ve typed about that before, and no point rehashing it. As always, my take remains “sunshine is the best disinfectant”. Be as open as possible, not necessarily about victims, or even about offenders, but at least about the nature of offenses and actions taken (or not) in response.

PyCon CoC “transparency reports” do a nice job on that. But, best I can tell, there is nothing akin to them for CoC WG actions. Please consider doing something similar?

Since there was in fact only one point in my spectrum, that’s not surprising :wink:. The worst outcome I’ve seen was from that, the least transparent ban. The best outcome from the most transparent one, although in that case SK nailed the door wide open by effectively saying FU on the way out. A whole lot was revealed about why he was booted, and that did not inspire much fear. About the only support he got came from me and Raymond, because of the extraordinarily good work he did in an area where CPython was (& remains) extraordinarily short on relevant talent. But even I dropped support after more info about his actions came out (spontaneously volunteered in a thread that was openly discussing the details).

Of course. Fear is a universal emotion, and can never be eliminated. No matter how hard you try, you’ll never make members of marginalized groups feel truly safe either. What can be done is to make them feel safer. I want everyone to feel safer.

I believe the SC has never rejected a CoC WG recommendation, and that the Board has never rejected a SC request. That the people “in power” all agree they’re all the best of all possible people :wink: isn’t a surprise in any organization, not even in an objectively evil one.

Now I think the PSF has some excellent people “in power” too, today. I’d much rather put trust in procedures and mechanisms than in people, though. But that’s an entirely different topic.

Emotions may not be subject to the dictates of rational thought at all. People have to be taken as they are.

Try some sunshine? CoC transparency reports, already mentioned, would be a start at real transparency.

You wouldn’t dream about saying that of other people afraid to speak up. This topic isn’t about staying on Discourse (Steve Holden’s topic is), it’s about the PSF and core development. “Warrant staying” is far more consequential in this topic. You put “fear” in scare quotes as if you doubt it’s real, and suggest it’s due to an irrational distrust of the people they fear. Logically neat and tidy, I’ll agree - but utterly dismissive of the legitimacy of their emotions. People have to be taken as they are.

We’re already seeing people once highly placed in the PSF pecking order leaving Discourse, and even the PSF, due to the stresses they feel. They’re hardly evil, thin-skinned, fragile, fickle, or defenseless. There has to be major, mondo stress at work. But I have no doubt they’ll land on their feet - I fret more about people with no organizational power or status at all. So do you. There’s no fundamental reason for us to disagree here I can see. I hope we can cooperate on reducing fear for all.

10 Likes

It’s not really a surprise that people who are motivated enough to volunteer for this (despite it being a probably thankless and emotionally draining task) share strong beliefs and values. The contrary would be surprising.

Also, I doubt a lot of people apply for this, really.

6 Likes

I didn’t propose anything of the sort. Selection processes can be completely unconscious.[1]

The evidence is the mutual agreement in an environment where others disagree. It is a perfectly natural thing to happen and the effect can be extremely strong. (Skip to section 3 if you aren’t interested in learning more new things today.) But it is selection nonetheless.

I fail to see how it constitutes an insult.

They are clearly not shared. That’s the point. Before I point out a few examples, please meditate on the phrasing you just used. If they were shared values, why would it be necessary to make people conform?

Anyway.

There are people here who believe[2], for example, that supporting specific activist groups is a prerequisite to claiming to oppose whatever form of bigotry; and those who don’t. But you won’t, as far as I can tell, find people in the latter group enforcing the CoC - considering the incredible latitude shown towards those attacking people for not supporting those groups. (Never mind “Being respectful of differing viewpoints and experiences”.)

There are people here who believe that discrimination is discrimination regardless of who is discriminated against; and those who believe that certain forms of it simply don’t count, because of some supposedly academic theory. But those enforcing the CoC have the latter as explicit, written policy (just not in the CoC itself).[3]

There are people here who believe the commit message on that one PEP 8 edit meant substantively the same thing as the corresponding pull request commentary; and those who see “relic of white supremacy” as a serious accusation that necessarily reflects on owners or users of the work thus described. The people enforcing the CoC at the time appear to have consistently felt it was no big deal.

There are people here who believe that writing a word in plaintext is equivalent to using it, and that sufficiently offensive words must be scrubbed regardless of context; and those who draw a distinction. You can see, by now, where I’m going with this.


Aside from that, raw statistics tell us about this values divide.

Since let’s say Jan 1 2020 (the Python 2 sunset date), how many core devs have either been banned or suspended from the project, for CoC issues, or left (either officially, or noticeably “checked out”) in protest of something related to the CoC or to political discourse in the community? How many, similarly, have either had their PSF membership stripped, or ceded it?

How many are no longer making CPython commits and/or enjoying PSF membership, for any other reason?


  1. Weirdly: this is exactly what “systemic X-ism” is supposed to be. Yet when my side proposes something like this, it can only be framed as peddling conspiracy theories. Sigh. ↩︎

  2. Or at least, repeatedly say words that are inconsistent with any other interpretation I can think of. ↩︎

  3. And in laying out that policy, the document uses disparaging rhetoric. ↩︎

5 Likes

Looking at just core devs:

I can think of 3 or 4 who were banned or suspended for CoC issues.

Something like 19 core devs have become inactive since Python 2 sunset.

2 Likes

An even more interesting statistic, although from 2017, is that literally 50 core developers became inactive before our transition to GitHub. You can see all entries in our log marked “Did not make GitHub transition”: Developer log.

5 Likes

David did help author the original CoC which was, I believe, 2 paragraphs. David was not involved in the substantial rewrite that brought the CoC to its current state as it occurred well past his time on the board and has never been a member of the Conduct WG.

(via Why I'm leaving discuss.python.org - #64 by chrisjrn)

6 Likes

On the subject of intended versus perceived meaning, I read all of the offending conversation and, honestly nothing struck me as inappropriate. Others have made it clear that they feel otherwise and this shows that what is disturbingly unprofessional to some is invisible to others. With that in mind, I was actually pretty spooked to discover this thread and my perceived meaning of this discussion’s opening post was:

  1. Mentioning sensitive topics will result in your words being well… twisted
  2. Anyone not up to date with the latest ways to cause offence to any person is not welcome here and will get kicked out for an unspecified crime that they don’t understand (this scares me a lot because I don’t keep up with the world of social politics)
  3. Some unspecified emoji is bad for some unknown reason (this vagueness really reaffirms point 2)
  4. Your only warning if you inadvertently cross some line is some vague hint that you probably won’t notice nor know is aimed at you (in fact the only reason I wasn’t paranoid that I had said something awful was that I hadn’t said anything at all)

I don’t doubt that the reality is much less severe than these and later discussion has already dispelled 4 and the second half of 2 but I just wanted to point out that that post is alienating people too and in turn, just how easy it is to alienate even when you think you’re clearly going out of your way to do otherwise.

Oh, that’s not going to cut it. Reading that page does not for example tell me that wink emojis are on the wrong side of this line. In fact, if it weren’t for this, I’d still be trying to guess what the issue was with them (my best and terrible guess was that its informality could imply insincerity which could be seen as a lack of interest but then every emoji is informal so my takeaway there would have been that all emojis are banned and to always speak like a droid).

17 Likes

I haven’t typed the full phrase since, because, as @kknechtel keenly observed, the inability to draw a “use-mention” distinction appears too common. So I’ve only used “SH” since, trusting the meaning is clear enough.

I still don’t know how they manage to read offense into that post (unless just confirmation bias blocking clear thought), but in case it is the quotes: yes, I almost always type “SH training” (including the quotes), deliberately. Never around SH on its own, but in the context of “training”.

What do you do if you want to, e.g., learn jiu jitsu? Take jiu jitsu training.

Need help learning to become assertive? Take assertiveness training.

Want to become a sharpshooter? Sign up for sharpshooter training.

Lifeguard training, CPR training, first aid training, on & on.

So what is “SH training” about? Obviously, learning how to become better at SH. I despise the phrase. That’s why I put it in scare quotes, to make clearer that I’m using the phrase because that’s the phrase universally used, despite that its literal meaning is the opposite of what it’s actually about.

I know the meaning of the quotes isn’t obvious, but I don’t want to type paragraphs every time, no emoji exists for this case (an eyeroll fits but is too subtle), and in NO case do I want someone for whom English is puzzling to get the impression that these are cases in which people are learning to become more proficient at SH. At least the puzzling quotes may spur them to ask an English speaker what might be going on.

So, ya, just Tim being an insensitive ass again :wink:.

4 Likes

TIL two additional things:

  • Do not write “bad-XY training”, if necessary use “training to prevent XY”.
  • Do not use emoji any more.

There are complicated social rules when to use which emoji in which context.
I recognize that I have lost the overview of these rules and they are changing over time.

A short google session regarding the “wink emoji” has revealed to me:

  • it is mostly used for flirting in a “S” context
  • it is often understood as disparagement of the reader
  • it is not understood as an ironic self-reflection of the text (as I have used it most often)
1 Like

I’ve considered leaving, but have decided to stay but minimise my activity.

Not because participation hasn’t been interesting or useful, which it has.

It’s partly because of other commitments, but also because of seeing certain types of unhelpful discussions, where some members seem to act as unofficial censors in the discussions, laying down the law on what can be said and what cannot be said, and in some cases, even implying mind-reading capabilities where they “know” the meaning and intent of a post they are responding to better than the poster, as illustrated by some memorable phrases I can recall, such as “[it] does not do what you think it does”. This is rude: it is basically telling someone that they don’t know what they are talking about, when probably they do or might simply have a different understanding of the issues being discussed. Mind-reading and second guessing other people isn’t a good approach.

There have been other discussions where responses to newcomer posts have been quite rude and dismissive - for example, suggesting that novices should not even think about contributing to open source projects because the “leaders” in the projects would be unhappy at the prospect. These kinds of statements are not only untrue but border on rudeness, especially when they come from established members who should know better.

I think all posts should be discussed, politely, at face value and on facts. To be sure, not every post or question deserves a response, but I would suggest that responses should avoid language that implies mind-reading or second guessing the poster, or attacks or dismisses their question or post.

5 Likes

Well, it’s clear from these discussions that there are also complicated social rules around the use of English language, and they seem to be growing more complicated by the day. Emojis are not special in that regard.

(I would be fine with dropping English in favor of French, myself, but I’m probably in a minority :wink: )

14 Likes

I think this entire debacle is less to do with complex social rules and more just a breakdown of good-faith discussion. I luckily only noticed everything two days ago and have the power of hindsight and not being a participant in the discussion. I don’t have much to add apart from something I saw in a talk by Brandon Rhodes, paraphrased here:

If you think a text sounds positive the recipient will likely think it sounds neutral. If you think a text sounds neutral the recipient will likely think it sounds negative.

I try to follow this advice all the time, I even wrote it as the first section in my $work’s guide on code review. However, it is difficult to do and I fail often. I think a lot of the previous month-and-a-half of discussion could’ve been prevented and gotten a less hostile if such advice was followed. But to err is human and getting angry over fairly inconsequential things is perhaps even more so.

C’est la vie.

6 Likes