-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
Add CODE_OF_CONDUCT.md #24896
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
Add CODE_OF_CONDUCT.md #24896
Conversation
I think this has to be discussed with the core team. |
Indeed, that's something that mush be discussed by the core team first. Good news is that we have planned to start a discussion about similar topics during SymfonyCon next week. Closing in the meantime. |
@egircys awesome initiative! As part of launching the diversity initiative at SymfonyCon I am looking exactly for people like you motivated to take action! I am currently educating myself on the topic. One of my first findings on the topic is that we should decouple the code of conduct oversight from any single entity. This of course requires motivated people commited to educating themselves on relevant topics and working to build trust within the community. Can you contact me at smith@pooteeweet.org? |
Instead of pointing to a sensio email address imho we should have a dedicated mailinglist and a named list of people with access to this mailinglist (in case someone f.e. wants to report but are not comfortable with all the people on the list, they have the option of contacting an individual from the list) who are not tied to just one entity. ideally the group should have people with a diverse background and some interest in the topic of diversity. I guess it makes sense to put the CoC here but we should then also put it in the documentation. |
BTW for anyone interested in the topic of CoC’s and this one in particular you might find this post useful https://philsturgeon.uk/2016/09/15/codes-of-conduct-maybe-theyre-not-so-bad/ |
Another helpful overview https://www.ashedryden.com/blog/codes-of-conduct-101-faq |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @egircys. I like this a lot ... and we already do most of those things in this project, so this should be easy to implement.
I left some comments about "vague" statements that could be backdoors to abuse. But overall looks nice!
.github/CODE_OF_CONDUCT.md
Outdated
* Using welcoming and inclusive language | ||
* Being respectful of differing viewpoints and experiences | ||
* Gracefully accepting constructive criticism | ||
* Focusing on what is best for the community |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Focusing on what is best for the community
can be very different from Focusing on what is best for the project
. Are we sure that the Symfony project should not focus on what's best for the Symfony project?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True, it's different, but it's also related. What's good for the project is good for the community and vice versa. I've changed it to the project and the community
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess this is a key part of this particular CoC .. the project exists for the community and not vice versa.
As such I would prefer to keep the original version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Someone could be an excellent developer (good for the project) but be extreme rude against woman (bad for the community). History itself has a great number of examples about this actually.
.github/CODE_OF_CONDUCT.md
Outdated
* The use of sexualized language or imagery and unwelcome sexual attention or advances | ||
* Trolling, insulting/derogatory comments, and personal or political attacks | ||
* Public or private harassment | ||
* Publishing others' private information, such as a physical or electronic address, without explicit permission |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Physical address makes a lot of sense ... but electronic address? For example, if I want to ping someone in a pull request, should I ask for permission before pinging them? (because pinging requires to expose the user electronic address on GitHub). And about the email, if that user publicly shows their email address in GitHub pull requests, should I also ask for permission to show that (already public) electronic address?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It affects only private information, but i guess it should be more explicit by saying non-public
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in general imho we should bring such feedback upstream. I would really prefer not forking the contents of this standard CoC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about that. Each project has different needs and ideas how to govern their community. Changing/tweaking/improving things might be OK. It's like bringing diversity to "diversity CoC".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
heh .. well I think CoC's are like software licenses .. yes each project is different but coming up with your own is likely going to create more problems than it solves.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
opened a ticket EthicalSource/contributor_covenant#492
.github/CODE_OF_CONDUCT.md
Outdated
* Trolling, insulting/derogatory comments, and personal or political attacks | ||
* Public or private harassment | ||
* Publishing others' private information, such as a physical or electronic address, without explicit permission | ||
* Other conduct which could reasonably be considered inappropriate in a professional setting |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is vague ... and vague statements are backdoors for abuse. If we know more unacceptable behaviors, let's list them all explicitly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True! I've removed this entry
.github/CODE_OF_CONDUCT.md
Outdated
|
||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. | ||
|
||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is again open for abuse --> behaviors that they deem inappropriate, threatening, offensive, or harmful
. We should stick to the list of unacceptable behaviors listed above. Nothing should depend on the opinion of a person of group of people. The rules to enforce should be clear, public and listed explicitly.
.github/CODE_OF_CONDUCT.md
Outdated
|
||
## Scope | ||
|
||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is again vague and open to abuse: Representation of a project may be further defined and clarified by project maintainers.
Let's be explicit about everything.
.github/CODE_OF_CONDUCT.md
Outdated
|
||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at coc@symfony.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. | ||
|
||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should reword this --> as determined by other members of the project's leadership
to be explicit. Let's list the offends and corresponding punishments.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in general imho we should bring such feedback upstream. I would really prefer not forking the contents of this standard CoC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW I think on this aspect .. the CoC tries to be specific to some degree on the offenses .. but if we were to attempt to list the offenses and punishments exhaustively .. I think we would need to fill a book, which I think isn't really helpful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I agree we can't list them all. We have two alternatives:
- Saying that you can't do A, B, C, D and E.
- Saying that you can't do A, B, C, D and E ... and any other thing a certain group of appointed people think you can't do.
I can't accept (2). That's why I propose to use (1) and remove any vague statement that is a backdoor to power abuse.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand where you are coming from but I think your expectations are unrealistic. Again if we try to list exactly every little thing, then we will miss things which enables predators and as a result the entire thing is of little value. Even the law doesn’t have such details and leaves some things up to judges and I don’t think we want to maintain anything even remotely close to the rule of law.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lsmith77 thanks for bringing in the Law to this discussion. I think your comment is not correct because the Law is the opposite of what you said. Specifically, this principle: "Everything which is not forbidden is allowed" (explanation on Wikipedia).
Can you imagine a country where the Law says: "you can't do A, B, C, D, E ... and whatever the elected President decides you can't do". That's not how the Law works.
About the judges, again I think your comment is not entirely true. The "Criminal Code" of each country lists the offences and their punishments exhaustively. If it's not in the "Criminal Code", then it's not a crime. Judges can adjust the punishments ... but always within the limits defined by the Criminal Code for each crime.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
exactly .. and I am saying you cannot expect a CoC to work like criminal law. at the end of the day we need to ensure that minorities feel safe in our community. So yes there will be edge cases and those will be hard to deal with simply because we do not have the infrastructure that is used to enforce the law. That being said, when you say “I cannot accept 2.” .. this is effectively what we have today. Right now nothing is written down, yet I assure you that even without a CoC community members could be expelled if they misbehave. This CoC is already a step in the direction of 1. that you hope for ..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is where we entirely disagree. To me, the two most important things a CoC must do are:
- List the things you can't do in this community.
- Explain what happens to you when you do those things.
The list of forbidden things will never be perfect, but can be modified in time. If we get some report about something that it's not on that list but we consider a wrong thing, then we cannot punish that person (because it wasn't on the list) ... but we can add it to the list to prevent that from happening in the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@javiereguiluz Laws are often much less concrete than you implied. For example, the US Fair Debt Collection Practices Act includes the following language:
See, e.g., 15 U.S.C. §§ 1692c(a)(1) (placing restrictions on call times), 1692d(5) (prohibiting “any conduct the natural consequence of which is to harass, oppress, or abuse,” including “[c]ausing a telephone to ring or engaging any person in telephone conversation repeatedly or continuously with intent to annoy, abuse, or harass”).
The law does not define "harass, oppress, or abuse", "repeatedly", or "continuously". Instead, it is the explicit purpose of a court to interpret the law, the situation, and issue a remedy. Regardless, perhaps the courts aren't the example we should be shooting for, as they regularly stretch the law, as well.
Having said that, there must be a balance between "explicit" and "implied" that can be agreed upon; perhaps even a result that can be merged upstream.
.github/CODE_OF_CONDUCT.md
Outdated
|
||
* The use of sexualized language or imagery and unwelcome sexual attention or advances | ||
* Trolling, insulting/derogatory comments, and personal or political attacks | ||
* Public or private harassment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
About this -> private harassment
... harassment is horrible of course. But if someone does that in private, out of Symfony repositories, out of Symfony conferences, etc. what should we do?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Private harassment can be reported as stated here https://github.com/symfony/symfony/pull/24896/files#diff-510d358f0b955588b8abd91113ae6858R36
If it's not reported not much can be done..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@javiereguiluz regarding the "should" do .. I guess what you are asking if we should even try to look at such stuff? I think the question is always if such private harassment has some relation to Symfony. for example if someone sends a problematic twitter DM with a twitter account that they associate with Symfony (either through the twitter bio or by using this account to interact with the Symfony community) then imho we should deal with this. If its a twitter account that is entirely unrelated to the Symfony community then based on my current thinking it would not necessary fall within the scope of this CoC.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. So we should explicit that the harassment must be related to Symfony somehow, not matter if it's public or private.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From what I have learned so far this specific topic is one of the trickiest aspects of CoCs since harassers tend to create dedicated troll accounts to specifically circumvent such clauses if they focus just on "public" harassment.
I forgot to mention that we should very clearly explain what is the Symfony community to which these rules would apply. For example:
|
@javiereguiluz the scope is a very good question .. Doctrine, Twig, SwiftMailer etc are at this point very much part of the eco-system and as such leaving them out would likely not solve the problem we are trying to solve. So yes it would be maybe a good idea to include them .. but it would require some coordination. I guess with Twig/Swiftmailer it would be easier than with Doctrine. Of course the next topics then might be other projects like Guzzle, PHPCR/Jackalope etc. Generally maybe we should specifically allow other projects within the eco-system to 1) also adopt the CoC and if they want opt in to our reporting "infrastructure". |
In general as stated above, I think it would be best to not fork the source version beyond adjusting the email for reporting. As such I would prefer to also keep their formatting so that we can more easily pull in upstream changes by simply copy & paste. So is there a specific reason why you removed the 80 char limit from the original version? |
I've reverted the changes and adjusted the email for reporting. I've added also the char limitation as it is in the original version. Initially the text was adopted from the GitHub CoC template, there is no char limitation. |
.github/CODE_OF_CONDUCT.md
Outdated
advances | ||
* Trolling, insulting/derogatory comments, and personal or political attacks | ||
* Public or private harassment | ||
* Publishing others' private information, such as a physical or electronic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@javiereguiluz since you had concerns over the question if using someone electronic address (like github) name I opened EthicalSource/contributor_covenant#492
I also re-read the line and given Coraline's response I would say its sufficiently clear that its really just about digging out information the contributor kept private from the community.
ie. it reads private information
and not personal information
@lsmith77 : thanks for taking this on. It's much appreciated. Also thanks for not reinventing the wheel! |
👎 why introducing any kind of politics? is there any ticket out there that would be Fixed by this PR? if you really think we would need something like this i would suggest a code of conflict or something like this: https://github.com/WebEngDUS/WebEngDUS/blob/master/CODE_OF_CONDUCT.md#2-principles |
For the opal incident I would refer to the following post to give a bit more context: But yes, the proposed CoC would apply to a twitter account that mentions Symfony in th bio or is used frequently to discuss topics around Symfony. As for the Kernel code of conduct and the other one proposed, I think there is a balance between being vauge and being explicit. As might evident by the discussions above with https://github.com/javiereguiluz he prefers being very explict. Those CoCs are however highly unspecific. More importantly the wording of the Kernel one along with the behavior permitted to Linus Torvald I would say its a prime example of a CoC that is so vague that its enforced can be achieved by apparently allowing any behavior to remain unchecked. I would very much say that if any core developers of Symfony would behave even half was bad as Linus, they should be removed. In conclusion, I do think it makes sense to discuss how vague and how explict we should be, imho the two options you proposed are too vague. |
Vague can be very powerful. If there are any kind of problem in the community we should take care, spend a lot of time to resolve it and teach how to contribute in a nice way.
Would we reject a PR because it's from Linus? Should we reject Linux support at? I can't imagine any incident that we couldn't solve such an CoC:
I believe that the community wouldn't have that much incidents that the jury must be scaled with laws. It would allow us to evaluate each case individually - which would be the fairest possible. |
I very much agree that we shouldn’t end up writing a detailed rule book. We should not duplicate the complexity of the legal system with police, lawyers etc. Obviously for absolute extreme forms of abuse/harassement, we should rely on the existing structures to deal with them. As for rejecting PRs, I thimk if a developer continues with verbal abuse of community members even after a CoC being put into place that makes it clear this is not acceptable and having been reminded of this, then yes we should no longer allow this person to be part of this community, including rejecting PRs. While that individual might produce stellar code, the cost will still be higher when people leave or contribute less because of this verbal abuse, ie. the cost of a toxis genius are never worth it. |
@timglabisch even though a CoC may not be a bullet-proof tool, it's not a legal document and you don't need a CoC to bring up politics neither do you need a CoC to deal with a jerk so in that sense a CoC is useless. It however shows an intent to not tolerate abusive behaviour and apparently it does work to a certain degree and make some people feel safer. So don't be afraid of a CoC to "bring up politics", it will be political if one want to regardless of the CoC. |
.github/CODE_OF_CONDUCT.md
Outdated
|
||
In the interest of fostering an open and welcoming environment, we as | ||
contributors and maintainers pledge to making participation in our project and | ||
our community a harassment-free experience for everyone, regardless of age, body |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
harassment
looks like a very strong word in English (https://en.oxforddictionaries.com/definition/harassment). @lsmith77 proposed in the Symfony Slack to use something like this instead:
I would rephrase this as "make a real effort to not make someone uncomfortable and if you do apologize and adjust your behavior .."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's impossible to not make anybody uncomfortable. People get uncomfortable even if somebody has different opinion, regardless in what area. Therefore I like harassment word better. That words means you are not doing it by accident, but repeatedly.
From wikipedia:
Harassment: It is commonly understood as behavior that disturbs or upsets, and it is characteristically repetitive.
I also like this from same page:
Harassment, under the laws of the United States, is defined as any repeated or continuing un-consented contact that serves no useful purpose beyond creating alarm, annoyance, or emotional distress.
.github/CODE_OF_CONDUCT.md
Outdated
|
||
In the interest of fostering an open and welcoming environment, we as | ||
contributors and maintainers pledge to making participation in our project and | ||
our community a harassment-free experience for everyone, regardless of age, body |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that list should also contain opinions
.github/CODE_OF_CONDUCT.md
Outdated
|
||
* The use of sexualized language or imagery and unwelcome sexual attention or | ||
advances | ||
* Trolling, insulting/derogatory comments, and personal or political attacks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What does trolling mean here? I think it should be clarified.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Make a deliberately offensive or provocative online post with the aim of upsetting someone or eliciting an angry response from them" https://en.oxforddictionaries.com/definition/troll
Blocked by the PRs pending in the docs repository. |
4194a40
to
c412449
Compare
.github/CODE_OF_CONDUCT.md
Outdated
@@ -1,6 +1,8 @@ | |||
# Code of Conduct | |||
|
|||
This project follows the Code of Conduct defined in [this document][code_of_conduct]. Please read the full text for understanding the accepted and unaccepted behavior. Please read also the [reporting guidelines][guidelines], in case you encountered or witnessed any misbehavior. | |||
This project follows the Code of Conduct defined in [this document][code_of_conduct]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd love to find something that would make "Code of Conduct" a link instead of "this document".
This PR was submitted for the master branch but it was squashed and merged into the 2.7 branch instead (closes #9394). Discussion ---------- Adding Code of Conduct Adding the Contributor Covenant Code of Conduct version 1.4. Relates to symfony/diversity#1 **TODO** - [x] Add the link to the enforcement team page - [x] Add the link to the enforcement process - [x] Add the link to concrete real-world examples of unwanted behavior - [x] Change "Project maintainers" to "Enforcement team members" Part of #9340 and #9393 Replaces symfony/symfony#24896 Commits ------- 02e4860 update contributor covenant link & documents fix 2de768f change project team to enforcement team 0e7b539 add link to core team e61a403 Replace ethnicity with ethnic origin 2f8aa5d Change "race" to "ethnic origin" 1b0e633 Change "project's leadership" to "core team" 464ea45 add link to examples document eba3ecf Adding Code of Conduct
Thank you @egircys. |
This PR was squashed before being merged into the 2.7 branch (closes #24896). Discussion ---------- Add CODE_OF_CONDUCT.md | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | n/a | Fixed tickets | n/a | License | MIT | Doc PR | n/a GitHub allows specifying a code of conduct for an open source project https://help.github.com/articles/adding-a-code-of-conduct-to-your-project/ The rule set seems maybe obvious, but it's good to have it included. I've adopted the version http://contributor-covenant.org/version/1/4/ with the email coc@sensiolabs.com Moved initial proposal to symfony/symfony-docs#9394 Commits ------- bbbafba Add CODE_OF_CONDUCT.md
GitHub allows specifying a code of conduct for an open source project https://help.github.com/articles/adding-a-code-of-conduct-to-your-project/
The rule set seems maybe obvious, but it's good to have it included.
I've adopted the version http://contributor-covenant.org/version/1/4/ with the email coc@sensiolabs.com
Moved initial proposal to symfony/symfony-docs#9394