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

Skip to content

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

Closed
wants to merge 3 commits into from
Closed

DOC: add code of conduct #18538

wants to merge 3 commits into from

Conversation

jklymak
Copy link
Member

@jklymak jklymak commented Sep 22, 2020

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

  • Has pytest style unit tests (and pytest passes).
  • Is Flake 8 compliant (run flake8 on changed files to check).
  • New features are documented, with examples if plot related.
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • Conforms to Matplotlib style conventions (install flake8-docstrings and pydocstyle<4 and run flake8 --docstring-convention=all).
  • New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).

@jklymak jklymak added Documentation governance needs approval from @steering-council labels Sep 22, 2020
@story645 story645 self-assigned this Sep 22, 2020
@story645
Copy link
Member

story645 commented Sep 22, 2020

Still not even sure if goes to this repo or the governance one...
ETA: just checked admin == steering council which really needs its own GitHub team for block notifications

@jklymak
Copy link
Member Author

jklymak commented Sep 22, 2020

This needs to go in our docs.... Just copying (exactly) what Numpy did to make things simple. Note there are no links yet, though.

@dstansby dstansby self-assigned this Sep 22, 2020
Copy link
Member

@dstansby dstansby left a 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.

@jklymak
Copy link
Member Author

jklymak commented Sep 22, 2020

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.

@story645
Copy link
Member

So long-term plan far as I know is for the governance docs to migrate to ours...this is a @tacaswell question

Frankly this should have been handled by numfocus, but I guess they didn't want to seem top-down.

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.

@dstansby
Copy link
Member

This is now ready for review.

@jklymak jklymak added the status: needs comment/discussion needs consensus on next step label Sep 23, 2020
@jklymak
Copy link
Member Author

jklymak commented Sep 23, 2020

@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?

story645 added a commit to story645/matplotlib that referenced this pull request Sep 25, 2020
This is a really short term fix until matplotlib#18538 goes in.
dstansby pushed a commit that referenced this pull request Sep 25, 2020
* 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
@jklymak
Copy link
Member Author

jklymak commented Sep 25, 2020

Ping @dstansby about announcing this?

@tacaswell
Copy link
Member

This should get majority sign off from the steering council (me @efiring , @dopplershift @timhoffm ) before being merged.

@jklymak
Copy link
Member Author

jklymak commented Sep 25, 2020

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
Copy link
Member

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?

Copy link
Contributor

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?

Copy link
Member

@story645 story645 Sep 25, 2020

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

@dstansby
Copy link
Member

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.

@story645
Copy link
Member

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)

@dstansby
Copy link
Member

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.
Copy link
Member

@story645 story645 Sep 29, 2020

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.

@story645
Copy link
Member

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:

  • @matplotlib/developers
  • @matplotlib/community
  • Steering council
  • Outside member from a downstream package

Mostly cause that's who I think are the stakeholders in this sort of thing.

@jklymak
Copy link
Member Author

jklymak commented Sep 29, 2020

That seems reasonable. OTOH, I don't think the committee members should be argued publicly, but rather should be appointed by the Steering Committee.

@dopplershift
Copy link
Contributor

We shouldn't publicly discuss individuals, but I think it's good to establish guidance for the makeup of the CoC committee.

@jklymak
Copy link
Member Author

jklymak commented Sep 29, 2020

The doc fails to build because this needs to be in a TOC. Suggestions? I'd tend to just put in user docs?

@story645
Copy link
Member

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'd tend to just put in user docs?

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.

@jklymak
Copy link
Member Author

jklymak commented Sep 29, 2020

Governance is not published anywhere other than the GitHub page, though?

@dopplershift
Copy link
Contributor

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.

@jklymak
Copy link
Member Author

jklymak commented Sep 29, 2020

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.

@dopplershift
Copy link
Contributor

I'm the opposite, I find it weird (and even off-putting) that this:

image

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 CODE_OF_CONDUCT.md, on either the repo (in .github) or in the organization's .github repository.

@jklymak
Copy link
Member Author

jklymak commented Sep 29, 2020

Hmm, well thats yet a third place to put it.

@story645
Copy link
Member

@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...)

@jklymak
Copy link
Member Author

jklymak commented Sep 29, 2020

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 CODE_OF_CONDUCT.md redirect to the official docs. That is basically what I would expect from clicking that link.

@willingc
Copy link

@tacaswell @story645 I'm not sure where you prefer comments: Mine are brief so I will leave them here.

  • Choice of CoC: Consider Jupyter's and nteract's CoC as they have had greater success in inclusion and training re: CoC
  • Code of Conduct file should be displayed in full text for all repos and website. You can identify one as the canonical source and use GitHub actions to push to all others on changes. For inclusion, the text being available matters or I will question the project's commitment to inclusion and conduct
  • Try to resist the urge to word-smith a whole new code of conduct vs. using an existing one. Sort of like security - rolling your own is seldom a wise idea.
  • Commit to providing training to those on the CoC committee on how to handle reports

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.
Copy link
Member

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.

@dopplershift
Copy link
Contributor

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.

@tacaswell
Copy link
Member

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.
Copy link

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
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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:

Copy link

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).

Copy link

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.

Copy link
Member Author

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.

Copy link

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.

Copy link
Member Author

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.

Copy link

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.
Copy link

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

@trallard
Copy link

trallard commented Oct 7, 2020

I added a few comments and questions. And I wholeheartedly agree with @willingc on thinking about providing training for folks in the CoC committee.

@jklymak jklymak marked this pull request as draft October 8, 2020 17:54
@jklymak
Copy link
Member Author

jklymak commented Oct 8, 2020

I started to add a list of CoC for reference above.

@dstansby
Copy link
Member

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

@dstansby dstansby closed this Oct 23, 2020
@matthew-brett
Copy link
Contributor

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.

@jklymak jklymak deleted the doc-coc branch October 23, 2020 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation governance needs approval from @steering-council status: needs comment/discussion needs consensus on next step
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants