Django Code of Conduct - Enforcement Manual
This is the enforcement manual followed by Django's Code of Conduct Committee. It's used when we respond to an issue to make sure we're consistent and fair. It should be considered an internal document, but we're publishing it publicly in the interests of transparency.
The Code of Conduct Committee
All responses to reports of conduct violations will be managed by a Code of Conduct Committee ("the committee").
The Django Software Foundation's Board of Directors ("the board") will establish this committee, comprised of at least three members. One member will be designated chair of the committee and will be responsible for all reports back to the board. The board will review membership on a regular basis.
How the committee will respond to reports
When a report is sent to the committee they will immediately reply to the report to confirm receipt. This reply must be sent within 24 hours, and the committee 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 DSF'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, if anyone, was the bad actor
- 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 committee's deliberations will be recorded and retained (i.e. IRC transcripts, email discussions, recorded voice conversations, etc).
The 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.
If the act is ongoing (such as someone engaging in harassment in #django), or involves a threat to anyone's safety (e.g. threats of violence), any committee member may act immediately (before reaching consensus) to end the situation. In ongoing situations, any member may at their discretion 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 safety. This can include contacting law enforcement (or other local personnel) and speaking on behalf of the DSF.
In situations where an individual committee member acts unilaterally, they must report their actions to the committee for review within 24 hours.
The committee must agree on a resolution by consensus. If the committee cannot reach consensus and deadlocks for over a week, the committee will turn the matter over to the board for resolution.
Possible responses may include:
- Taking no further action (if we determine no violation occurred).
- A private reprimand from the committee to the individual(s) involved. In this case, a committee member will deliver that reprimand to the individual(s) over email, cc'ing the committee.
- A public reprimand. In this case, a committee member will deliver that reprimand in the same venue that the violation occurred (i.e. in IRC for an IRC violation; email for an email violation, etc.). The committee may choose to publish this message elsewhere for posterity.
- An imposed vacation (i.e. asking someone to "take a week off" from a mailing list or IRC). A committee member will communicate this "vacation" to the individual(s). They'll be asked to take this vacation voluntarily, but if they don't agree then a temporary ban may be imposed to enforce this vacation.
- A permanent or temporary ban from some or all Django spaces (mailing lists, IRC, etc.). The committee will maintain records of all such bans so that they may be reviewed in the future, extended to new Django fora, or otherwise maintained.
- A request for a public or private apology. a committee member will deliver this request. The committee may, if it chooses, attach "strings" to this request: for example, the committee may ask a violator to apologize in order to retain his or her membership on a mailing list.
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 for the DSF board. In case the incident or report involves a current member of the board, the committee will provide the report only to the other board members.
The committee will never publicly discuss the issue; all public statements will be made by the DSF board.
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. If a report concerns a possible violation by a current committee member, this member should be excluded from the response process. For these cases, anyone can make a report directly to any of the committee chairs, as documented in the reporting guidelines.
Editor's note: Writing this document posed a unique challenge. Most similar guides are written on the assumption of an in-person event. However, the Django community doesn't exist in one place, and most of the time we're spread out across the world and interact online. This makes trying to define and enforce community standards a different type of challenge. This document is adapted from the Ada Initiative template and the PyCon 2013 Procedure for Handling Harassment Incidents, but changed to reflect the nature of our community. It is our expectation that this will be a living document and change as we grow to understand how to meet this challenge and best serve our community and ideals.Back to Top