On Sun, Aug 20, 2017 at 12:53 PM, Ralf Gommers <ralf.gommers@gmail.com> wrote:
Hi all,
I propose that we as SciPy developers and community adopt a Code of Conduct.
As you probably know, Code of Conduct (CoC) documents are becoming more common every year for open source projects, and there are a number of good reasons to adopt a CoC: 1. It gives us the opportunity to explicitly express the values and behaviors we'd like to see in our community. 2. It is designed to make everyone feel welcome (and while I think we're a welcoming community anyway, not having a CoC may look explicitly unwelcoming to some potential contributors nowadays). 3. It gives us a tool to address a set of problems if and when they occur, as well as a way for anyone to report issues or behavior that is unacceptable to them (much better than having those people potentially leave the community). 4. SciPy is not yet a fiscally sponsored project of NumFOCUS, however I think we'd like to be in the near future. NumFOCUS has started to require having a CoC as a prerequisite for new projects joining it. The PSF has the same requirement for any sponsorship for events/projects that it gives.
Also note that GitHub has starting checking the presence of a CoC fairly prominently (https://github.com/scipy/scipy/community), and has also produced a guide with things to think about when formulating a CoC: https://opensource.guide/code-of-conduct/. I recommend reading that guide (as well as others guides on that site), it's really good.
To get to a CoC document, a good approach is to borrow text from a CoC that has been in use for a while and has proven to be valuable, and then modify where needed (similar to a software license - don't invent your own). I considered three existing CoC's: - The Contributor Covenant (http://contributor-covenant.org/version/1/2/0/): simple, concise, the most widely used one. The NumFOCUS recommended one is based on it as well (https://www.numfocus.org/about/code-of-conduct/). - The Python Community Code of Conduct (https://www.python.org/psf/ codeofconduct/): also simple, addresses mostly the spirit in which the Python community is operating / should operate. - The Jupyter Code of Conduct (https://github.com/jupyter/ governance/tree/master/conduct): much more detailed, in part derived from the Speak up! and Django ones, more appropriate for large communities.
I think the Python Community CoC isn't a good basis, it's more a statement of intent for a wider community while it's missing too many elements that a project CoC should have. That leaves the choice between the short and simple Contributor Covenant, and the more extensive Jupyter one. Personally I like the tone of the Jupyter one *much* more,
It was pointed out to me that the process/discussion of introducing a CoC for Jupyter happened in a very sub-optimal way, and not everyone who was involved was happy with the end result. Clearly we want to avoid repeating any mistakes that were made there, so here's a plan: a) Have multiple ways to give feedback (not everyone may be comfortable doing so on a public list), and take that seriously. Feedback in private is very welcome. Also, we'll hold an open conference call (after step (b) is done, I'll send out a time/date later). b) Iterate on the content of the PR a bit to address item 4 below. Matthew has offered to take the lead on this. My high level objectives were: 1. We need to have a CoC 2. It has to have a friendly tone 3. It has to have an enforcement mechanism A (imho valid) criticism of the Jupyter CoC is that it's too vague on what is/isn't allowed and what potential consequences are of doing something that isn't allowed. It's clearly not possible to cover every scenario, however things can be illustrated by example. E.g. just being a little unfriendly will not get you banned from the mailing list (but maybe will result in a private email asking to keep it friendly), while threatening with physical violence will. And robust discussion is still very welcome. So objective to add: 4. Be clear on what is and isn't okay, and how that will be handled. So update to follow. Hopefully we end up with everyone being happy with both the content of the CoC and the way we arrived at it. Cheers, Ralf
so I have started from that one and made the following modifications to make it fit SciPy better:
1. Removed the part about reporting during events (we don't organize those) and removed the language about events from the faq. 2. Changes to reporting options: removed the form (email should be enough), and added reporting to NumFOCUS as a second option. 3. Changes to enforcement manual: reply within 72 hours rather than 24 hours (we don't have paid work on SciPy, so 24 hours is not very realistic). Changed the committee from 5 to 3 members (5 is a lot, and we're significantly smaller than Jupyter/Django).
Here is a WIP PR with the CoC content: https://github.com/scipy/ scipy/pull/7764. I suggest to bring up any larger questions/issues here, and detailed textual comments on the PR. Once the content is agreed upon I will change it to reST and integrate it with the rest of the docs.
Thoughts? Volunteers for the committee?
Cheers, Ralf