Our community is dedicated to helping people learn and use the PureScript programming language. Our members can't do this if they are being harassed, stalked, or discriminated against. It's also hard to do that if you're regularly made to experience emotionally draining situations or made to wonder whether you belong. Accordingly, all PureScript community members are expected to show respect and courtesy towards each other in all interactions in our community.
We need a common understanding of what it means to "show respect and courtesy towards each other" and so we have adopted the following code of conduct. This code of conduct is enforced by our moderators and applies in all community spaces.
The PureScript community spaces are places to discuss the PureScript programming language. In these spaces:
- We talk about the language, its related libraries and infrastructure, and our experiences using it.
- We help PureScript programmers learn the language and we ask for help becoming stronger programmers ourselves.
- We discuss general functional programming concepts and other parts of programming, type theory, and mathematics that are relevant to PureScript.
- We organize open-source work, meetups, hackathons, and other community events.
- We discuss what we can do to grow an inclusive, friendly, and respectful community.
The following types of behavior are unacceptable in the PureScript community and constitute violations of this code of conduct.
- Harassment: making offensive comments related to age, body size, disability, ethnicity, sex characteristics, gender identity and expression, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. This also includes the use of sexualized language or imagery and unwelcome sexual or romantic attention.
- Threats: threatening someone physically, verbally, or otherwise, such as threatening to publicize sensitive information about someone's personal life.
- Prejudice and blatant -isms: saying things that are explicitly racist, sexist, homophobic, transphobic, ageist, or otherwise harmful expressions of prejudice and bias. For example: arguing that some people are less intelligent because of their gender, race, or religion. Subtle expressions of harmful prejudice can be small mistakes, and aren't considered violations. However, repeating something after it has been pointed out to you that it breaks this rule, or arguing with someone who has pointed that out to you, is considered unwelcoming behavior and is not allowed.
- Maliciousness towards other members: deliberately attempting to make others feel bad, name-calling, or singling others out for derision. For example: telling someone they're a poor programmer.
- Being especially unpleasant: for example, if we've received several reports of annoying, rude, or especially distracting behavior.
The rule around prejudice and blatant -isms is especially complicated because not everyone agrees on what constitutes a violation. Members of the PureScript community live in disparate cultures and speak different languages. Harmful prejudices are baked into society in ways that can make them hard to recognize, and not everyone experiences prejudice in the same way: subtle ageism won't hurt someone who is young in the same way it hurts someone who is older.
If you are told by a moderator that a symbol, phrase, or message is unwelcome, please apologize and move on. It's not a big deal for community members to make a mistake from time to time.
In the previous section we categorized unacceptable behavior into abuse and unwelcoming behavior. Moderators will respond differently depending on the type of violation that occurs.
If we witness or receive a report about abusive behavior, we will contact the complainee and investigate the details of the incident. In the event that the incident constitutes abusive behavior in the opinion of the moderation team, the perpetrator will be removed from the PureScript community. Their Discord and Discourse accounts will be deactivated and they will be removed from PureScript GitHub organizations.
If we witness or receive a report about unwelcoming behavior, there are several responses we may take:
- Correction: Caused by unwelcoming behavior that could reasonably be a small mistake. A moderator will publicly or privately explain why the behavior is unwelcome and suggest, if necessary, alternate language or behavior that is acceptable.
- Warning: Caused by repeated unwelcoming behavior, or more serious mistakes. A moderator will issue a private, written warning, explaining the violation and why the behavior is inappropriate. The member may be asked to edit or remove offending messages. A second violation will result in a temporary ban.
- Temporary Ban: Caused by repeated unwelcoming behavior or a serious violation of community standards. A moderator will temporarily suspend the user's Discord and Discourse accounts and block them from PureScript organizations. The user can still communicate with moderators via email.
- Permanent Ban: Caused by a repeated pattern of unwelcome behavior or a serious transgression like abusive or threatening behavior. A moderator will deactive the user's Discord and Discourse accounts and permanently block them from PureScript GitHub organizations.
This code of conduct is a set of guidelines that helps our community protect safe, inclusive spaces to discuss PureScript. However, it doesn't enumerate all possible forms of unwelcome behavior, and incidents are evaluated on a case-by-case basis so as to understand their full context.
PureScript members are held to these standards when interacting at PureScript events or online in official PureScript community spaces including:
- Discourse (https://discourse.purescript.org)
- Discord (https://purescript.org/chat)
- GitHub (https://github.com/), under the
purescript
,purescript-contrib
,purescript-web
, andpurescript-node
organizations.
The code of conduct also applies anywhere someone is officially representing the PureScript project (for example, on social media or speaking at a conference).
Finally, abusive or unwelcome behavior that occurs outside an official community space can still have a profound impact on individuals and the community. Moderators will use their discretion when deciding whether to enforce this code of conduct and potentially remove someone from the community upon reports of such behavior happening outside of community spaces, taking into account the impact on the individuals and the community.
You can report code of conduct violations to the moderators directly. We will respond as promptly as possible, though a moderator may not always be online at the time of a violation. When moderators receive a report, they will:
Read the report to determine whether there has been a code of conduct violation
If there was not a violation, then the moderator will reply to the reporter and explain why not. They may suggest other remediation options. If there was a violation, the moderator will decide if they are the best person to respond or if it should be handed off to another moderator (for example, a moderator who already has a relationship with the reported person).
Follow up with the reporter
We will acknowledge we have received the report and are taking action. We'll ask any follow-up questions we need to better understand the situation, and we'll confirm we can contact the reported person.
Follow up with the person who violated the code of conduct
We will reach out to the community member on the platform where they were reported, if possible, or via the best channel we know of to contact them. We'll let them know we received a report and invite them to speak about the incident over chat or, if desired, on a call.
If the report was of abusive behavior or repeated unwelcoming behavior and we are issuing a ban, then we will tell the affected person and then remove them from the community. If the report was of unwelcoming behavior, then we will explain how their behavior violates the code of conduct and what we expect of them moving forward. We may warn them that a second violation will result in them being removed from the community.
- Discourse: Send a direct message to a moderator. Moderators are listed on the about page.
- Discord: Send a private message to the
@Moderators
team. To find a specific moderator to message, use the members sidebar under theModerators
role to find their profile. - Other: If an event occurs somewhere else, please reach out to moderators on either Discord or Discourse.
If you need to report a particular moderator, please make your report to a different moderator. They will follow the same process as usual, but the reported moderator will be considered simply the reported person while the incident is handled. The same confidentiality guarantees will still protect you.
We keep all reports confidential, except if we have discussed it with you and agreed otherwise. When we discuss incidents with people who are reported we will anonymize details as much as possible to preserve the privacy of the reporter.
However, some incidents happen in one-on-one interactions, and even if the details are anonymized, the reported person may be able to guess who made the report. If you have concerns about retaliation or your personal safety, and do not want us to share the details of your report with anyone (including the perpetrator) please let us know explicitly in your report. Unfortunately, in that situation we will not be able to take any action.
In some cases we may decide to share an update about a major incident with the community. If that's the case, the identities of all victims and reporters will remain confidential unless those individuals instruct us otherwise.
This Code of Conduct draws inspiration from: