Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
206 lines (162 sloc) 10.3 KB

Jupyter Code of Conduct - Enforcement Manual

This is the enforcement manual followed by Jupyter's Code of Conduct Committee. It's used when we respond to an incident to make sure we are consistent and fair.

The Code of Conduct Committee

All responses to reports of conduct violations will be managed by a Code of Conduct Committee ("the committee"). The Jupyter Steering Council is responsible for vetting and appointing the Code of Conduct Committee. During periods where a separate Code of Conduct Committee is not appointed or is not available to handle a code of conduct report promptly, the Jupyter Steering Council will serve as the interim Code of Conduct Committee.

If a Code of Conduct report involves a member of the Steering Council or Code of Conduct Committee, that member will not participate in the investigation or any decisions related to that report.

Enforcement guidelines and principles

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 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, sometimes it is 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 will be addressed unambiguously. But many scenarios that can prove challenging to resolve are those where normal disagreements devolve into inappropriate 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.

  • 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 help enact 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. While lack of intent to harm is not an excuse, try to identify any honest misunderstandings caused by a non-native speaker and help them understand the issue and how to change. Complex discussion in a foreign language can be very intimidating, and we want to grow our diversity also across nationalities and cultures.

  • Our actions will reflect compassion for all individuals. We will seek to understand, to educate, and, as necessary, take action.

Mediation: voluntary, informal mediation is a tool at our disposal. In contexts such as when two or more parties have all 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 a report is sent to the committee they will immediately reply to the reporter to confirm receipt. This reply must be sent within 24 hours, and the group should strive to respond much quicker than that.

See the Reporting Guidelines for details of what reports should contain. If a report doesn't contain enough information, the committee will obtain all relevant data before acting. The committee is empowered to act on the Steering Council’s behalf in contacting 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(ies).
  • Whether this is an ongoing situation, and 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).

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 as well as members of the Steering Council upon justified request. 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 Code of Conduct Committee should aim to have a resolution agreed upon within one week. 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 resolution.

Incident Response and Committee Actions

If the act is ongoing, or involves a threat to anyone's safety (e.g. threats of violence), any committee member may act immediately (before reaching consensus) to address the situation. In ongoing situations, any member may decide to employ any of the tools available to the committee, including bans and blocks.

If the incident involves physical danger, any member of the committee may -- and should -- act unilaterally to protect the safety of those involved. This can include contacting law enforcement (or other local personnel) and speaking on behalf of the Jupyter Steering Council.

In situations where an individual committee member acts unilaterally, they must report their actions to the committee for review within 24 hours.

At events where no Committee members may be present, an event organizer will act as their delegate. They will forward any reports to the Committee, as well as a summary of any action they may have taken during the event.

Resolutions

The committee must agree on a resolution by consensus. If the group cannot reach consensus and deadlocks for over a week, the group will turn the matter over to the Steering Council for resolution.

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, the group chair will deliver that reprimand to the individual(s) over email, cc'ing the group.
  • A public reprimand. In this case, the committee chair 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. The chair 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 Jupyter spaces (mailing lists, gitter.im, 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, but before it is enacted, the committee will contact the original reporter and any other affected parties and explain the proposed resolution. The committee will ask if this resolution is acceptable, and must note feedback for the record. However, the committee is not required to act on this feedback.

Finally, the committee will make a report to the Jupyter Steering Council (as well as the Jupyter core team in the event of an ongoing resolution, such as a ban).

The committee will never publicly discuss the issue; all public statements will be made by the chair of the Code of Conduct Committee or the Jupyter Steering Council.

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.