diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 0e64fa46a1f..f7a8e35c9c8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,12 +1,21 @@ # Code of Conduct # -Approved by the Sage community by a vote which ended on November 24, 2014 +This Code was approved by the Sage community by a vote which ended on +March 31, 2024. + +## Introduction ## The Sage community is comprised of an international mixture of mathematicians, computer scientists, engineers, researchers, teachers, amateurs, and others with varied backgrounds. This diversity is one of our strengths, but it can also lead to communication problems and unhappiness. People who love working on -Sage can more effectively collaborate with others if they follow this code. +Sage can more effectively collaborate with others if they follow this Code. + +This document is complemented by a second, [the Code of Conduct +Committee Manual](/CODE_OF_CONDUCT_COMMITTEE.md), which describes the +roles and procedures for the Sage Code of Conduct Committee. + +## Guidelines ## 1. Be friendly and patient. @@ -35,8 +44,168 @@ Sage can more effectively collaborate with others if they follow this code. forget that it is human to err. Blame alone gets us nowhere, it is better to help resolve issues so we can all learn from our mistakes. -If you believe someone is violating the code of conduct, we ask that you report -it to https://groups.google.com/g/sage-abuse. The group administrators will -consider the issue and explore resolutions. It is also possible to move heated -discussions to https://groups.google.com/g/sage-flame. +5. We will not accept harassment or other exclusionary behavior, such as: + + 1. Violent or intimidating threats or language directed against another person. + 2. Sexist, racist, or otherwise discriminatory jokes and language. + 3. Posting sexually explicit or violent material. + 4. Posting (or threatening to post) other people’s personally identifying information (“doxing”). + 5. Personal insults, especially those using racist or sexist terms. + 6. Unwelcome sexual attention or comments. + 7. Excessive profanity. Please avoid swear words; people differ greatly in their sensitivity to swearing. + 8. Repeated harassment of others. In general, if someone asks you to stop, then stop. + 9. Advocating for, or encouraging, any of the above behavior. + +This Code of Conduct applies to all spaces managed by the Sage +project, including all public and private mailing lists, issue +trackers, wikis, and any other communication channel used by our +community. It also applies to Sage Days and any other in-person or +virtual events. + +This Code of Conduct should be honored by everyone who participates in +the Sage community formally or informally, or claims any affiliation +with the project, in any project-related activities, and, especially, +when representing the project, in any role. + +This Code is neither exhaustive nor complete. It serves to distill our +common understanding of a collaborative, shared environment and +goals. Please try to follow this Code in spirit as much as in letter, +to create a friendly and productive environment that enriches the +surrounding community. + +## Diversity statement ## + +Sage welcomes and encourages participation in our community by people +of all backgrounds and identities. We are committed to promoting and +sustaining a culture that values mutual respect, tolerance, and +learning, and we work together as a community to help each other live +out these values. + +No matter how you identify yourself or how others perceive you: we +welcome you. Though no list can hope to be comprehensive, we +explicitly honor diversity in: age, culture, ethnicity, genotype, +gender identity or expression, language, national origin, neurotype, +phenotype, political beliefs, profession, race, religion, sexual +orientation, socioeconomic status, subculture, and technical ability, +to the extent that these do not conflict with this Code of Conduct. + +Though we welcome people fluent in all languages, Sage development is +conducted in English. + +Standards for behavior in the Sage community are detailed in the Code +of Conduct above. Participants in our community should uphold these +standards in all their interactions and help others to do so as well. + +## Reporting guidelines ## + +We know that it is painfully common for internet communication to +start at or devolve into obvious and flagrant abuse. We also recognize +that sometimes people may have a bad day, or be unaware of some of the +guidelines in this Code of Conduct. Please keep this in mind when +deciding on how to respond to a breach of this Code. + +For clearly intentional breaches, report those to the Sage Code of +Conduct Committee (see below). For possibly unintentional breaches, +you may reply to the person and point out this Code of Conduct (either +in public or in private, whatever is most appropriate). If you would +prefer not to do that, please feel free to report to the Sage Code of +Conduct Committee directly, or ask the committee for advice, in +confidence. + +You can report issues to the Sage Code of Conduct Committee at +sage-conduct@googlegroups.com. Currently, the committee consists of: + +- Nils Bruin +- J-P Labbé +- John Palmieri +- Viviane Pons +- David Roe +- Julian Rüth + +If your report involves any members of the committee, or if they feel +they have a conflict of interest in handling it, then they will recuse +themselves from considering your report. Alternatively, if, for any +reason, you feel uncomfortable making a report to the whole committee, +then you can also contact individual committee members. + +## Incident reporting resolution & Code of Conduct enforcement ## + +This section summarizes the most important points; more details can be +found in the Code of Conduct enforcement guide. + +The Sage Code of Conduct Committee will investigate and respond to all +complaints. The committee will protect the identity of the reporter, +and treat the content of complaints as confidential (unless the +reporter agrees otherwise). + +In case of severe and obvious breaches, e.g., personal threat or +violent, sexist or racist language, the committee will immediately +disconnect the originator from Sage communication channels; please see +the manual for details. + +In cases not involving clear severe and obvious breaches of this Code +of Conduct, the process for acting on any received Code of Conduct +violation report will be: + +- acknowledgement that the report has been received +- discussion within the committee +- discussion with and/or feedback provided to the reportee +- mediation (if feedback didn’t help, and only if both reporter and + reportee agree to this) +- enforcement via transparent decision by the Sage Code of Conduct Committee + +The committee will respond to any report as soon as possible, and our +goal will be to respond within 72 hours. + +Potential consequences for violating the Sage Code of Conduct include: + +- 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 +- A public announcement that an incident occurred +- Mediation (only if both reporter and reportee agree) +- An imposed vacation (e.g. asking someone to "take a week off" from a mailing list) +- A permanent or temporary ban from some or all Sage spaces (mailing + lists, GitHub repos, in-person events, etc.) +- Assistance to the reporter with a report to other bodies, for + example, institutional offices or appropriate law enforcement + agencies +- Publishing an account of the harassment and calling for the + resignation of the alleged harasser from their responsibilities + (usually pursued by people without formal authority: may be called + for if the person is the event leader, or refuses to stand aside + from the conflict of interest, or similar) +- Any other response that the Sage Code of Conduct Committee deems necessary and + appropriate to the situation + +## Policies and procedures of common project platforms ## + +[GitHub Community Guidelines](https://docs.github.com/en/site-policy/github-terms/github-community-guidelines) apply: +- [Report abuse to GitHub](https://github.com/contact/report-abuse), + [Block a user from your personal account](https://docs.github.com/en/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-personal-account) +- [Manage disruptive comments](https://docs.github.com/en/communities/moderating-comments-and-conversations/managing-disruptive-comments), +- [Lock conversations](https://docs.github.com/en/communities/moderating-comments-and-conversations/locking-conversations) +(requires Maintainer role or [Organization Moderator role](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/managing-moderators-in-your-organization)) + +Google groups: +- [Content policy](https://support.google.com/groups/answer/4561696) +- [Reporting procedures](https://support.google.com/groups/answer/81275) + +## Amending the Code of Conduct ## + +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. + +## Credits ## +Portions of this 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). diff --git a/CODE_OF_CONDUCT_COMMITTEE.md b/CODE_OF_CONDUCT_COMMITTEE.md new file mode 100644 index 00000000000..abff7b21f3c --- /dev/null +++ b/CODE_OF_CONDUCT_COMMITTEE.md @@ -0,0 +1,242 @@ +# Guide for the Sage Code of Conduct Committee # + +## Introduction ## + +This is the manual followed by the Sage Code of Conduct Committee. It +complements the [Code of Conduct](/CODE_OF_CONDUCT.md). 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.). + +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 document may be amended by a vote of the Sage Code of Conduct +Committee. + +## Credits ## + +This document is largely adapted from the [SciPy report handling +manual](https://docs.scipy.org/doc/scipy/dev/conduct/report_handling_manual.html).