[SciPy-Dev] establishing a Code of Conduct for SciPy

Ralf Gommers ralf.gommers at gmail.com
Sat Aug 19 20:53:59 EDT 2017


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, 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scipy-dev/attachments/20170820/2cb31688/attachment.html>


More information about the SciPy-Dev mailing list