-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
DOC: add code of conduct #18538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DOC: add code of conduct #18538
Conversation
Still not even sure if goes to this repo or the governance one... |
This needs to go in our docs.... Just copying (exactly) what Numpy did to make things simple. Note there are no links yet, though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for getting the ball rolling @jklymak. I have copy edited, and added a few TODO
markers to bits that need checking.
Outstanding questions from me:
- Is there a Matplotlib Code of Conduct committee?
- Is there a Matplotlib Steering committee (or equivalent under another name)?
- Can a volunteer run project really promise to respond within 72 hours, or any given timeframe? Personally I think not, and this language should be altered accordingly.
I also think this should go into the governance repo, and we should advertise it widely and give the community chance to feedback before adopting it.
There is a steering committee: @tacaswell @efiring @dopplershift @timhoffm so far as I know. There is no CoC committee: Suggest the SC nominate one I'll be surprised if this requires a long period of comment. I think this has been essentially handled by scipy and numpy, and I don't think our community is significantly different that we would arrive at a substantively different document. Frankly this should have been handled by numfocus, but I guess they didn't want to seem top-down. You can put this in the governance repo if you like, but there should be a timeline for adoption or it will just be forgotten. For instance, I don't think I've ever visited the governance repo, and so far as I know it has no public facing webpage other than GitHub. |
So long-term plan far as I know is for the governance docs to migrate to ours...this is a @tacaswell question
I think it's more that every community is a bit different, but NumFocus now requires projects who want to join them to have a proper CoC. And has one itself you could use & we can use them for reporting/deliberation. |
This is now ready for review. |
@dstansby can this be announced on the discourse page and via the mailing list as a draft for comment? We could merge after a couple of weeks for comments? |
This is a really short term fix until matplotlib#18538 goes in.
* Update documenting_mpl.rst * Update documenting_mpl.rst * Add reporting to github CoC tab This is a really short term fix until #18538 goes in. * Update CODE_OF_CONDUCT.md
Ping @dstansby about announcing this? |
This should get majority sign off from the steering council (me @efiring , @dopplershift @timhoffm ) before being merged. |
Just to be clear, I meant "announce" that this is a Draft for comment, not announce it as a done deal... |
When a member of the Code of Conduct committee becomes aware of a clear and | ||
severe breach, they will do the following: | ||
|
||
* Immediately disconnect the originator from all Matplotlib communication |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we have the technical ability to do this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well it looks like tools exist for Gitter, GitHub, and mailing lists. What about Discourse?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yup, can ban folks trivially on discourse & a to do is writing up the social ban policy
I've handled @QuLogic's comments, will aim to put a post on discourse and the mailing list this weekend linking this PR, and asking for feedback with a deadline of 2 weeks from now. |
Please ping me so I can share on twitter since we want as many eyes on this as possible (especially folks who might not be contributing currently for reasons a CoC might address) |
Have done a discourse post, announce mailing list (might need a little while to get approved by someone), and gitter post. Is there anywhere else I should cover? ping @story645 for twitter. |
|
||
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should turn over to Numfocus's Code of Conduct committee (and they've said we can) 'cause if our CoC committee can't come to a decision I think it's probably complex enough to need a fresh pair of non-project eyes.
Also shared it to the PyLadies slack & will RT all week. Throwing out my proposal for the makeup of the coc committee. If we can swing it, one person from:
Mostly cause that's who I think are the stakeholders in this sort of thing. |
That seems reasonable. OTOH, I don't think the committee members should be argued publicly, but rather should be appointed by the Steering Committee. |
We shouldn't publicly discuss individuals, but I think it's good to establish guidance for the makeup of the CoC committee. |
The doc fails to build because this needs to be in a TOC. Suggestions? I'd tend to just put in user docs? |
I agree on no public discussion, & like Ryan said, it's more about having some transparency and rational for how folks are chosen. I'm not wedded to my proposal, for me the most important bit is clearly spelled out guidance. I hope it might also help folks who don't know the folks on the CoC be more comfortable reporting.
I think that goes back to is governance in here or or in governance and then there's like a tab that links out from the main page. |
Governance is not published anywhere other than the GitHub page, though? |
True, but are people going to our user docs to find the Code of Conduct? I think it's most important that it's somewhere visibly linked on things like GitHub (using their CODE_OF_CONDUCT.md file), Discourse, Gitter, etc. |
I agree about linking, but I think of GitHub as a provisional space; I think it would be strange to have the generic render of an rst or md file as the official statement. |
I'm the opposite, I find it weird (and even off-putting) that this: goes to a page that is just a shim and links to yet something else. I'd much rather that link directly to the actual Code of Conduct, which you get if the content is in |
Hmm, well thats yet a third place to put it. |
@jklymak if we write the CoC in .rst that github & sphinx renders, would that do the trick? (Is that possibly w/ the way the docs build...) |
Sure? I don't think we want it two places that fall out of sync with one another. But if there is a way to sync them up, thats great... However, I mildly disagree w/ @dopplershift; I would just make |
@tacaswell @story645 I'm not sure where you prefer comments: Mine are brief so I will leave them here.
|
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend deleting this paragraph. The first sentence is inconsistent with the rest of the COC, as is hinted by the end of the paragraph. The list in the middle is futile and superfluous.
I second @willingc in that we shouldn't wordsmith something and just look at seeing if we can come to consensus on an existing one, like Jupyter's. |
Given that this has gotten almost no comments but we want to consider major changes to the text (e.g. changing to starting from Jupyter's) I think we should back off on proposed timeline and let this go at the pace it goes at. I think that we should schedule a call (seperate from the weekly dev call) next week to get the interested parties on the phone. @dstansby Can you take the lead on organizing that? If you get a time and invite list I can make sure we have a zoom room. Given our physical distribution, if @efiring wants to be on the call and folks in EU want to be on the call that pins us to the 1500-1600 NYC time and given the weekly call and the GSOD call that leaves W-F available. |
harassment or other exclusionary behaviour, such as: | ||
|
||
- Violent threats or language directed against another person. | ||
- Sexist, racist, or otherwise discriminatory jokes and language. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this a bit more explicit wording:
Sexist, racist, homophobic, transphobic, ableist, exclusionary or discriminatory jokes and language.
|
||
5. Be careful in the words that we choose. We are careful and respectful in | ||
our communication and we take responsibility for our own speech. Be kind to | ||
others. Do not insult or put down other participants. We will not accept |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
others. Do not insult or put down other participants. We will not accept | |
others. Do not insult or put down other participants. Use welcoming and inclusive language. We will not accept |
our communication and we take responsibility for our own speech. Be kind to | ||
others. Do not insult or put down other participants. We will not accept | ||
harassment or other exclusionary behaviour, such as: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the sprit of collaboration and diversity of backgrounds something down these lines could be added:
Be considerate of others' participation. Everyone should have an opportunity to be heard. Be patient and respectful of the fact that English is a second (or third or fourth!) language for some participants.
Conduct Committee and the Matplotlib Steering Committee (if involved) will | ||
protect the identity of the reporter, and treat the content of complaints as | ||
confidential (unless the reporter agrees otherwise). | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be relevant to keep a track of these reports for repeating behaviours/incidents that would set a precedent when dealing with subsequent reports referring to an individual.
Also, often microaggressions go unnoticed and could lead to significant damage to the community so having a log (report log?) can be useful to identify such behaviours.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reports will be confidential, but I don't think they will disappear upon resolution.
Also, often microaggressions go unnoticed and could lead to significant damage to the community so having a log (report log?) can be useful to identify such behaviours.
I'm not quite clear if you mean keep a log of formal CoC complaints, or if you mean keep a further log of "microaggressions" that aren't egregious enough to warrant a full complaint. The former seems fine, the latter would be pretty problematic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I mean of formal complaints (even if confidential).
This is particularly important for repeating behaviours .
Often certain behaviours / complaints seem rather small when isolated. But they can be quite hurtful and damaging if it's a repeating behaviour or escalating.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 That makes sense...
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. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are folks able to appeal a resolution? If so what are the mechanisms for this?
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Who is eligible to be a mediator? Are these folks from NUMFOCUS, the broader community or previously identified external folks
I added a few comments and questions. And I wholeheartedly agree with @willingc on thinking about providing training for folks in the CoC committee. |
I started to add a list of CoC for reference above. |
Thanks everyone for your input to this PR. We have taken the feedback into consideration, particularly with respect to no rolling our own Code of Conduct, and have decided that the most appropriate code of conduct for Matplotlib is the contributor covenant 2.0 (https://www.contributor-covenant.org/version/2/0/code_of_conduct/). I have opened a PR to implement this here: #18802 |
Oh man, I'm very sad to hear that. That one is particularly ugly, and badly written. To get an idea of some of the problems, try running it through readable.com. |
PR Summary
This is a stub that just copies the numpy CoC and does a search and replace for Matplotlib. https://numpy.org/code-of-conduct/ I'm not particularly advocating for this, though it seems fine to me. This is just to get the ball rolling; anyone can take this over if they like. @dstansby @story645
Codes of conduct (feel free to add more):
PR Checklist
pytest
passes).flake8
on changed files to check).flake8-docstrings
andpydocstyle<4
and runflake8 --docstring-convention=all
).doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).