Skip to content
This repository was archived by the owner on Dec 10, 2024. It is now read-only.

add guidelines for respectful communications #14

Merged
merged 1 commit into from
Nov 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
about_title: en (English) Haskell Foundation Guidelines for Respectful Communication
about_content:
about_page_title: Haskell Foundation Guidelines for Respectful Communication
about_page_content: |

### Preamble

The Haskell Foundation has adopted these guidelines for respectful communication.

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.

### Motivation

We are motivated to adopt a set of guidelines for respectful communication for several reasons

* Diversity and inclusion. We recognize that the Haskell community, echoing the technology industry more generally, skews white and male. We see it as our duty and honour to spread the joy of Haskell widely and to broaden the patterns of participation, in the hopes that, one day, we will no longer be askew.
* Making an explicit commitment will encourage us to review our messages to see if they meet the goals set out here, and will give others some specifics to point to if we fail.

### Guidelines for Respectful Communication

As members of a Haskell committee, we commit ourselves to a high standard of
public behaviour. We have one over-arching rule:

**We strive to treat every person with respect.**

Specifically, we aspire to these qualities:

* We treat everyone with courtesy, aware that their diverse backgrounds,
experiences, goals, and perspectives may be very different to ours.
* 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.
* We strive to be scrupulously polite at all times. There should be no
rudeness, name-calling, or harassment in our communication.
* 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.
* 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.
* Where we disagree, we try to be curious about the perspective, goals,
motivation, and priorities of the other person.
* 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).

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 to
write to that person privately, gently drawing attention to their lapse. If
you're not comfortable with that, please contact the chair of the committee, or
(if the chair is the problem) the vice-chair or co-chair.

Our response should usually be to apologise and stop doing what it was that you
are unhappy about. Even if we feel we have been misinterpreted or unfairly
accused, the chances are good there was something we could have communicated
better, and an apology is far more likely to bring healing than is a
counter-accusation.

### Acknowledgements

We'd like to thank the communities and projects that established code of conducts and diversity statements as our inspiration, including these:

* A month before this document was first published, Michael Snoyman proposed
a [Stack code of conduct](https://www.snoyman.com/blog/2018/11/proposal-stack-coc) with a motivation similar to ours.
* The [GNU Kind Communication Guidelines](https://www.gnu.org/philosophy/kind-communication.html), published in October 2018, also express the positive tone we seek; [Stallman’s post](https://lwn.net/Articles/769167/) explains the intent.
* The [Snowdrift community code of conduct](https://wiki.snowdrift.coop/community/conduct) also has a companion [Guidelines for healthy communication](https://wiki.snowdrift.coop/community/honor-users).
* [Open code of conduct](https://github.com/todogroup/opencodeofconduct/blob/gh-pages/index.md)
* [Pycon code of conduct](https://github.com/python/pycon-code-of-conduct/blob/master/code_of_conduct.md)
* [Rust code of conduct](https://www.rust-lang.org/policies/code-of-conduct)
* [TypeLevel code of conduct](https://typelevel.org/conduct.html)
* [Contributor covenant](https://www.contributor-covenant.org/)

---
5 changes: 5 additions & 0 deletions resources/content/pages/resources/resources-en.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ resources_content:
### Haskell Foundation Technical Agenda
The [technical agenda](/technical-agenda) includes a list of projects that we expect the HF to cultivate and support, depending on resources. This list is meant to be suggestive, not definitive: as the HF continues to mature, we may find that other technical projects become more important than what is listed below. In particular, we expect the HF to support a function where we can collect feedback (encompassing instruments like surveys, interviews, and user studies), and then we hope to use that feedback to inform our technical priorities.

### Guidelines For Respectful Communication
The [guidelines for respectful communication](/guidelines-for-respectful-communication) guide how the we aim to comport ourselves and act with respect in the community.

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.

### Supporting The Haskell Foundation

For public distribution. This document outlines the reasons for your organization to get involved with sponsorship for the Haskell Foundation.
Expand Down
22 changes: 22 additions & 0 deletions src/pages/guidelines-for-respectful-communication.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import React from 'react'
import Grid from '@material-ui/core/Grid'
import Layout from '../components/Layout'
import Page from '../components/Page'
import RespectfulCommsPageQuery from '../queries/RespectfulCommsPageQuery'
import Markdown from '@input-output-hk/front-end-core-components/components/Markdown'

export default () => (
<RespectfulCommsPageQuery
render={(content) => (
<Layout>
<Page title={content.about_page_title}>
<Grid container spacing={2}>
<Grid item xs={12}>
<Markdown source={content.about_page_content} />
</Grid>
</Grid>
</Page>
</Layout>
)}
/>
)
41 changes: 41 additions & 0 deletions src/queries/RespectfulCommsPageQuery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import React from 'react'
import PropTypes from 'prop-types'
import { StaticQuery, graphql } from 'gatsby'
import Language from '@input-output-hk/front-end-core-components/components/Language'

const RespectfulCommsPageQuery = ({ render }) => (
<Language.Consumer>
{({ key: lang }) => (
<StaticQuery
query={graphql`
query {
allFile(filter:{relativePath:{glob:"content/pages/guidelines-for-respectful-communication/*.md"}}) {
nodes{
relativePath,
childMarkdownRemark{
frontmatter {
about_content {
about_page_title
about_page_content
}
}
}
}
}
}
`}
render={({ allFile }) => {
const content = allFile.nodes.filter(node => node.relativePath === `content/pages/guidelines-for-respectful-communication/guidelines-for-respectful-communication-${lang}.md`).shift()
if (!content || !content.childMarkdownRemark) throw new Error(`No guidelines-for-respectful-communication found for language ${lang}`)
return render(content.childMarkdownRemark.frontmatter.about_content)
}}
/>
)}
</Language.Consumer>
)

RespectfulCommsPageQuery.propTypes = {
render: PropTypes.func.isRequired
}

export default RespectfulCommsPageQuery