Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2546ffe

Browse files
committed
DOC: add code of conduct
1 parent aa82b50 commit 2546ffe

File tree

2 files changed

+382
-0
lines changed

2 files changed

+382
-0
lines changed
Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
:orphan:
2+
3+
.. _CoC_reporting_manual:
4+
5+
Matplotlib Code of Conduct - How to follow up on a report
6+
----------------------------------------------------
7+
8+
This is the manual followed by Matplotlib's Code of Conduct Committee. It's used
9+
when we respond to an issue to make sure we're consistent and fair.
10+
11+
Enforcing the Code of Conduct impacts our community today and for the future.
12+
It's an action that we do not take lightly. When reviewing enforcement
13+
measures, the Code of Conduct Committee will keep the following values and
14+
guidelines in mind:
15+
16+
* Act in a personal manner rather than impersonal. The Committee can engage
17+
the parties to understand the situation, while respecting the privacy and any
18+
necessary confidentiality of reporters. However, sometimes it is necessary
19+
to communicate with one or more individuals directly: the Committee's goal is
20+
to improve the health of our community rather than only produce a formal
21+
decision.
22+
23+
* Emphasize empathy for individuals rather than judging behavior, avoiding
24+
binary labels of "good" and "bad/evil". Overt, clear-cut aggression and
25+
harassment exists and we will be address that firmly. But many scenarios
26+
that can prove challenging to resolve are those where normal disagreements
27+
devolve into unhelpful or harmful behavior from multiple parties.
28+
Understanding the full context and finding a path that re-engages all is
29+
hard, but ultimately the most productive for our community.
30+
31+
* We understand that email is a difficult medium and can be isolating.
32+
Receiving criticism over email, without personal contact, can be
33+
particularly painful. This makes it especially important to keep an
34+
atmosphere of open-minded respect of the views of others. It also means
35+
that we must be transparent in our actions, and that we will do everything
36+
in our power to make sure that all our members are treated fairly and with
37+
sympathy.
38+
39+
* Discrimination can be subtle and it can be unconscious. It can show itself
40+
as unfairness and hostility in otherwise ordinary interactions. We know
41+
that this does occur, and we will take care to look out for it. We would
42+
very much like to hear from you if you feel you have been treated unfairly,
43+
and we will use these procedures to make sure that your complaint is heard
44+
and addressed.
45+
46+
* Help increase engagement in good discussion practice: try to identify where
47+
discussion may have broken down and provide actionable information, pointers
48+
and resources that can lead to positive change on these points.
49+
50+
* Be mindful of the needs of new members: provide them with explicit support
51+
and consideration, with the aim of increasing participation from
52+
underrepresented groups in particular.
53+
54+
* Individuals come from different cultural backgrounds and native languages.
55+
Try to identify any honest misunderstandings caused by a non-native speaker
56+
and help them understand the issue and what they can change to avoid causing
57+
offence. Complex discussion in a foreign language can be very intimidating,
58+
and we want to grow our diversity also across nationalities and cultures.
59+
60+
*Mediation*: voluntary, informal mediation is a tool at our disposal. In
61+
contexts such as when two or more parties have all escalated to the point of
62+
inappropriate behavior (something sadly common in human conflict), it may be
63+
useful to facilitate a mediation process. This is only an example: the
64+
Committee can consider mediation in any case, mindful that the process is meant
65+
to be strictly voluntary and no party can be pressured to participate. If the
66+
Committee suggests mediation, it should:
67+
68+
* Find a candidate who can serve as a mediator.
69+
* Obtain the agreement of the reporter(s). The reporter(s) have complete
70+
freedom to decline the mediation idea, or to propose an alternate mediator.
71+
* Obtain the agreement of the reported person(s).
72+
* Settle on the mediator: while parties can propose a different mediator than
73+
the suggested candidate, only if common agreement is reached on all terms can
74+
the process move forward.
75+
* Establish a timeline for mediation to complete, ideally within two weeks.
76+
77+
The mediator will engage with all the parties and seek a resolution that is
78+
satisfactory to all. Upon completion, the mediator will provide a report
79+
(vetted by all parties to the process) to the Committee, with recommendations
80+
on further steps. The Committee will then evaluate these results (whether
81+
satisfactory resolution was achieved or not) and decide on any additional
82+
action deemed necessary.
83+
84+
85+
How the committee will respond to reports
86+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
87+
88+
When the committee (or a committee member) receives a report, they will first
89+
determine whether the report is about a clear and severe breach (as defined
90+
below). If so, immediate action needs to be taken in addition to the regular
91+
report handling process.
92+
93+
Clear and severe breach actions
94+
+++++++++++++++++++++++++++++++
95+
96+
We know that it is painfully common for internet communication to start at or
97+
devolve into obvious and flagrant abuse. We will deal quickly with clear and
98+
severe breaches like personal threats, violent, sexist or racist language.
99+
100+
When a member of the Code of Conduct committee becomes aware of a clear and
101+
severe breach, they will do the following:
102+
103+
* Immediately disconnect the originator from all Matplotlib communication channels.
104+
* Reply to the reporter that their report has been received and that the
105+
originator has been disconnected.
106+
* In every case, the moderator should make a reasonable effort to contact the
107+
originator, and tell them specifically how their language or actions
108+
qualify as a "clear and severe breach". The moderator should also say
109+
that, if the originator believes this is unfair or they want to be
110+
reconnected to Matplotlib, they have the right to ask for a review, as below, by
111+
the Code of Conduct Committee.
112+
The moderator should copy this explanation to the Code of Conduct Committee.
113+
* The Code of Conduct Committee will formally review and sign off on all cases
114+
where this mechanism has been applied to make sure it is not being used to
115+
control ordinary heated disagreement.
116+
117+
Report handling
118+
+++++++++++++++
119+
120+
When a report is sent to the committee they will immediately reply to the
121+
reporter to confirm receipt. This reply must be sent within 72 hours, and the
122+
group should strive to respond much quicker than that.
123+
124+
If a report doesn't contain enough information, the committee will obtain all
125+
relevant data before acting. The committee is empowered to act on the Steering
126+
Council’s behalf in contacting any individuals involved to get a more complete
127+
account of events.
128+
129+
The committee will then review the incident and determine, to the best of their
130+
ability:
131+
132+
* What happened.
133+
* Whether this event constitutes a Code of Conduct violation.
134+
* Who are the responsible party(ies).
135+
* Whether this is an ongoing situation, and there is a threat to anyone's
136+
physical safety.
137+
138+
This information will be collected in writing, and whenever possible the
139+
group's deliberations will be recorded and retained (i.e. chat transcripts,
140+
email discussions, recorded conference calls, summaries of voice conversations,
141+
etc).
142+
143+
It is important to retain an archive of all activities of this committee to
144+
ensure consistency in behavior and provide institutional memory for the
145+
project. To assist in this, the default channel of discussion for this
146+
committee will be a private mailing list accessible to current and future
147+
members of the committee as well as members of the Steering Council upon
148+
justified request. If the Committee finds the need to use off-list
149+
communications (e.g. phone calls for early/rapid response), it should in all
150+
cases summarize these back to the list so there's a good record of the process.
151+
152+
The Code of Conduct Committee should aim to have a resolution agreed upon within
153+
two weeks. In the event that a resolution can't be determined in that time, the
154+
committee will respond to the reporter(s) with an update and projected timeline
155+
for resolution.
156+
157+
158+
.. _CoC_resolutions:
159+
160+
Resolutions
161+
~~~~~~~~~~~
162+
163+
The committee must agree on a resolution by consensus. If the group cannot reach
164+
consensus and deadlocks for over a week, the group will turn the matter over to
165+
the Steering Council for resolution.
166+
167+
168+
Possible responses may include:
169+
170+
* Taking no further action
171+
172+
- if we determine no violations have occurred.
173+
- if the matter has been resolved publicly while the committee was considering responses.
174+
175+
* Coordinating voluntary mediation: if all involved parties agree, the
176+
Committee may facilitate a mediation process as detailed above.
177+
* Remind publicly, and point out that some behavior/actions/language have been
178+
judged inappropriate and why in the current context, or can but hurtful to
179+
some people, requesting the community to self-adjust.
180+
* A private reprimand from the committee to the individual(s) involved. In this
181+
case, the group chair will deliver that reprimand to the individual(s) over
182+
email, cc'ing the group.
183+
* A public reprimand. In this case, the committee chair will deliver that
184+
reprimand in the same venue that the violation occurred, within the limits of
185+
practicality. E.g., the original mailing list for an email violation, but
186+
for a chat room discussion where the person/context may be gone, they can be
187+
reached by other means. The group may choose to publish this message
188+
elsewhere for documentation purposes.
189+
* A request for a public or private apology, assuming the reporter agrees to
190+
this idea: they may at their discretion refuse further contact with the
191+
violator. The chair will deliver this request. The committee may, if it
192+
chooses, attach "strings" to this request: for example, the group may ask a
193+
violator to apologize in order to retain one’s membership on a mailing list.
194+
* A "mutually agreed upon hiatus" where the committee asks the individual to
195+
temporarily refrain from community participation. If the individual chooses
196+
not to take a temporary break voluntarily, the committee may issue a
197+
"mandatory cooling off period".
198+
* A permanent or temporary ban from some or all Matplotlib spaces (mailing lists,
199+
gitter.im, etc.). The group will maintain records of all such bans so that
200+
they may be reviewed in the future or otherwise maintained.
201+
202+
Once a resolution is agreed upon, but before it is enacted, the committee will
203+
contact the original reporter and any other affected parties and explain the
204+
proposed resolution. The committee will ask if this resolution is acceptable,
205+
and must note feedback for the record.
206+
207+
Finally, the committee will make a report to the Matplotlib Steering Council (as
208+
well as the Matplotlib core team in the event of an ongoing resolution, such as a
209+
ban).
210+
211+
The committee will never publicly discuss the issue; all public statements will
212+
be made by the chair of the Code of Conduct Committee or the Matplotlib Steering
213+
Council.
214+
215+
216+
Conflicts of Interest
217+
~~~~~~~~~~~~~~~~~~~~~
218+
219+
In the event of any conflict of interest, a committee member must immediately
220+
notify the other members, and recuse themselves if necessary.

doc/devel/conduct/code_of_conduct.rst

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
Matplotlib Code of Conduct
2+
==========================
3+
4+
5+
Introduction
6+
------------
7+
8+
This code of conduct applies to all spaces managed by the Matplotlib project,
9+
including all public and private mailing lists, issue trackers, wikis, blogs,
10+
Twitter, and any other communication channel used by our community. The
11+
Matplotlib project does not organise in-person events, however events related
12+
to our community should have a code of conduct similar in spirit to this one.
13+
14+
This code of conduct should be honored by everyone who participates in
15+
the Matplotlib community formally or informally, or claims any affiliation with the
16+
project, in any project-related activities and especially when representing the
17+
project, in any role.
18+
19+
This code is not exhaustive nor complete. It serves to distill our common
20+
understanding of a collaborative, shared environment and goals. Please try to
21+
follow this code in spirit as much as in letter, to create a friendly and
22+
productive environment that enriches the surrounding community.
23+
24+
25+
Specific Guidelines
26+
-------------------
27+
28+
We strive to:
29+
30+
1. Be open. We invite anyone to participate in our community. We prefer to use
31+
public methods of communication for project-related messages, unless
32+
discussing something sensitive. This applies to messages for help or
33+
project-related support, too; not only is a public support request much more
34+
likely to result in an answer to a question, it also ensures that any
35+
inadvertent mistakes in answering are more easily detected and corrected.
36+
37+
2. Be empathetic, welcoming, friendly, and patient. We work together to resolve
38+
conflict, and assume good intentions. We may all experience some frustration
39+
from time to time, but we do not allow frustration to turn into a personal
40+
attack. A community where people feel uncomfortable or threatened is not a
41+
productive one.
42+
43+
3. Be collaborative. Our work will be used by other people, and in turn we will
44+
depend on the work of others. When we make something for the benefit of the
45+
project, we are willing to explain to others how it works, so that they can
46+
build on the work to make it even better. Any decision we make will affect
47+
users and colleagues, and we take those consequences seriously when making
48+
decisions.
49+
50+
4. Be inquisitive. Nobody knows everything! Asking questions early avoids many
51+
problems later, so we encourage questions, although we may direct them to
52+
the appropriate forum. We will try hard to be responsive and helpful.
53+
54+
5. Be careful in the words that we choose. We are careful and respectful in
55+
our communication and we take responsibility for our own speech. Be kind to
56+
others. Do not insult or put down other participants. We will not accept
57+
harassment or other exclusionary behaviour, such as:
58+
59+
- Violent threats or language directed against another person.
60+
- Sexist, racist, or otherwise discriminatory jokes and language.
61+
- Posting sexually explicit or violent material.
62+
- Posting (or threatening to post) other people's personally identifying information ("doxing").
63+
- Sharing private content, such as emails sent privately or non-publicly,
64+
or unlogged forums such as IRC channel history, without the sender's consent.
65+
- Personal insults, especially those using racist or sexist terms.
66+
- Unwelcome sexual attention.
67+
- Excessive profanity. Please avoid swearwords; people differ greatly in their sensitivity to swearing.
68+
- Repeated harassment of others. In general, if someone asks you to stop, then stop.
69+
- Advocating for, or encouraging, any of the above behaviour.
70+
71+
72+
Diversity Statement
73+
-------------------
74+
75+
The Matplotlib project welcomes and encourages participation by everyone. We are
76+
committed to being a community that everyone enjoys being part of. Although
77+
we may not always be able to accommodate each individual's preferences, we try
78+
our best to treat everyone kindly.
79+
80+
No matter how you identify yourself or how others perceive you: we welcome you.
81+
Though no list can hope to be comprehensive, we explicitly honour diversity in:
82+
age, culture, ethnicity, genotype, gender identity or expression, language,
83+
national origin, neurotype, phenotype, political beliefs, profession, race,
84+
religion, sexual orientation, socioeconomic status, subculture and technical
85+
ability, to the extent that these do not conflict with this code of conduct.
86+
87+
Though we welcome people fluent in all languages, Matplotlib development is
88+
conducted in English.
89+
90+
Standards for behaviour in the Matplotlib community are detailed in the Code of
91+
Conduct above. Participants in our community should uphold these standards
92+
in all their interactions and help others to do so as well (see next section).
93+
94+
95+
Reporting Guidelines
96+
--------------------
97+
98+
We know that it is painfully common for internet communication to start at or
99+
devolve into obvious and flagrant abuse. We also recognize that sometimes
100+
people may have a bad day, or be unaware of some of the guidelines in this Code
101+
of Conduct. Please keep this in mind when deciding on how to respond to a
102+
breach of this Code.
103+
104+
For clearly intentional breaches, report those to the Code of Conduct committee
105+
(see below). For possibly unintentional breaches, you may reply to the person
106+
and point out this code of conduct (either in public or in private, whatever is
107+
most appropriate). If you would prefer not to do that, please feel free to
108+
report to the Code of Conduct Committee directly, or ask the Committee for
109+
advice, in confidence.
110+
111+
You can report issues to the Matplotlib Code of Conduct committee, at
112+
[email protected]. Currently, the committee consists of:
113+
114+
- Stefan van der Walt
115+
- Melissa Weber Mendonça
116+
- Anirudh Subramanian
117+
118+
If your report involves any members of the committee, or if they feel they have
119+
a conflict of interest in handling it, then they will recuse themselves from
120+
considering your report. Alternatively, if for any reason you feel
121+
uncomfortable making a report to the committee, then you can also contact:
122+
123+
- Senior `NumFOCUS staff <https://numfocus.org/code-of-conduct#persons-responsible>`__: [email protected]
124+
125+
126+
Incident reporting resolution & Code of Conduct enforcement
127+
-----------------------------------------------------------
128+
129+
*This section summarizes the most important points, more details can be found
130+
in* :ref:`CoC_reporting_manual`.
131+
132+
We will investigate and respond to all complaints. The Matplotlib Code of Conduct
133+
Committee and the Matplotlib Steering Committee (if involved) will protect the
134+
identity of the reporter, and treat the content of complaints as confidential
135+
(unless the reporter agrees otherwise).
136+
137+
In case of severe and obvious breaches, e.g. personal threat or violent, sexist
138+
or racist language, we will immediately disconnect the originator from Matplotlib
139+
communication channels; please see the manual for details.
140+
141+
In cases not involving clear severe and obvious breaches of this code of
142+
conduct, the process for acting on any received code of conduct violation
143+
report will be:
144+
145+
1. acknowledge report is received
146+
2. reasonable discussion/feedback
147+
3. mediation (if feedback didn't help, and only if both reporter and reportee agree to this)
148+
4. enforcement via transparent decision (see :ref:`CoC_resolutions`) by the
149+
Code of Conduct Committee
150+
151+
The committee will respond to any report as soon as possible, and at most
152+
within 72 hours.
153+
154+
155+
Endnotes
156+
--------
157+
158+
We are thankful to the groups behind the following documents, from which we
159+
drew content and inspiration:
160+
161+
- `The NumPy Code of Conduct <https://numpy.org/code-of-conduct/>`_
162+
- `The SciPy Code of Conduct <https://docs.scipy.org/doc/scipy/reference/dev/conduct/code_of_conduct.html>`_

0 commit comments

Comments
 (0)