Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adjust guidelines for respectful communication #480

Open
wants to merge 6 commits into
base: hakyll
Choose a base branch
from

Conversation

hasufell
Copy link

Resolves #463

@hasufell
Copy link
Author

I have no idea if there is a process regarding how to update these guidelines. From what I would expect is that the board needs to approve of it?

@jmct
Copy link
Contributor

jmct commented Feb 25, 2025

I'll have to sit on it a tiny bit more, but I wonder if it's possible to add another sentence after what you've changed, saying that behavior that runs counter to that is not acceptable.

But it seems difficult to word such a thing. I'll think on it.

Edit: I should add that I like your change! I just feel that we should also make clear that certain behaviors are not okay.

@hasufell
Copy link
Author

hasufell commented Feb 25, 2025

Explicit intolerance towards toxic behaviors is an important mechanism of a healthy community. I just wonder what the point of that strong wording is, when:

  • in the small internal circle of the HF, it can easily be enforced (and probably does not need to be explicit anyway)
  • in the larger community, it cannot be enforced

I think the only time where it really makes sense to have such strong wording is in places like IRC channels, where there's lots of people and rules need and can be enforced.

@@ -38,7 +38,7 @@ <h2>Guidelines For Respectful Communication</h2>
<li>Where we disagree with someone, we avoid forms of expression that might make our dialogue partner feel attacked, humiliated, demeaned, or marginalised. Our critique should always be of specific statements and claims, never of people.</li>
<li>Disagreement itself is fine: we are enriched by robust technical debate. But we seek to make the tone of that debate to be a conversation among people who respect, or even admire, each other.</li>
<li>Where we disagree, we try to be curious about the perspective, goals, motivation, and priorities of the other person.</li>
<li>We do not tolerate any form of discriminatory language or behaviour towards any minority (for example age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation).</li>
<li>We welcome and support people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. </li>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestions

  • Make this the first bullet.
  • Stick to "We welcome as members of Haskell community people of all backgrounds...". The "and support" is true but it's an extra distraction (what does it mean exactly?)
  • Make the intro sentence "Specifically, we aspire to these behaviours:", rather than "qualities". Behaviour is what you do; quality is more what you are.
  • Consider following the bullets with "All these guidelines apply to our behaviour; that is, what we do. They specifically do not, and should not, seek to constrain anyone's beliefs; that is, what they think."

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find all your suggestions excellent. Please double check I got it right.

Copy link

@simonpj simonpj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm


<ul>
<li>We welcome as members of the Haskell community people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. </li>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe a comma after "not limited to,".

Copy link
Contributor

@mpilgrem mpilgrem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two thoughts occurred to me on reading the revised text.


<ul>
<li>We welcome as members of the Haskell community people of all backgrounds and identities. This includes, but is not limited to, members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. </li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder, given the purpose of these guidelines, if the second sentence - seeking to elaborate what is meant by 'all backgrounds and identities' - is needed.

<li>We treat everyone with courtesy, aware that their diverse backgrounds, experiences, goals, and perspectives may be very different to ours.</li>
<li>In our communication, we consistently honour and affirm the passion, professional expertise, and good intentions of others. Even if we occasionally doubt these qualities in someone else, we will not make public accusations of incompetence, malice or ulterior motives.</li>
<li>We strive to be scrupulously polite at all times. There should be no rudeness, name-calling, or harassment in our communication.</li>
<li>Where we disagree with someone, we avoid forms of expression that might make our dialogue partner feel attacked, humiliated, demeaned, or marginalised. Our critique should always be of specific statements and claims, never of people.</li>
<li>Disagreement itself is fine: we are enriched by robust technical debate. But we seek to make the tone of that debate to be a conversation among people who respect, or even admire, each other.</li>
<li>Where we disagree, we try to be curious about the perspective, goals, motivation, and priorities of the other person.</li>
<li>We do not tolerate any form of discriminatory language or behaviour towards any minority (for example age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation).</li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is about how we behave, but could be put more succinctly: "We do not tolerate discrimination."

The practical problem is that is not without some qualification: some forms of descrimination are not illegitimate. (For example, in the UK, I understand that it is not illegitimate to discriminate against beliefs that are not worthy of respect in a democratic society. The website of the UK's Equality and Human Rights Commission gives examples.) The best I could come up with:

"We do not tolerate discrimination that conflicts with our desire to be welcoming and respectful and would not tolerated in a democratic society."

Copy link
Author

@hasufell hasufell Feb 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm afraid that sounds too political to me. You're basically implying everyone needs to value democratic governing structures.

Which types of societies are happy to follow the values outlined above is a philosophical debate and not our concern.

I want all political notion out of this text. Otherwise I don't see myself subscribing to it.

Regarding your point about "distinguished intolerance" I agree from a philosophical standpoint. However, as explained earlier, I find such wording questionable if there's no mechanism to enforce.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we should over-think this. The important thing is to get the intent clear; trying to find language that deals precisely with low-probability corner cases ends up (a) with convoluted language where the intent is not clear and (b) with time burned on discussions about those corner cases that are not actually a leading problem in our community.

For that reason, I'd be happy just to say

  • We each welcome as members of the Haskell community people of all backgrounds, identities, and beliefs, provided only that they in turn behave in the respectful way articulated in these guidelines.

without listing anything. Keep it simple. (I'm not strongly against listing things. I just don't want us to get distracted by litigating the details.)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy with that wording as well.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hasufell, I do not mean to imply that everyone must value democratic governing structures. I am seeking only to describe what we in the Foundation do not tolerate, by reference to something that will be familiar to many people (regardless of the society in which they live).

Given @simonpj's point about not having to cater for every edge case, and I think he and I are on the same page as regards 'listing things', I would be happy with:

"We welcome as members of the Haskell community people of all backgrounds and identities."

...

"We do not tolerate behaviour that conflicts with our desire to be welcoming and respectful."

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@simonpj, on a strict analysis, if it is accepted that 'forms of expression' include all observable behaviours (not just the use of language) and 'dialogue partner' means any person affected by such 'forms of expression', I think that is correct - not so much the dimension of 'politeness', but:

we avoid forms of expression that might make our dialogue partner feel attacked, humiliated, demeaned, or marginalised

as it is had to see how you could engage in unjust and prejudicial discriminatory behaviour without a genuine risk of the adversely affected counterparty feeling, at least, 'marginalised'.

As I have to interpret some of the terms, I would recast that in more general terms:

we avoid forms of expression and other behaviours that might make somebody feel attacked, humiliated, demeaned, or marginalised

However, that strict analysis relies on a close reading of the text. My own preference is that the Foundation continue to make clear that it does not tolerate unfair and prejudicial discriminatory behaviour. Not least, because moving from an express statement that the Foundation 'does not tolerate any form of [discrimination]' to no express statement could be interpreted by some that the Foundation was, in some way, 'dialing back' from its intolerance of discrimination. The motivating issue #463 was not that the Foundation should not be intolerant of discrimiation, but that the statement of its intolerance could be interpreted as drawn too narrowly.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mpilgrem I feel we're running in circles.

Indeed, the original motivation was:

  • political belief was oddly omitted from a pretty long list of things we do not discriminate against
  • there was also an odd emphasis on "minority", making it a bit unclear whether discrimination against majorities is seen as less problematic

However, as discussed in the ticket as well, some of us realized that other CoCs have more positive language, which seemed more appropriate. I won't die on that hill, though. I think the positions are laid out and the board can make a judgement.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hasufell, to be clear, I agree that the emphasis of the document shoud be on 'the positive', both in its structure and its tone. However, it is difficult to set out a 'prohibition' in 'positive terms'. For example, Rust, which (I understand) prides itself on its community, uses this language for what it seeks to 'prohibit':

We will exclude you from interaction if you insult, demean or harass anyone. ... In particular, we don’t tolerate behavior that excludes people in socially marginalized groups.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example, Rust, which (I understand) prides itself on its community

After Rust Moderation Team resigns meltdown, I would not quote Rust community management as a successful practice.

However, that strict analysis relies on a close reading of the text.

GfRC is largely a voluntary declaration of intentions; a group of people referring to it has very limited practical powers to enforce "we do not tolerate" on third parties. Thus such wording is almost inevitably inactionable. "Welcoming" on the other hand is something such group can actively do, so I like the new wording better.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the question of 'enforcability on third parties' does not arise, because the introduction to the Foundation's Guidelines explains:

We do not seek to impose these guidelines on members of the Haskell community generally. Rather it is a signal that we seek high standards of discourse in the Haskell community, and are willing to publicly hold ourselves to that standard, in the hope that others may voluntarily follow suit.

That is, the existing statement about what the Foundation does not tolerate (namely, "any form of discriminatory language or behaviour ...") is one about a standard of behaviour (a) to which the Foundation seeks to be held and (b) which it hopes others will choose to follow.


<ul>
<li>We welcome as members of the Haskell community people of all backgrounds and identities. This includes, but is not limited to, members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability. </li>
<li>We treat everyone with courtesy, aware that their diverse backgrounds, experiences, goals, and perspectives may be very different to ours.</li>
<li>In our communication, we consistently honour and affirm the passion, professional expertise, and good intentions of others. Even if we occasionally doubt these qualities in someone else, we will not make public accusations of incompetence, malice or ulterior motives.</li>
<li>We strive to be scrupulously polite at all times. There should be no rudeness, name-calling, or harassment in our communication.</li>
<li>Where we disagree with someone, we avoid forms of expression that might make our dialogue partner feel attacked, humiliated, demeaned, or marginalised. Our critique should always be of specific statements and claims, never of people.</li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not changed by the current pull request but, for the reasons dicussed in my comment below, I think this could usefully be expressed in more general terms, namely:

We avoid forms of expression or other behaviours that might make somebody feel attacked, humiliated, demeaned, or marginalised - even if we disagree with that person.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One difficulty with "we will exclude you..." language is that the current guidelines say "As members of the Haskell Foundation, we commit ourselves to a high standard of public behaviour. ...We seek to apply these standards in all our public interactions in the Haskell sphere, including email, social media, discussion forums, and so on. ... If one of us fails to meet these standards, the ideal course of action is ... "

So the guidelines are not currently framed as applying to everyone. We could change that, for example by saying that they are mandatory for participants in the Haskell Discourse -- and that might be a good change. (I'm not sure that there are any other platforms that are under HF's control, and hence from which the HF could exclude bad actors. (I'm not even certain that the Discourse is.)

Even if we did say this, it would require some broader re-framing of the current words. I wonder if we should land Julian's MR (in some form) before tacking a broader question in separate PR?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To clarify, I didn't mean to suggest above that the Foundation should adopt language similar to Rust's 'we will exclude'. I quoted Rust only as an example of a Code of Conduct dealing both with the 'positive' (what is welcomed) and the 'negative' (what is not tolerated).

I also do not mean to expand the scope of this pull request. To recap my own comments, I agree with @simonpj's suggested opening and do not see a need for 'listing', so:

We each welcome as members of the Haskell community people of all backgrounds, identities, and beliefs, provided only that they in turn behave in the respectful way articulated in these guidelines.

I would prefer to retain a closing statement of what the Foundation does not tolerate and, again, I do not see a need for 'listing', so (or something to that effect):

We do not tolerate behaviour that conflicts with our desire to be welcoming and respectful.

If others do want to delete a statement of what the Foundation does not tolerate, then I would like to see the exisiting statement of what the Foundation 'avoids' put in more general terms, namely:

We avoid forms of expression and other behaviours that might make somebody feel attacked, humiliated, demeaned, or marginalised - even where we disagree with that person.

@simonpj
Copy link

simonpj commented Mar 4, 2025

I would prefer to retain a closing statement of what the Foundation does not tolerate and, again, I do not see a need for 'listing', so (or something to that effect):

We do not tolerate behaviour that conflicts with our desire to be welcoming and respectful

I do not object to that -- perhaps immediately after the bullets.

So to summarise, I think we are converging around:

  • Delete the current last bullet "We do not tolerate..."
  • Add a new first bullet "We welcome into the Haskell community people of all backgrounds, identities, and beliefs, provided only that they in turn behave in the respectful way articulated in these guidelines". (I have made a tiny rewording.)
  • Following the bullets, add (as an ordinary paragraph) "We do not tolerate behaviour that conflicts with our desire to be welcoming and respectful". (I'm agnostic about adding this, but don't object.)

Let's see if others agree.

Mike suggests adding

  • We avoid forms of expression and other behaviours that might make somebody feel attacked, humiliated, demeaned, or marginalised - even where we disagree with that person.

But that's already there in (current) bullet 4, isn't it?

@mpilgrem
Copy link
Contributor

mpilgrem commented Mar 4, 2025

To clarify, my final suggestion on what the Foundation 'avoids' is not an addition but an amendment. The existing guidance has:

  • Where we disagree with someone, we avoid forms of expression that might make our dialogue partner feel attacked, humiliated, demeaned, or marginalised. ...

which (if we lose a positive statement about what the Foundation will not tolerate) I would amend to:

  • We avoid forms of expression and other behaviours that might make somebody feel attacked, humiliated, demeaned, or marginalised - even where we disagree with that person. ...

That is because [1] the existing statement of what the Foundation will not tolerate (which is proposed to be deleted):

  • We do not tolerate any form of discriminatory language or behaviour ...

covers all forms of behaviour (as well as, expressly, the use of language); and [2] the existing clause "Where we disagree with someone, ..." might be taken to limit the circumstances in which the Foundation avoids causing a person to feel attacked, humiliated, demeaned, or marginalised. Moving the 'where we disagree' text to the end makes clear that it is an example of a relevant context, not a qualifier limiting relevant contexts.

@simonpj
Copy link

simonpj commented Mar 4, 2025

Oh ok. So the summary is:

  • Delete the current last bullet "We do not tolerate..."
  • Add a new first bullet "We welcome into the Haskell community people of all backgrounds, identities, and beliefs, provided only that they in turn behave in the respectful way articulated in these guidelines". (I have made a tiny rewording.)
  • Reword (current) bullet 4 thus "We avoid forms of expression and other behaviours that might make somebody feel attacked, humiliated, demeaned, or marginalised - even where we disagree with that person."

That's fine with me

@Bodigrim
Copy link

Bodigrim commented Mar 4, 2025

I think "might make somebody feel attacked" is very vague. Many people feel attacked by a mere fact of disagreement; I'm not in control of their feelings, but I'm in control of my intentions. Thus I'd prefer a more actionable and active statement like "We avoid forms of expression and other behaviours that attack, humiliate, demean, or marginalise - even where we disagree with that person".

@hasufell
Copy link
Author

hasufell commented Mar 5, 2025

While we have momentum here and without trying to blow up the scope (feel free to discard), it was noted in a CLC discussion that the following wording is problematic:

In our communication, we consistently honour and affirm the passion, professional expertise, and good intentions of others. Even if we occasionally doubt these qualities in someone else, we will not make public accusations of incompetence, malice or ulterior motives.

I think we need to be more careful here. What I think we need to change/outline here is:

  • we assume good faith unless we have good reason not to (and those reasons must be concrete and not of discriminatory nature)
  • we avoid public accusations and any other form of public shaming ("avoid" means there may be good reasons to do so anyhow, e.g. if someones behavior is a threat to the ecosystem)

I think that would make more people comfortable to explicitly subscribe to the CoC.

@simonpj
Copy link

simonpj commented Mar 5, 2025

I'd prefer a more actionable and active statement like "We avoid forms of expression and other behaviours that attack, humiliate, demean, or marginalise - even where we disagree with that person".

That is fine with me.

I think we need to be more careful here. What I think we need to change/outline here is:

The guidelines are, well, guidelines. The cover the common case. I worry that if we spend too many words covering extreme cases we'll end up with convoluted language that dilutes our intent with delicately phrased exceptions. I wonder if we might want to say explicitly that the guidelines (written in simple language without exceptions) are just that: guidelines? Something like "These guidelines address normal, sometimes-fallible human interactions within our community. In extreme cases, however, members of the community should use their best judgement, following the spirit of the guidelines. They are guidelines, not laws." Would that help?

@hasufell
Copy link
Author

hasufell commented Mar 5, 2025

Well, I think the wording is pretty strong, it says:

[...] we will not make public accusations of incompetence, malice or ulterior motives

I think there are times when this is necessary.

In my opinion, the guidelines should reflect that a healthy tech community absolutely does speak up about cases of incompetence, malice and ulterior motives.

We just need to make sure to follow due process, in order of:

  • contacting the person in private
  • contacting stake holders in private about that matter
  • speaking publicly about it if all else fails

These situations have happened before in Haskell. And I think it would be good form to reflect that we can deal with bad actors. We just need to agree that public shaming is never our default mode.

I propose:

In our communication, we consistently honour and affirm the passion, professional expertise, and good intentions of others. When we doubt these qualities in someone else, we prefer to deal with those matters discreetly, instead of making public accusations.

@jmct
Copy link
Contributor

jmct commented Mar 7, 2025

Thanks Julian for pushing on this!

In the most recent version you remove the directive to reach out the the HF if an issue comes up.

On the one hand, I agree that the HF is not the 'communication police' of the Haskell community, and that folks should try to resolve these issues within the body/context in which they arise. At the same time, I feel that there is a role for the HF in these things. The same way that one might approach a trusted 3rd party and say "can you speak to X about Y?".

What do you think?

EDIT: to be clear, this is not a request for a further change. I'm genuinely asking what you think :D

@Bodigrim
Copy link

Bodigrim commented Mar 7, 2025

I’m doubtful about escalation mechanisms in GfRC in general, but honestly I think that suggesting HF to be involved in each and every dispute by random people on random corner of the internet is an overreach. I hardly see how it can be effective for either side. But it can easily be a huge resource drain, if wielded maliciously.

The text of GfRC referred HF only because it was for HF members. The original edition of GfRC for GHC SC members refers to GHC SC for escalation, etc.

@hasufell
Copy link
Author

hasufell commented Mar 8, 2025

I think any mention of the Haskell Foundation makes the GFRC a bad CoC that is hard to sign up to as a third body.

The HF is free to state somewhere else that they are happy to help resolve social issues in important cases. But I'm not even sure that needs to be said or written down. We don't need a process for exceptional circumstances.

E.g. the HF under David helped resolve the situation around the locked down haskell subreddit. I can imagine other scenarios, loosely related to GFRC or other social issues. But we really don't need a process for that.

The HF simply has to gain recognition as a mediator to become a helping hand. Anything else sounds a bit authoritative and doesn't vibe well in the anarchist landscape that open source is.

@mpilgrem
Copy link
Contributor

mpilgrem commented Mar 8, 2025

EDIT3: When I commented below, I was unaware of:

@hasufell's purpose can be understood by reference to #481.

-oOo-

The purpose reflected by @hasufell's most recent suggested edits differs from the current purpose of the published document, but I think both can be accommodated by restructuring the published document.

  • After some explanatory introductory material, the published document sets out the standards the representatives of the Foundation set for themselves (acting in that capacity). The Foundation hopes that others will choose to follow suit, but does not seek to impose anything on others. The document also sets out what the Foundation hopes will happen if a representative appears to fall short of those standards.

  • @hausfell is, however, looking for a statement of standards that others can readily 'adopt'/'sign up to', for their own purposes.

The solution, I think, is to restructure the published document to separate (a) what is specific to the Foundation from (b) something that others could easily 'adopt by reference'. The current document has a 'sandwich' structure ('bread, filling, more bread'). I would move all the Foundation-specific material (the 'bread') to the first part of the document and put the 'adoptable' material (the 'filling') under a final heading ('Standards of public behaviour', or similar).

EDIT1: It is not straightforward to convey what I have in mind through the medium of commenting on a pull request on HTML in a GitHub repository. Perhaps we should settle the original pull request within the scope of the original motivating issue and then deal with 'repurposing' of the Foundation's published document separately?

EDIT2: The following link to a Google Docs document may be a more accessible way of understanding what I have in mind regarding restructuring: https://docs.google.com/document/d/16Y3ZDl28o8AMu4CdQ4FZk2Wwfm73b5cnTp5q4dgzDHM/edit?usp=sharing

@hasufell
Copy link
Author

The following link to a Google Docs document may be a more accessible way of understanding what I have in mind regarding restructuring: https://docs.google.com/document/d/16Y3ZDl28o8AMu4CdQ4FZk2Wwfm73b5cnTp5q4dgzDHM/edit?usp=sharing

I have no strong opinion on the restructuring. The meat of the text under "Our Standards of Public Behaviour" does not mention "Haskell Foundation", which makes it sufficiently general.

@simonpj
Copy link

simonpj commented Mar 10, 2025

Perhaps we should settle the original pull request within the scope of the original motivating issue and then deal with 'repurposing' of the Foundation's published document separately?

I agree. Let's land this one. I'm content with its current state. Does anyone object?

(You might want to make further changes but that could be a new PR.)

@hasufell
Copy link
Author

Perhaps we should settle the original pull request within the scope of the original motivating issue and then deal with 'repurposing' of the Foundation's published document separately?

Removed the latter.

@jmct
Copy link
Contributor

jmct commented Mar 10, 2025

Looks good to me.

I'll let the board know they should take a look. I imagine that the board members who have an opinion have already chimed in, but it's worth telling the wider board that a consensus has been reached here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Minor adjustment to Guidelines For Respectful Communication
5 participants