badges / shields

Concise, consistent, and legible badges in SVG and raster format
https://shields.io
Creative Commons Zero v1.0 Universal
23.69k stars 5.49k forks source link

Code of conduct #2671

Closed paulmelnikow closed 4 years ago

paulmelnikow commented 5 years ago

We've been fairly lucky in this project especially given its broad reach to have maintained a high degree of cordiality and civility. This is much thanks to @espadrine who has a great deal of equanimity, and we continue to have a team of very friendly maintainers and mostly civil contributors.

That said, it's a best practice to provide a code of conduct. Projects without a code of conduct may be perceived as less safe / friendly to new contributors.

While I know that's not actually the case for this project, I want to make sure no one gets that impression from this omission. I also think it's a good idea to have something written down that we're ready to enforce when the time comes.

Contributor Covenant is a well respected template.

chris48s commented 5 years ago

In general I'm :+1: on a CoC. As well as the points you've made, one of the findings from GitHub's open source survey was that:

"Documentation that clearly explains a project's processes, such as contributing guides and codes of conduct, is valued more by groups that are underrepresented in open source, like women."

Adopting a code of conduct may remove a barrier to some potential contributors which we may not be aware is a problem for them.


It feels like adopting a CoC needs more of a consensus on adopting it than an approving review on a PR for a markdown file though. What are your thoughts on how to formalise that process?

I have a couple of opinions on selecting a CoC which aren't contradictory as such, but are.. less compatible than would be ideal:

Overall,

paulmelnikow commented 5 years ago

"Documentation that clearly explains a project's processes, such as contributing guides and codes of conduct, is valued more by groups that are underrepresented in open source, like women."

Adopting a code of conduct may remove a barrier to some potential contributors which we may not be aware is a problem for them.

šŸ™Œ

calebcartwright commented 5 years ago

I also think adopting a CoC is a good idea! Need some more time to review some of the specifics in detail though

paulmelnikow commented 5 years ago

The other one GitHub recommends is the Citizen Code of Conduct. Their website is down right now, though this is the text.

http://web.archive.org/web/20181116012721/http://citizencodeofconduct.org/

There are also some instructions here that will get you to a screen where you can read it:

screen shot 2019-01-08 at 6 22 22 pm
paulmelnikow commented 5 years ago

Interestingly PyPA doesn't use the Python COC. Here are some of @dstufft's comments from the discussion:

We might ask why we would not just adopt the PSF's CoC (or assume that it covers us as well), however the PSF CoC has some important problems that make it mostly ineffectual. It is super vague, and doesn't actually outline any unacceptable behavior. It is written in a very aspirational tone and does not provides any guidance on enforcement, and no guidance on how to adopt it and add these things itself. Even in PSF spaces it's not clear from a reading of the CoC who should be enforcing it, Van says "the board" but the CoC itself doesn't say that so I'm not sure how a new person is supposed to know.

I appreciate the aspirational quality of the PSF CoC, though I appreciate the straightforwardness and actionability of the Contributor Convenant.Ā While I haven't participated in the development or discussion of codes of conduct since college, I respect the author. I appreciate the work that goes into developing these with care, and while personally I don't find it overly negative, let's make sure whatever we choose has had a similar amount of care and debate put into it.

By the way, thanks for explicitly mentioning underrepresented groups. The maintainer group is an international group of white dudes, and a CoC lays some groundwork to helping change that.

paulmelnikow commented 5 years ago

Another option could be to supplement the code of conduct with a more traditional statement of mission, vision, and values which covers all our aspirations :)

chris48s commented 5 years ago

The other one GitHub recommends is the Citizen Code of Conduct. Their website is down right now, though this is the text. http://web.archive.org/web/20181116012721/http://citizencodeofconduct.org/

We can probably also do without explicitly declaring a weapons policy :crossed_swords:

In general, we still need feedback from a slightly wider group on this one. I'll continue to watch the thread. It would be useful to get some more viewpoints.

paulmelnikow commented 5 years ago

Another example code of conduct: https://opensource.microsoft.com/codeofconduct/

RedSparr0w commented 5 years ago

I'm not too fussed on which one we decide to use but I do like the look of this one, quite simple and straight forward.

https://opensource.microsoft.com/codeofconduct/

calebcartwright commented 5 years ago

I'm still reading through some of these, but will also add that I'm finding this surprisingly challenging šŸ˜„

I'd venture to say that we're all generally in agreement about our objectives (we want a vibrant, healthy, collaborative community with no discrimination, misbehavior, etc. of any kind) but until looking at CoC's in detail I never realized how important the precise wording is. That's also making me lean towards preferring to adopt/start with a simpler template, at least initially, which we can later adapt if needed.

I also appreciate the desire for our CoC to have a positive tone, and generally agree. Maybe instead of enumerating various actions that are banned, we could just specify an action plan for dealing with CoC violations? That way there's a roadmap for moderating that we can enforce consistently across the board. For example:

paulmelnikow commented 5 years ago

I looked around for some information about why the Contributor Covenant details unacceptable behavior, and found my way to an article by folks at the Ada Initiative about how to design a code of conduct for your community.

Specifically this, emphasis original:

Some more encouragement to get specific

In our experience at the Ada Initiative, getting specific about whatā€™s not okay is both the most effective and the most cringe-inducing part of writing a code of conduct. Nobody wants to be ā€œnegativeā€ ā€“ but itā€™s exactly what you need to make potential victims of harassment feel confident and safe in joining the community and in reporting violations. If I, as a new participant, donā€™t know whether the people enforcing the code of conduct think unwelcome sexual advances over IRC are considered okay, Iā€™m not going to take the risk of reporting them and getting scolded for being ā€œthin-skinned.ā€ Instead, Iā€™m just going to leave and find a project where I can work on my software in peace.

Hereā€™s what I wrote in response to one proposed code of conduct that didnā€™t get specific on what wasnā€™t allowed:

I think this code of conduct wonā€™t have the impact you are looking for as a result of a basic design choice: to not list whatā€™s not allowed in a specific manner. 90% of the effect and work is in being specific, for several reasons:

The major weapon of harassers is arguing whether something is actually harassing.Ā It is difficult to enforce a CoC if you have to have a month long nasty argument about whether it was violated. It burns out people like you.

It encourages people to report when they are certain they will be taken seriously and not dismissed or argued with.

The list of ā€œdonā€™tsā€ educates people on what to do, so you avoid problems in the first place.

Finally, it sends a signal to people considering joining your community in a way that ā€œbe niceā€ does not.Ā ā€œBe niceā€ is a signal to harassers that they can use tone arguments and otherwise play on peopleā€™s desires to be nice to get away with stuff.Ā For example, Wikipediaā€™s ā€œAssume good faithā€ is regularly abused by people not acting in good faith. Asking people to attempt resolution by discussion is used both as a delaying tactic and a way to abuse people longer.

(BTW I have definitely experienced that firsthand on Wikipedia.)

Having some discomfort in reading these is definitely okay. It seems like giving specific descriptions of unacceptable behavior and "what happens if" makes people cringe. At the same time, having those kind of descriptions in place is necessary for the CoC to be effective. Describing unacceptable behavior is literally one of four criteria on that CoC report card.

There are a lot of positive statements in the Contributor Covenant. The first two paragraphs are entirely positive, and exemplary descriptions of the behavior we want to encourage. I am not concerned about a few bullet points that give us pause, as they are needed to communicate that complaints about these kind of behaviors will be taken seriously, and to send a signal to people considering joining the community of what is expected here.

Something else I learned in doing this research: the group that published the template used for the Microsoft CoC announced several months later they were discontinuing that work. I'd seen that TODO Group discontinuation post before, though hadn't connected the Microsoft code to it.

For what it's worth, the more I read about the history of CoC adoption in open source, the more I feel remiss I feel that I havenā€™t started this discussion sooner. I'm sorry to anyone this has turned off from getting involved!

olivierlacan commented 5 years ago

I'd like for us to adopt the Contributor Convenant as soon as possible and iterate from there if we need to refine anything. The one problem with it currently is that there's usually only one point of reporting/contact which could be a person someone has a CoC claim against.

Examples or bad behavior are not a concern for me, quite the opposite. Generalities are room for ambiguity that can make things much more difficult when someone is misbehaving in a borderline fashion. Having examples helps far more than it hurts. And it also sends a strong signal to the people who might be worried about the kinds of behaviors we often see in OSS projects that those specific kinds of behaviors they might have heard about or been subjected to will explicitly not be tolerated. Essentially it's a guarantee we're not making an empty promise to bring the hammer down if we have to.

Coraline who started Contributor Convenant recently started working on Beacon, a tool to manage CoC reporting so that it's not left to a single email (or email group). I'm asking her if we could part of her first users because to me this was historically the weakest point of CoCs: that the person or people receiving the complaint may be the exact same people contributors are complaining about.

calebcartwright commented 5 years ago

Want to bump this

What steps do we need to take to roll out a CoC? Do we just need to pick one, do we need to agree to a process for selecting one first, etc.

Given my own inexperience in this space, I can get on board with using a widely-used template, Contributor Covenant or otherwise. I'd just prefer that we find one we can adopt sooner than later

chris48s commented 5 years ago

Good shout on bumping this. I'm on-board that adopting an off-the-shelf document like CC is the best way forward.

paulmelnikow commented 4 years ago

Personally, I'm trying to make 2020 a year of pushing forward on people-related parts of Shields. Getting the ops team going, and the hosting under the control of the maintainers has been a huge leap forward.

Adopting the Code of Conduct is a close second on that priority list. The recent killing of George Floyd by police in Minneapolis, and the actions which have followed, are a reminder of the importance of creating programming communities which are safe for everyone, and representative of the population as a whole.

This is the opening of the Contributor Covenant:

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

Shall we use this moment to carry this forward? ā¤ļø

chris48s commented 4 years ago

Open a PR adding CC. I will :heavy_check_mark: it

calebcartwright commented 4 years ago

5236 opened to adopt Contributor Covenant .

One minor item regarding the contact email address to use, but hopefully it will be straightforward given the above discussion.

I'd suggest we keep that PR open for some period of time (I'd suggest we plan on merging by the end of the week at the latest) for maintainers to approve, or offer a specific alternative CoC if they have any objections to CC