Code of Conduct
The PyDistrict community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences great successes and continued growth. When you're working with members of the community, this Code of Conduct will help steer your interactions and keep PyDistrict a positive, successful, and growing community.
Our Community
Members of the PyDistrict community are open, considerate, and respectful. Behaviours that reinforce these values contribute to a positive environment, and include:
- Being open. Members of the community are open to collaboration, whether it's on PEPs, patches, problems, or otherwise.
- Focusing on what is best for the community. We're respectful of the processes set forth in the community, and we work within them.
- Acknowledging time and effort. We're respectful of the volunteer efforts that permeate the PyDistrict community. We're thoughtful when addressing the efforts of others, keeping in mind that often times the labor was completed simply for the good of the community.
- Being respectful of differing viewpoints and experiences. We're receptive to constructive comments and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts.
- Showing empathy towards other community members. We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views.
- Being considerate. Members of the community are considerate of their peers -- other Python users.
- Being respectful. We're respectful of others, their positions, their skills, their commitments, and their efforts.
- Gracefully accepting constructive criticism. When we disagree, we are courteous in raising our issues.
- Using welcoming and inclusive language. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference.
Our Standards
Every member of our community has the right to have their identity respected. The PyDistrict community is dedicated to providing a positive experience for everyone, regardless of age, gender identity and expression, sexual orientation, disability, physical appearance, body size, ethnicity, nationality, race, or religion (or lack thereof), education, or socio-economic status.
Inappropriate Behavior
Examples of unacceptable behavior by participants include:
- Harassment of any participants in any form
- Deliberate intimidation, stalking, or following
- Logging or taking screenshots of online activity for harassment purposes
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Violent threats or language directed against another person
- Incitement of violence or harassment towards any individual, including encouraging a person to commit suicide or to engage in self-harm
- Creating additional online accounts in order to harass another person or circumvent a ban
- Sexual language and imagery in online communities or in any conference venue, including talks
- Insults, put downs, or jokes that are based upon stereotypes, that are exclusionary, or that hold others up for ridicule
- Excessive swearing
- Unwelcome sexual attention or advances
- Unwelcome physical contact, including simulated physical contact (eg, textual descriptions like "hug" or "backrub") without consent or after a request to stop
- Pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy with others
- Sustained disruption of online community discussions, in-person presentations, or other in-person events
- Continued one-on-one communication after requests to cease
- Other conduct that is inappropriate for a professional audience including people of many different backgrounds
Community members asked to stop any inappropriate behavior are expected to comply immediately.
Weapons Policy
No weapons are allowed at PyDistrict events. Weapons include but are not limited to explosives (including fireworks), guns, and large knives such as those used for hunting or display, as well as any other item used for the purpose of causing injury or harm to others. Anyone seen in possession of one of these items will be asked to leave immediately, and will only be allowed to return without the weapon.
Consequences
If a participant engages in behavior that violates this code of conduct, the PyDistrict organizers may take any action they deem appropriate, including warning the offender or expulsion from the community and community events with no refund of event tickets. The full list of consequences for inappropriate behavior is listed in ENFORCEMENT PROCEDURES.
Thank you for helping make this a welcoming, friendly community for everyone.
Scope
PyDistrict Events
This Code of Conduct applies to the following people at events hosted by PyDistrict:
- organizers
- speakers
- panelists
- tutorial or workshop leaders
- volunteers
- all attendees
The Code of Conduct applies in official venue event spaces, including:
- meetup spaces
- tutorial or workshop rooms
- poster session rooms
- walkways, hallways, elevators, and stairs that connect any of the above spaces
The Code of Conduct applies to interactions with official event accounts on social media spaces and phone applications, including:
- comments made on official conference phone apps
- comments made on meetup video hosting services
- comments made on the official meetup hashtag
Meetup organizers will enforce this code throughout the event. Each event is required to provide a Code of Conduct committee that receives, evaluates, and acts on incident reports. Each event is required to provide contact information for the committee to attendees.
PyDistrict Online Spaces
This Code of Conduct applies to the following online spaces:
- The meetup discussion board, meetup mailing list, meetup announcement list
- PyDistrict Slack channel on the DCTech Slack
- Code repositories, issue trackers, and pull requests made against any PyDistrict-controlled GitHub organization
- Any other online space administered by PyDistrict
This Code of Conduct applies to the following people in official PyDistrict online spaces:
- admins of the online space
- maintainers
- reviewers
- contributors
- all community members
Each online space listed above is required to provide the following information to the PyDistrict organiers:
- Contact information for any administrators/moderators
Each online space listed above is encouraged to provide the following information to community members:
- A welcome message with a link to this Code of Conduct and the contact information for making an incident report
The PyDistrict organizers will receive and evaluate incident reports from the online communities listed above. The PyDistrict organizers will work with online community administrators/moderators to suggest actions to take in response to a report.
Contact Information
If you believe that someone is violating the code of conduct, or have any other concerns, please contact a PyDistrict organizer immediately. They can be reached by emailing: [pydistrict-conduct@googlegroups.com]
Procedure for Handling Incidents
License
This Code of Conduct is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
Attributions
This Code of Conduct was forked from the PSF's policy, which in turn was forked from the example policy from the Geek Feminism wiki, created by the Ada Initiative and other volunteers, which is under a Creative Commons Zero license.
Additional new language and modifications were created by Sage Sharp of Otter Tech.
Language was incorporated from the following Codes of Conduct:
- Affect Conf Code of Conduct, licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
- Citizen Code of Conduct, licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
- Contributor Covenant version 1.4, licensed Creative Commons Attribution 4.0 License.
- Django Project Code of Conduct, licensed under a Creative Commons Attribution 3.0 Unported License.
- LGBTQ in Tech Slack Code of Conduct, licensed under a Creative Commons Zero License.
- PyCon 2018 Code of Conduct, licensed under a Creative Commons Attribution 3.0 Unported License.
- Rust Code of Conduct
Community Member Procedure For Reporting Code of Conduct Incidents
If you believe someone is in physical danger, including from themselves, the most important thing is to get that person help. Please contact the appropriate crisis number, non-emergency number, or police number. If you are in a PyDistrict-sponsored conference or meeting, you can consult with a volunteer or staff member to help find an appropriate number.
If you believe someone has violated the Code of Conduct, we encourage you to report it. If you are unsure whether the incident is a violation, or whether the space where it happened is covered by the Code of Conduct, we encourage you to still report it. We are fine with receiving reports where we decide to take no action for the sake of creating a safer space.
Each PyDistrict-controlled meeting or online forum should have a designated moderator or Code of Conduct point of contact. Larger gatherings, like conferences, may have several people to contact. Specific information should be available for each PyDistrict-affiliated gathering, online or off.
If you find that you need to make a report, and you cannot find the appropriate Code of Conduct reporting contact, you may report to the Code of Conduct email alias below. PyDistrict will handle your report. If this happens, please also mention that you could not find specific reporting information so that we can improve.
General reporting procedure:
The best way to contact the Code of Conduct working group is by email at conduct@python.org. The members of the Code of Conduct Working Group who monitor this alias is listed at LINK.
Report Data
When you make a report via email or phone, please include:
- Your contact info (so we can get in touch with you if we need to follow up)
- Date and time of the incident
- Location of incident
- Whether the incident is ongoing
- Description of the incident
- Identifying information of the reported person: name, physical appearance, height, clothing, voice accent, identifying badge information such as company name, ribbons, or badge number
- Additional circumstances surrounding the incident
- Other people involved in or witnesses to the incident and their contact information or description
Please provide as much information as possible.
Confidentiality
All reports will be kept confidential. When we discuss incidents with people who are reported, we will anonymize details as much as we can to protect reporter privacy.
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, please note those in your report. We still encourage you to report, so that we can support you while keeping our conference attendees safe. In some cases, we can compile several anonymized reports into a pattern of behavior, and take action on that pattern.
In some cases we may determine that a public statement will need to be made. If that's the case, the identities of all victims and reporters will remain confidential unless those individuals instruct us otherwise.
Report Handling Procedure
When you make a report to an incident responder, they will gather information about the incident according to the Procedure For Incident Response).
After an incident responder takes the report, they will immediately consult with the Code of Conduct Working Group, unless there is a conflict of interest, in which case any non-interested parties will be contacted.
If the incident is ongoing and needs to be immediately addressed, any lead incident responder may take appropriate action to ensure the safety of everyone involved. If the situation requires it, this may take the form of a referral to an appropriate non-PyDistrict agency, including the local police. PyDistrict is not equipped to handle emergency situations.
If the incident is less urgent, the report will be discussed by the Code of Conduct work group will meet to determine an appropriate response. Examples of possible incident responses are outlined in the Procedure For Incident Response.
Before any large in-person gathering conference, staff will have a mandatory meeting where incident response procedures will be outlined. After the conference, all incident responders will attend a debriefing session with the lead responders to discuss all incidents and determine any necessary follow-up actions.
Following Up With Reporters
Within one week of an incident report, the a member of the Code of Conduct Working Group, or one of the lead responders, will follow up with the person who made the report and provided their contact information. The follow up may include:
- An acknowledgment that the Code of Conduct responders discussed the situation
- Whether or not the report was determined to be a violation of the Code of Conduct
- What actions (if any) were taken to correcting the reporter behavior
In some cases, the lead responders may need to ask additional questions about the incident in order to identify the reported person.
Conflicts of Interest
If an incident responder has a conflict of interest for a report, they will recuse themselves from the discussion and handling of the incident. The incident documentation will not be available to them, and they will excuse themselves from any conversations involving handling the incident.
Should more than two of the lead incident responders need to recuse themselves, another organizer will step in as a temporary lead incident responder.
Enforcement Procedures
Summary of processes
When the organizers receive a report of a possible Code of Conduct violation, it will:
- Acknowledge the receipt of the report.
- Evaluate conflicts of interest.
- Call a meeting of organizers without a conflict of interest.
- Evaluate the reported incident.
- Propose a behavioral modification plan.
- Propose consequences for the reported behavior.
- Vote on behavioral modification plan and consequences for the reported person.
- Contact online community administrators/moderators to approve the behavioral modification plan and consequences.
- Follow up with the reported person.
- Decide further responses.
- Follow up with the reporter.
Acknowledge the report
Reporters should receive an emailed acknowledgment of the receipt of their report within 24 hours.
Conflict of interest policy
Examples of conflicts of interest include:
- The reporter or reported person is your manager
- You have a romantic or platonic relationship with either the reporter or the reported person. It's fine to participate if they are an acquaintance.
- The reporter or reported person is your metamour. (This is a term used in the poly community; the short definition is here, and a longer description is here).
- The reporter or reported person is your family member
- The reporter or reported person is your direct client
- The reporter or reported person is someone you work closely with. This could be someone on your team or someone who works on the same project as you.
- The reporter or reported person is a maintainer who regularly reviews your contributions
Committee members do not need to state why they have a conflict of interest, only that one exists. Other organizers should not ask why the person has a conflict of interest.
Anyone who has a conflict of interest will remove themselves from the discussion of the incident, and recluse themselves from voting on a response to the report.
Evaluating a report
Jurisdiction
- Is this a Code of Conduct violation? Is this behavior on our list of inappropriate behavior? Is it borderline inappropriate behavior? Does it violate our community norms?
- Did this occur in a space that is within our Code of Conduct's scope? If the incident occurred outside the community, but a community member's mental health or physical safety may be negatively impacted if no action is taken, the incident may be in scope. Private conversations in community spaces are also in scope.
Impact
- Did this incident occur in a private conversation or in a public space? Incidents that all community members can see will have more negative impact.
- Does this behavior negatively impact a marginalized group in our community? Is the reporter a person from a marginalized group in our community? How is the reporter being negatively impacted by the reported person's behavior? Are members of the marginalized group likely to disengage with the community if no action was taken on this report?
- Does this incident involve a community leader? Community members often look up to community leaders to set the standard of acceptable behavior.
Risk
- Does this incident include sexual harrasment?
- Does this pose a safety risk? Does the behavior put a person's physical safety at risk? Will this incident severely negatively impact someone's mental health?
- Is there a risk of this behavior being repeated? Does the reported person understand why their behavior was inappropriate? Is there an established pattern of behavior from past reports?
Reports which involve higher risk or higher impact may face more severe consequences than reports which involve lower risk or lower impact.
Propose a behavioral modification plan
The organizers will determine a concrete behavioral modification plan that ensures the inappropriate behavior is not repeated. The organizers will also discuss what actions may need to be taken if the reported person does not agree to the behavioral modification plan.
What follows are examples of possible behavioral modification plans for incidents that occur in online spaces under the scope of this Code of Conduct. This behavioral modification list is not inclusive, and the PyDistrict organizers reserve the right to take any action it deems necessary.
- Requiring that the reported person not use specific language
- Requiring that the reported person not join in on specific types of discussions
- Requiring that the reported person not send private messages to a community member
- Requiring that the reported person not join specific communication channels
- Removing the reported person from administrator or moderator rights to community infrastructure
- Removing a volunteer from their duties and responsibilities
- Removing a person from leadership of relevant organizations
- Removing a person from membership of relevant organizations
Propose consequences
What follows are examples of possible consequences to an incident report. This consequences list is not inclusive, and the PyDistrict organizers reserve the right to take any action it deems necessary.
Possible private responses to an incident include:
- Nothing, if the behavior was determined to not be a Code of Conduct violation
- A verbal or emailed warning
- A final warning
- Temporarily removing the reported person from the online community
- Permanently removing the reported person from the online community
- Publishing an account of the incident
Organizer vote
Some organizers may have a conflict of interest and may be excluded from discussions of a particular incident report. Excluding those members, decisions on the behavioral modification plans and consequences will be determined by a two-thirds majority vote of the PyDistrict organizers.
Administrators/moderators approval
Once the organizers have approved the behavioral modification plans and consequences, they will communicate the recommended response to the administrators/moderators of the online community. The organizers should not state who reported this incident. They should attempt to anonymize any identifying information from the report.
Administrators/moderators are required to respond back with whether they accept the recommended response to the report. If they disagree with the recommended response, they should provide a detailed response or additional context as to why they disagree. Administrators/moderators are encouraged to respond within a week.
Follow up with the reported person
The PyDistrict organizers will work with online community administrators/moderators to draft a response to the reported person. The email should contain:
- A description of the person's behavior in neutral language
- The negative impact of that behavior
- A concrete behavioral modification plan
- Any consequences of their behavior
The organizers should not state who reported this incident. They should attempt to anonymize any identifying information from the report. The reported person should be discouraged from contacting the reporter to discuss the report. If they wish to apologize to the reporter, the organizers can accept the apology on behalf of the reporter.
Decide further responses
If the reported person provides additional context, the PyDistrict organizers may need to re-evaluate the behavioral modification plan and consequences.
Follow up with the reporter
A person who makes a report should receive a follow up email stating what action was taken in response to the report. If the organizers decided no response was needed, they should provide an email explaining why it was not a Code of Conduct violation. Reports that are not made in good faith (such as "reverse sexism" or "reverse racism") may receive no response.
The follow up email should be sent no later than one week after the receipt of the report. If deliberation or follow up with the reported person takes longer than one week, the organizers should send a status email to the reporter.
Documentation and Privacy Policies
Depending on how the Code of Conduct committee is set up, there may be different places where information about Code of Conduct reports may be accessible:
- Personal email of Code of Conduct committee members
- Archives of committee mailing lists
- Logs from committee online chats
- Shared online documents, such as Google Docs or Next Cloud documents
In all cases, documents and notes should only be available to committee members who do not have a conflict of interest for the report. This requires communities to choose documentation tools that will meet their privacy needs.
Committee shared email address
Code of Conduct committees need to be able to be reached by one email address. It is recommended that the committee use an alias which forwards email to individual members.
Using a mailing list is not recommended. This is because mailing lists typically archive all emails. This means new committee members gain access to all past archives. They can deliberately or accidentally see past reports where they have a conflict of interest. In order to prevent potential conflicts of interest, it is recommended to not have a mailing list archive.
Committee online discussion
A Code of Conduct committee may have an online, real-time discussion forum, such as Slack, Zulip, or IRC. If the online chat platform allows, it is recommended to set the committee channel to have past history not be available to new committee members who join the channel.
When a report comes in and a discussion needs to happen in an online space, care needs to be taken to avoid conflicts of interest. In the committee chat channel, state 'We have a report that involves [REPORTED PERSON]'. Do not say who was the reporter or who were witnesses if the report was sent to an individual committee member. Ask which committee members do not have a conflict of interest. Add those committee members to a group discussion, separate from the committee channel. If a committee member does not respond, do not add them to the new group discussion. If a committee member finds they have a conflict of interest because of who reported the incident or who witnessed it, they should recluse themselves from the discussion.
Committee members should not use bots or IRC bouncers to log the group discussions. All documentation of discussions and decisions should be put in online, shared documentation.
If no online real-time discussion forum is used, committee members without a conflict of interest will discuss the case on a separate email thread. If no committee member has a conflict of interest, and the committee email is an alias, the committee may reply to the alias to discuss the issues.
Shared Documentation
The Code of Conduct committee should keep two types of shared documents:
- A spreadsheet with the status of open and closed cases
- A separate document for each report
Status Spreadsheet
The spreadsheet with status of open and closed cases should have the following format:
Safety risk? | Risk of repeating? | Status | Code Name | Date & Time | Actions needed | Resolution |
---|---|---|---|---|---|---|
Yes | Yes | Ongoing | home shelf | 07/07 8:30am and 07/08 12:30pm | Team on the lookout for reported person | Temporary ban for the remainder of the event, reevaluate attendance for next year |
No | Maybe | Resolved | stunned bulb | 07/07 8:00pm | - | Verbal warning |
Keep resolutions and notes vague enough that enforcement team members with a conflict of interest don't know the details of the incident. Use gender neutral language when describing the reported person in the spreadsheet.
Report Documentation
Each report should be assigned a code name, using an online random phrase generator. The code name should be used in the document's title. Only committee members without a conflict of interest should have access to the report documentation.
Report documents should include:
- A summary of a verbal report, or the text of an emailed report. Use neutral, non-judgmental words to describe the behavior. Where possible, separate out the behavior of the reported person and the impact on the reporter.
- A summary of committee discussions, including whether the report is in scope
- Proposed behavioral modification plan
- Proposed consequences for the reported behavior
- A summary of verbal discussions, or the text of email discussions with community moderators, administrators, registration, or other event organizers about the proposed consequences and behavioral modification plan
- A summary of verbal discussions, or the text of email discussions with the reported person
- The text that was sent to follow up with the reporter
All discussion summaries should include dates that they took place.
Privacy Concerns
There are some common privacy pitfalls to online tools like Google Docs. Make sure to always share the document with committee members who don't have a conflict of interest, rather than turning link sharing on. This prevents people outside of the committee from accessing the documents.
Another common issue is that when a folder is shared with the whole committee, even if a person doesn't have edit or view access to an individual report, they can still see the document's title. This can give information away, such as the person who made the report. Some communities use initials in the report title instead. That can still reveal information, and it makes it hard to talk about report status in public spaces (such as an event). The committee may want to assign a code name to each report, and reference that name in the report title and status spreadsheet. You can use an online random phrase generator to create the code name.
When on-boarding new committee members, they should be provided with a list of names of people who have been reported in a Code of Conduct incident. The new committee member should state whether they have any conflicts of interest with reviewing documentation for those cases. If not, they will be given edit access to the report documents.
Changes to Code of Conduct
When discussing a change to the PyDistrict Code of Conduct or enforcement policies, the PyDistrict organizers will follow this decision-making process:
- Brainstorm options. Organizers should discuss any relevant context and brainstorm a set of possible options. It is important to provide constructive feedback without getting side-tracked from the main question. Brainstorming should be limited to 3-7 days maximum.
- Vote. Proposed changes to the Code of Conduct will be decided by a two-thirds majority of all voting members. Currently active voting members are listed below.
Current list of voting members
- Aru Sahni
- Rami Chowdhury