denoland / deno

A modern runtime for JavaScript and TypeScript.
https://deno.com
MIT License
96.86k stars 5.35k forks source link

[Discussion] Add a Code of Conduct for 1.0 release #5154

Closed shortdiv closed 4 years ago

shortdiv commented 4 years ago

With Deno fast approaching 1.0, it's time for us to finally have a Code of Conduct so as to set a baseline standard for expected behavior in the community. This will help both create a more inclusive community and set guidelines on how to act when a violation does occur.

Similar to #79, and #3954

Also PR #3956

fletcher-greg commented 4 years ago

GitHub has a boilerplate for setting this up. See it here

ktiy commented 4 years ago

I feel like adopting the Contributor Covenant would be worth looking into, if it hasn't been already

ry commented 4 years ago

I'd welcome some language about being professional. This belongs in the contributing section of the manual, not in the root directory of the project https://github.com/denoland/deno/blob/master/docs/contributing.md

boneskull commented 4 years ago

A CoC can live in .github/CODE_OF_CONDUCT.md.

ghost commented 4 years ago

Sharing my thoughts from the conversation on Discord:

I have come to agree that formalizing behavior agreed upon by a community is important as it grows, but I also think that no‐one really reads large text documents, as well as that “a single common CoC” (such as the “Contributor Covenant”) is difficult to make effective, since it doesn’t outline the behaviors expected in each community. I think a short bullet list (four to seven items) in the README (with broad‐ish descriptions) would be way more appropriate.

Regardless of whether it’s a short list, or the Contributor Covenant, I definitely think a code of conduct should be for contributors to understand what kinds of behaviors are expected (and already socially defined) in the community, rather than to actually define them.

If some constrained behavior grows acceptable as the community evolves, then the code of conduct should be updated. Likewise, if some behavior grows unacceptable, then it should also cause an update.

shortdiv commented 4 years ago

It's common practice in many open source projects for a CoC to live in .github/CODE_OF_CONDUCT.md as both @boneskull and @fletcher-greg have mentioned. GH even has an entire section of their website dedicated to this under building a strong community and specifically refer to Codes of Conduct

I'm a bit confused as to why and how this is mucking up the root directory

ahungry commented 4 years ago

Just the existence of a .github directory in a codebase at all is clutter of the root directory, as it is coupling the code to one particular centralized VCS hosting platform and has no actual use to someone after cloning the repo, but it does already seem to be present in the master branch.

shortdiv commented 4 years ago

A .github folder is really useful for more than a CoC, it is also a place for creating templates for issues and contributions. From a maintainer's perspective this has a very positive impact in terms of fewer issues lacking context and better structured PRs

kball commented 4 years ago

Not having a Code of Conduct is stating that you don't give a damn about the people in our community who are vulnerable. Vague language and appeals to "be professional" don't work. This has been well shown in many open source communities, including Node.js in the early days. The vast majority of people are already good and professional, but for those who are not you need clear and enforceable bounds of what is acceptable. Vague lines will always be abused.

And to @Zambonifofex's point - many people will not read the CoC. But I guarantee you the people who are in vulnerable groups will, because they need to know if this community will be safe for them. If you are in the bucket who doesn't worry about reading the CoC, count yourself lucky.

The earlier you can adopt a CoC, the easier it will be. The more you delay it the more bad actors and bad habits will take root in the community, and the more the project will get a reputation for toxicity.

David-Else commented 4 years ago

Please don't use the https://www.contributor-covenant.org , it is awful! Let me start to do a quick refactor:

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.

replace with:

for everyone.
cassidoo commented 4 years ago

@David-Else I disagree with your refactor, would you mind explaining why you made it? @kball is very right (imo) in that "Vague lines will always be abused" so I'd love to hear your stance in why you disagree.

David-Else commented 4 years ago

@cassidoo The limited list of 'regardless of' people is arbitrary, and by definition misses out many people. This is in itself discriminatory. Simply replacing it with for everyone solves the problem.

"Vague lines will always be abused"

This is an argument FOR my refactor. Why is this particular list chosen? Who is missed out from it? It is very much a US-centric silicone valley world view being projected here. There are a million things that people could discriminate against if they wanted to. Why only these? The answer is that it would be impossible to list every single thing that could be discriminated against, so therefor the list logically should not exist.

ghost commented 4 years ago

@cassidoo Also from Discord:

I feel like I sympathize with @David-Else on the issue (and have a similar problem with the Rust CoC). In particular, trying to enumerate oppressed groups is ineffective, because it can never exhaustively do so. If there is someone who is in an oppressed group that is not listed, they might already feel excluded by reading the CoC.

Saying “for all” or “for everyone” should be enough, and naturally already include everyone.


Also, I decided to go ahead and write a (simple) code of conduct following my proposal. If anyone has any feedback on it, it would be really appreciated!

David-Else commented 4 years ago

@Zambonifofex Fantastic! A big improvement. I would delete and aims to allow for many people to be comfortable herein. and change to:

deno is an inclusive community that encourages people to behave in a way that is welcoming to other members.

Seems to say the same thing and easier to understand? herein is a slightly obscure word.

ahungry commented 4 years ago

In my limited (one day) exposure to the Deno project, I already feel that CoC you wrote up is not reflective of what seems to go on with opinion based issues.

https://github.com/denoland/deno/issues/5162

I brought up "an opinion" and it was closed without any comment or discussion.

If it was due to missing the [Discussion] preface on the subject, a note requesting I add that beforehand would have been more professional than a quick close and no comment.

cassidoo commented 4 years ago

@David-Else and @Zambonifofex, I see what you're saying. What if the line said, "including but not limited to," would you be opposed to something like that?

I think that list was chosen in particular because those are among the most prevalent ways by which people are discriminated against. Someone who might have experienced something negative because of those characteristics can see that list and know that they are specifically protected, and can know that actions will be taken against those breaking it for them.

I like how Hackathon Hackers' CoC was worded, too:

Although this list cannot be exhaustive, we explicitly honor diversity in age, gender, gender identity or expression, culture, ethnicity, language, national origin, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, and technical ability. We will not tolerate discrimination based on any of the protected characteristics above, including participants with disabilities.

A simple CoC like you wrote up, @Zambonifofex, is a good start, but it assumes the best. Unfortunately, folks who have been discriminated against don't have that opportunity, and have to assume the worst.

ghost commented 4 years ago

@cassidoo: That’s a fair argument, but don’t you feel like it can worded in a general way?

I wrote “Deno is an inclusive community, and aims to allow for many people to be comfortable herein” exactly with that kind of problem in mind. That is, trying to make people of all kinds of groups feel like they are welcome, and ensuring they feel safe in the community.

David-Else commented 4 years ago

@cassidoo Nobody should be specifically protected, everyone should be equally protected, that is the point.

I think that list was chosen in particular because those are among the most prevalent ways by which people are discriminated against.

Do you have any statistics to back this up in relation to collaborative online programming?

I will add that this is very much a political issue. In the UK we have the Protected characteristics law which makes punishment greater if the crime against someone is because of:

It keeps growing all the time, just like the CoC list. It is highly contentious and a source of endless arguments. It boils down to collective rights vs individual rights, a massive topic. This kind of thing does not belong in software development, more on a Reddit political forum!

shortdiv commented 4 years ago

This conversation about who counts as everyone is a great and very useful conversation but it's sort of a red herring here. A good first step is to adapt established CoCs like Rust's and refer to them in the contributing guidelines as @ry has done in his related PR. It's not perfect but it's progress.

David-Else commented 4 years ago

@shortdiv

A debate about one of the fundamental principles of the CoC was not a

red herring

I spent quite a bit of time trying to clearly make my point, and I am afraid you have not even addressed it, never mind successfully countered it. You can't just turn up and call it a 'red herring' without explaining why.

What ry has wisely chosen to do by not directly including a CoC is not a

first step

towards one, and it is definitely not evidence of

progress

towards anything.

This is a very political use of language, could we keep activism and coding separate?

FredericLatour commented 4 years ago

But I guarantee you the people who are in vulnerable groups will, because they need to know if this community will be safe for them.

Can someone explain to me how an online dev community could not be safe for any kind of minority? I don't even get what is a minority in this context !!!

I could named myself "TheHappyDinosaur", be black, red, yellow, blue or white and happily participate without anybody knowing anyway. I must be missing something.

boneskull commented 4 years ago

@FredericLatour yeah, I’d say you’re missing something

FredericLatour commented 4 years ago

@boneskull And maybe you can explain?

boneskull commented 4 years ago

if you can’t be bothered to search google for the answer to why a CoC is important, I can’t be bothered to explain it

ahungry commented 4 years ago

I never understood why online presence in the development space didn't more closely mirror that of, say, an MMORPG - where people are represented as whatever they choose, with no association to their real identity (or, even better - left completely anonymous. We could all be represented and identified as random SHAs).

Then the only thing to focus on would be the goal and implementation of code, with no bearing on politics or personal identity.