Skip to content

Commit

Permalink
PR sagemath#37501: combine CODE_OF_CONDUCT.md and HANDLING_VIOLATIONS…
Browse files Browse the repository at this point in the history
….md into

a single file.
  • Loading branch information
jhpalmieri committed Mar 5, 2024
1 parent afb62c4 commit 8412ada
Show file tree
Hide file tree
Showing 2 changed files with 260 additions and 251 deletions.
270 changes: 260 additions & 10 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Code of Conduct #

This document has two parts: the current one --- the Code of Conduct
itself --- and a second part describing the role of and procedures for
the Sage Code of Conduct Committee.

This Code was approved by the Sage community by a vote which ended on
November 24, 2014.

Expand Down Expand Up @@ -156,7 +160,8 @@ goal will be to respond within 72 hours.

Potential consequences for violating the Sage Code of Conduct include:

- Nothing (if the committee determines that no violation occurred)
- Nothing (for example if the matter has been resolved publicly while
the committee was considering responses)
- Private feedback or reprimand to the individual(s) involved
- Warning the person to cease their behavior and that any further
reports will result in sanctions
Expand Down Expand Up @@ -189,18 +194,263 @@ Google groups:
- [Content policy](https://support.google.com/groups/answer/4561696)
- [Reporting procedures](https://support.google.com/groups/answer/81275)

## Amending this document ##
## Amending the Code of Conduct ##

The first part of this document may be amended by a vote of the Sage
community in the sage-devel Google group, with the exception of facts
like the membership of the Sage Code of Conduct Committee, changes to
URLs, or changes to email addresses: changes like that can be done via
a normal pull request. Any pull requests involving this document
should list the committee members as reviewers.



# Guide for the Sage Code of Conduct Committee #

## Introduction ##

This is the manual followed by the Sage Code of Conduct Committee. It is used
when we respond to an issue to make sure we’re consistent and fair.

Enforcing the Code of Conduct impacts our community today and for the
future. It’s an action that we do not take lightly. When reviewing
enforcement measures, the Sage Code of Conduct Committee will keep the
following values and guidelines in mind:

- Act in a personal manner rather than impersonal. The committee can
engage the parties to understand the situation, while respecting the
privacy and any necessary confidentiality of reporters. However,
it is sometimes necessary to communicate with one or more
individuals directly: the committee’s goal is to improve the health
of our community rather than only produce a formal decision.

- Emphasize empathy for individuals rather than judging behavior,
avoiding binary labels of “good” and “bad/evil”. Overt, clear-cut
aggression and harassment exists and we will address that
firmly. But many scenarios that can prove challenging to resolve are
those where normal disagreements devolve into unhelpful or harmful
behavior from multiple parties. Understanding the full context and
finding a path that re-engages all is hard, but ultimately the most
productive for our community.

- We understand that email is a difficult medium and can be
isolating. Receiving criticism over email, without personal contact,
can be particularly painful. This makes it especially important to
keep an atmosphere of open-minded respect of the views of others. It
also means that we must be transparent in our actions, and that we
will do everything in our power to make sure that all our members
are treated fairly and with sympathy.

- Discrimination can be subtle and it can be unconscious. It can show
itself as unfairness and hostility in otherwise ordinary
interactions. We know that this does occur, and we will take care to
look out for it. We would very much like to hear from you if you
feel you have been treated unfairly, and we will use these
procedures to make sure that your complaint is heard and addressed.

- Help increase engagement in good discussion practice: try to
identify where discussion may have broken down and provide
actionable information, pointers and resources that can lead to
positive change on these points.

- Be mindful of the needs of new members: provide them with explicit
support and consideration, with the aim of increasing participation
from underrepresented groups in particular.

Individuals come from different cultural backgrounds and native
languages. Try to identify any honest misunderstandings caused by a
non-native speaker and help them understand the issue and what they
can change to avoid causing offense. Complex discussion in a foreign
language can be very intimidating, and we want to grow our diversity
also across nationalities and cultures.

Mediation: voluntary, informal mediation is a tool at our disposal. In
some contexts, such as when two or more parties have escalated to the
point of inappropriate behavior (something sadly common in human
conflict), it may be useful to facilitate a mediation process. This is
only an example: the committee can consider mediation in any case,
mindful that the process is meant to be strictly voluntary and no
party can be pressured to participate. If the committee suggests
mediation, it should:

- Find a candidate who can serve as a mediator.

- Obtain the agreement of the reporter(s). The reporter(s) have
complete freedom to decline the mediation idea, or to propose an
alternate mediator.

- Obtain the agreement of the reported person(s).

- Settle on the mediator: while parties can propose a different
mediator than the suggested candidate, only if common agreement is
reached on all terms can the process move forward.

- Establish a timeline for mediation to complete, ideally within two weeks.

The mediator will engage with all the parties and seek a resolution
that is satisfactory to all. Upon completion, the mediator will
provide a report (vetted by all parties to the process) to the
committee, with recommendations on further steps. The committee will
then evaluate these results (whether satisfactory resolution was
achieved or not) and decide on any additional action deemed necessary.

## How the committee will respond to reports ##

When the committee (or a committee member) receives a report, they
will first determine whether the report is about a clear and severe
breach (as defined below). If so, immediate action needs to be taken
in addition to the regular report-handling process.

### Clear and severe breach actions ###

We know that it is painfully common for internet communication to
start at or devolve into obvious and flagrant abuse. We will deal
quickly with clear and severe breaches like personal threats, violent,
sexist, or racist language.

When a member of the Sage Code of Conduct Committee becomes aware of a
clear and severe breach, they will do the following:

- Immediately disconnect the originator from all Sage communication channels.

- Reply to the reporter that their report has been received and that
the originator has been disconnected.

- In every case, the moderator should make a reasonable effort to
contact the originator, and tell them specifically how their
language or actions qualify as a “clear and severe breach”. The
moderator should also say that, if the originator believes this is
unfair or they want to be reconnected to Sage, they have the right
to ask for a review, as below, by the Sage Code of Conduct Committee. The
moderator should copy this explanation to the Sage Code of Conduct
Committee.

The Sage Code of Conduct Committee will formally review and sign off on all
cases where this mechanism has been applied to make sure it is not
being used to control ordinary heated disagreement.

### Report handling ###

When a report is sent to the committee, they will immediately reply to
the reporter to confirm receipt. This reply must be sent within 72
hours, and the group should strive to respond much quicker than that.

If a report doesn’t contain enough information, the committee will
obtain all relevant data before acting. The committee is empowered to
contact any individuals involved to get a more complete account of
events.

The committee will then review the incident and determine, to the best of their ability:

- What happened.

- Whether this event constitutes a Code of Conduct violation.

- Who are the responsible party/parties.

- Whether this is an ongoing situation, and whether there is a threat to anyone’s physical safety.

This information will be collected in writing, and whenever possible
the group’s deliberations will be recorded and retained (i.e., chat
transcripts, email discussions, recorded conference calls, summaries
of voice conversations, etc.).

This document may be amended by a vote of the Sage community in the
sage-devel Google group, with the exception of facts like the
membership of the Sage Code of Conduct Committee, changes to URLs, or
changes to email addresses: changes like that can be done via a normal
pull request. Any pull requests involving this document should list
the committee members as reviewers.
It is important to retain an archive of all activities of this
committee to ensure consistency in behavior and provide institutional
memory for the project. To assist in this, the default channel of
discussion for this committee will be a private mailing list
accessible to current and future members of the committee. If the
committee finds the need to use off-list communications (e.g., phone
calls for early/rapid response), it should, in all cases, summarize
these back to the list so there’s a good record of the process.

The Sage Code of Conduct Committee should aim to have a resolution agreed upon
within two weeks. In the event that a resolution can’t be determined
in that time, the committee will respond to the reporter(s) with an
update and projected timeline for the resolution.

## Resolutions ##

The committee must agree on a resolution by consensus. If the group
cannot reach consensus and deadlocks for over a week, the committee is
empowered to consult as needed to try to reach consensus.

Possible responses may include:

- Taking no further action:

- if we determine no violations have occurred.

- if the matter has been resolved publicly while the committee was considering responses.

- Coordinating voluntary mediation: if all involved parties agree, the
committee may facilitate a mediation process as detailed above.

- Remind publicly, and point out that some behavior/actions/language
have been judged inappropriate and why in the current context, or
can but hurtful to some people, requesting the community to
self-adjust.

- A private reprimand from the committee to the individual(s)
involved. In this case, a representative of the committee will
deliver that reprimand to the individual(s) over email, cc’ing the
group.

- A public reprimand. In this case, a committee representative will deliver
that reprimand in the same venue that the violation occurred, within
the limits of practicality. E.g., the original mailing list for an
email violation, but for a chat room discussion where the
person/context may be gone, they can be reached by other means. The
group may choose to publish this message elsewhere for documentation
purposes.

- A request for a public or private apology, assuming the reporter
agrees to this idea: they may, at their discretion, refuse further
contact with the violator. A committee representative will deliver
this request. The committee may, if it chooses, attach “strings” to
this request: for example, the group may ask a violator to
apologize, in order to retain one’s membership on a mailing list.

- A “mutually agreed upon hiatus” where the committee asks the
individual to temporarily refrain from community participation. If
the individual chooses not to take a temporary break voluntarily,
the committee may issue a “mandatory cooling off period”.

- A permanent or temporary ban from some or all Sage spaces (mailing
lists, GitHub, etc.). The group will maintain records of all such
bans so that they may be reviewed in the future or otherwise
maintained.

Once a resolution is agreed upon, the committee will contact the
original reporter and any other affected parties and explain that the
committee has taken action. Depending on the situation, the committee
may or may not choose to provide further details about what actions
were taken and how they might affect the reporter.

The committee will never publicly discuss the issue; all public
statements will be made by a representative of the Sage Code of Conduct
Committee.

## Conflicts of interest ##

In the event of any conflict of interest, a committee member must
immediately notify the other members, and recuse themselves if
necessary.

## Amending the Code of Conduct Committee manual ##

This part of the document may be amended by a vote of the Sage Code of
Conduct Committee.

## Credits ##

## Credits ##

Portions of this are adapted from the [SciPy code of
Portions of the first part (the code itself) are adapted from the
[SciPy code of
conduct](https://docs.scipy.org/doc/scipy/dev/conduct/code_of_conduct.html)
and the [NumFOCUS code of
conduct](https://numfocus.org/code-of-conduct).
conduct](https://numfocus.org/code-of-conduct). The second part (the
guide for the Sage Code of Conduct Committee) is largely adapted from
the [SciPy report handling
manual](https://docs.scipy.org/doc/scipy/dev/conduct/report_handling_manual.html).
Loading

0 comments on commit 8412ada

Please sign in to comment.