Skip to content
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

Adding guidelines for reporting violations of code of conduct #9340

Merged
merged 1 commit into from
May 5, 2018

Conversation

Nyholm
Copy link
Member

@Nyholm Nyholm commented Feb 26, 2018

We need some guidelines on how to report a violation of the code of conduct. These are adapted from Stumptown Syndicate and the Django Software Foundation.

FYI @lsmith77

This is related to https://github.com/symfony/diversity/issues/2

TODO

  • Add the enforcement team instead of the placeholders
  • Add the code of conduct instead of the place holder

Members
-------

Lukas Kahwe Smith
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the idea of adding photos, biographies and personal links of the enforcement team people. We never do that in Symfony. We don't even show this for the Core Team, which is more important than this team. Listing the names and links to their SL Connect websites could be enough.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This page will work as a contact page. So contact information is the most important thing here.

I do not prefer a shared email. I believe some people may be more comfortable contacting a specific person.


Photos and biographics etc is just to build trust and add personalities. I do not feel as strongly to this data as I do with the contact info.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah and it will be up to each enforcement team member to decide what they want to publish about themselves to build trust.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still disagree. I thought there was going to be a central person-less email (coc@symfony.com) or form (symfony.com/coc) to submit CoC violations. What's this thing about personal emails and contacting people individually?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because lets say someone wants to report someone that is either on or very closely related to someone on the enforcement team. or someone simply has had very bad experiences and first needs to build more trust.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not both?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a common email and I've removed the images.

it to the :doc:`enforcement team </contributing/code_of_conduct/enforcement_team>`
by emailing, twitter, in person or any way you see fit.

**All reports will be kept confidential.** In some cases we may determine that
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is highly disturbing to me --> All reports will be kept confidential.

I'd like to read a full explanation why that is needed at all. As I commented here it's easy to be 100% transparent and at the same time, protect the privacy of anyone involved. Example of a public report:

"A person reported that two people harassed them on Symfony Slack. We talked with person A and they admitted the wrongdoing, apologized to the victim and promised to behave in the future. Person B rejected the accusations but given the proofs in our possession, we banned them from the Symfony Slack for 3 months."

You only talk about "a person", "person A", "person B", etc. No names, no genders, no countries of origin, no details at all. But at the same time, you offer full transparency to the community, which is much needed in these cases.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. I think we should do both. I see a value of keeping a non-anonymized report as well. That one should be confidential.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That being said .. in some cases we will have to make the anonymized version to just read "there was an incident" in order to protect the people involved.

the idea was also raised to produce a summary report now and then (maybe every X months). in a summary it is easier to mention more details without causing issues with privacy.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fully disagree. No summaries please. We need full disclosure (full anonymous disclosure). The community must watch the enforcement team to ensure that they are not abusing their power.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stated goal of the enforcement team imho is #1 protecting people involved in incidents #2 evolving the community. As such #1 is imho more important to #2 .. if full disclosure causes issues with #1, then #2 looses. in fact I think it may at times even be necessary for the enforcement team to lie in public to ensure #1.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lying is really just an edge case. in most cases simply omitting personal information will do the trick.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let me give you an example:

lets say someone is leaking personal information, like postal address or information about sexual orientation etc. in such a case the enforcement team might lie by saying the leaked data is actually incorrect, even if they know them to be correct.

Copy link
Member

@javiereguiluz javiereguiluz Feb 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's no need to lie. An anonymous report in that case would read like this:


Person A notified us that Person B was leaking some personal information about them in different electronic mediums. The Enforcement Team found this a violation of XXXX and banned Person B for 1 year form Symfony Slack, Symfony repositories at GitHub and Symfony Conferences.


As you can see, you can give a much needed transparency to the community without revealing anything or putting any person in danger.


A different thing is how the team will archive this case in the private records. Will the record say: "Real Person Name B was saying that Real Person Name A was gay. We verified that doing XXX and YYY and we banned Real Person Name B for one year".

If you don't want to store those details, replace "B was saying that A is gay" by "B was leaking personal information about A".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be necessary to lie in order to derail people from using the leaked information against the community member.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with Javier about transparency. I also agree with Lukas that privacy trumps transparency. We want to create a safe environment.

I would really like us to do both as Javier suggests. I've tried to update the texts so that is more clear.

About the Enforcement Team
--------------------------

The :doc:`Symfony core team </contributing/code/core_team>` appoints enforcement
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get some more details about the enforcement team members? For how long are they elected? Can their appointments be renewed? For how long or for how many times? etc.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great questions. I do not have any answers to these questions. I felt that we assumed that members are elected until they resign.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We kind of left that process to the core team. I also think that generally I would expect this to not to be a time limited position (similar to the core team itself). And yes the core team could also remove someone. Not sure if we really want to include that process in here, but if someone feels strongly it should I am open to adding it.

I guess the question is then, does it require a majority, 2/3 majority, unanimous? is there a quorum? what is the vote duration? I do think that the vote itself should be secret from the outside, ie. the core team just presents the results but not who voted what.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we read what happens after, it seems tricky that's the core team's duty to select the enforcement team since alot of the core team is part / working with sensiolabs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the percentage of core team people working for sensiolabs is actually not quite that high and slowly decreasing.

@javiereguiluz
Copy link
Member

@lsmith77 even if I appreciate your work on the diversity initiative and I sincerely want you to succeed and I want a CoC (and an enforcement group) put in place as soon as possible ... I feel this proposal goes against the values of the Symfony project because of the "full secrecy", "public lies", etc.

@lsmith77
Copy link
Contributor

@javiereguiluz do you disagree with the priorities of protecting people affected over transparency? If both can be done, all the better. My point is that there will be cases where transparency and protecting privacy will be at odds. And in this case I think we need to focus on protecting privacy because otherwise we fail at creating a safe environment and also we may also run into legal trouble at some point. These are lessons that other people who have worked in this area have concluded btw.

.. image:: https://avatars3.githubusercontent.com/u/300279?s=400&v=4
:height: 150px
:width: 150px
:alt: Likas Kahwe Smith
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likas -> Lukas 🎉

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an example 😛

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

;)

spaces (events, meetings, mailing lists, IRC, Slack, etc.)
* A request to engage in mediation and/or an accountability plan.
* On a case by case basis, the enforcement team might share information an incidents
with employers or other 3rd parties in order to fulfill their mandate.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On a case by case basis, the enforcement team might share information an incidents with employers or other 3rd parties in order to fulfill their mandate.

This sounds like something that should only be done in extreme cases. I approve that it could be necessary if someone becomes very destructive, but it should be clear for all that this route should only be taken if there is really no alternative.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah .. indeed, the emphasis here is on order to fulfill their mandate. ie. its not the job of the enforcement team to check if their employees are doing good marketing or even fixing the HR issues if companies.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @Hipio on this one. Maybe there could be some clarification as to why it would be necessary to tell an employer about something that might not even be related to the job or the company at all? I see a lot of potential for abuse. Let's for a moment assume that the whole Drupal drama a while back (just citing the most recent example I can recall) caused somebody to lose their jobs because a person decided that this was worth reporting to their employer? Is this something the enforcement team would be comfortable with?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

noting again order to fulfill their mandate .. is the mandate maybe not clear enough for you to be comfortable with this section?

I work at Liip and lots of Symfony community members work at Liip. Lets say someone from Liip repeatedly misbehaves quite severely at Symfony events. Maybe even so badly that they decide that person needs to be banned from future Symfony events. In that situation the enforcement team might decide that in order to protect the Symfony developers working at Liip need to be protected by informing Liip. This is something that would be considered "fulfilling their mandate".

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I see. Again, maybe it's the lack of examples that might cause confusion. With your explanation it's clear what you mean by fulfill their mandate, thank you.

Now, I'm not sure if it's necessary to include such a specific example in the actual document or if it might be enough to clarify this when the question arises. For me, the explanation eliminates my concerns about the section. 👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah .. its a bit tricky .. we can and should not try to cover every eventuality. BTW we are also planning to add a document of real world issues (mostly taken from the php women experience for now) which will be linked from the CoC.

Also as noted here #9340 (comment) .. it might be a good idea that we clarify our fundamental aims that overarch the entire process.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated this. Thank you for the feedback.

* Nothing (if we determine no code of conduct violation occurred).
* A private reprimand from the Code of Conduct response team to the individual(s)
involved.
* A public reprimand.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* A public reprimand.

Is public shaming really something you want to do and if so, why? It will, most likely, tarnish their reputation and, possibly, affect their future employment. This could be just as bad, if not worse, than reporting someone to their employer.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah .. I also think this is something that isn't going to be done often .. if at all.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can also be illegal in some jurisdictions. As an example, Sweden (being my home jurisdiction and thus the one I am most familiar with) has the following law against defamation:

Penal code

Chapter 5
On Defamation

Section 1
A person who points out someone as being a criminal or as having a reprehensible way of living or otherwise furnishes information intended to cause exposure to the disrespect of others, shall be
sentenced for defamation to a fine.
If he was duty-bound to express himself or if, considering the circumstances, the furnishing of information on the matter was defensible, and if he can show that the information was true or that he had reasonable grounds for it, no punishment shall be imposed.

Section 2
If the crime defined in Section 1 is regarded as gross, a fine or imprisonment for at most two years shall be imposed for gross defamation.
In assessing whether the crime is gross, special consideration shall be given to whether the information, because of its content or the scope of its dissemination or otherwise, was calculated to bring about serious damage.

There is ample precedent that publicly shaming someone is considered defamatory, and the bar for it being defensible is fairly high. Furthermore, there's precedent that publishing a defamatory statement publicly on the internet constitutes gross defamation. Also, re-publishing a defamatory statement constitutes a separate offense, so if e.g. there were a post on the Symfony blog publicly reprimanding someone, and that entry is syndicated via RSS to say a Swedish tech news site, the news site could be liable.

Copy link
Member

@javiereguiluz javiereguiluz Feb 26, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Magnus, defamation requires that what you say is false. For example I can say that any of the Swedish serial killers is a criminal and a murderer. Given that this is a true fact, it's not defamation. I couldn't say the same about you, because that would be false and thus, defamation.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not in Sweden.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The brand "Symfony" is registered at least in France: https://bases-marques.inpi.fr/Typo3_INPI_Marques/marques_fiche_resultats.html?index=1&refId=4253977_201734_fmark&y=139
The company "Symfony" too: https://www.societe.com/societe/symfony-834643579.html
Maybe also in other countries, I don't know.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well the question is if the enforcement team is not just a bunch of individuals. they will not be employed by Symfony/Sensio for working on the enforcement team. now of course someone from the enforcement team could be allowed by their employer to do this on work time. but IANAL .. but I would suspect the jurisdiction is going to be fuzzy and its going to be likely a question of where a case is filed, similar to anything else that is happening on the internet when individuals communicate.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to double check this, because every action has (potential) legal consequences and we need to clarify everything. My guess is that team member actions fall under each person legal residence jurisdiction and abstract team actions under France jurisdiction.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@javiereguiluz I don't think so. If there is no legal entity to represent, each member would probably be responsible for their own actions, and considered partly responsible (and likely culpable) for "abstract team actions", under their own separate jurisdictions.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bullet is removed.

@lsmith77
Copy link
Contributor

@Nyholm I think it might make sense to specify the "Our Pledge" of the enforcement team. As stated above, I think they are "#1 creating a safe environment by protecting people within the community #2 helping to educate the community" .. and in that order. We have something similar in the CoC proposal https://github.com/symfony/symfony/pull/24896/files#diff-510d358f0b955588b8abd91113ae6858R3

This might make it clearer under which situations which of the possible courses of action will be taken.

@javiereguiluz
Copy link
Member

javiereguiluz commented Feb 26, 2018

Given that Slack messages are quickly lost, and in case it's useful for this discussion, I'm pasting here some public Slack messages of users concerned about being banned for saying the wrong words:

UPDATE: I've deleted the screenshots because a person included in them asked it.

@javiereguiluz
Copy link
Member

javiereguiluz commented Feb 26, 2018

In the Symfony Slack there's a very heated debate about cursing and the use of certain strong words. So maybe the CoC could clarify the position of Symfony over cursing. E.g. using words like "fuck" in GitHub comments, conference talks, Slack channels, etc.

from the reporter on the appropriateness of our response, but our response will be
determined by what will be best for community safety.

The enforcement team keeps a private record of all incidents. By default all reports
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any GDPR considerations for this? If this private record contains personally identifiable information, any processing would require consent from the people involved.

Copy link
Member

@javiereguiluz javiereguiluz Feb 27, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should really ask to some big open source project based in Europe which already has all this set up. I mean, we're not doing anything special, new or different. This CoC thing must be a "solved problem" in lots of other places. So let's copy them and move on 😄

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is fine according to GDPR. I'll claim it is for a common interest where the community's interest is larger then the individual's. This information is not classed as "extra sensitive" so we are fine.
Im also happy to let anybody challenge me in court over this.

I think Javier's suggestion is good, we will look what others have done and move on.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, no, we're not doing anything new, but the GDPR is new, so it's not unlikely that other projects might not have updated their CoCs to reflect this.

@Nyholm Are you sure about that? I presume you're referring to the grounds in 6.1f? From what I've read I'm not sure about that being applicable.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On this topic, I hade a discussion with a co-worker of mine, who (while not a lawyer) is working with making their (large) business GDPR compliant. His best guess is that as long as everyone involved has actively accepted the Code of Conduct, that would be a legal basis for processing this data. That however would mean that we'd have to have some mechanism of enforcing that acceptance in order to participate in the project.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without more information, in my opinion that would be a big NO. Adding mandatory acceptance clauses in GitHub repos (as some companies do) creates a big friction and it feels very unwelcoming.

This could be solved as follows: in the web form used to report incidents, you add a big checkbox that the reporter must accept explicitly and that reads like this: "We'll preserve your full anonimity ... blah blah ... but you let us store the details of this report ... blah blah ... we'll comply with the GDPR regulation ..."

Copy link
Contributor

@magnusnordlander magnusnordlander Mar 9, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue isn't so much storing information about the reporter, but rather the storing of information about the alleged infractor. While the reporter is likely to consent to storing data (if asked), the alleged infractor is not.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see. This is more complex than it looks :(

@javiereguiluz
Copy link
Member

Another question: is there a standard process to appeal decisions? If you report something as offensive but the enforcement team doesn't considers offensive, can you ask for a reconsideration? can you appeal the decision somehow or are all decisions final?

================

The role of the enforcement team is to make sure the :doc:`Code of Conduct </contributing/code_of_conduct/index>`
is respected. If you think there is or has been a violation to the code of conduct
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure about the grammar, but in many cases, it's capitalized Code of Conduct?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks

You will receive a reply from the :doc:`enforcement team </contributing/code_of_conduct/enforcement_team>`
acknowledging receipt as soon as possible, but within 24 hours.

The team will immediately meet to review the incident and determine:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This means, that the incident will (has to?) be reviewed by more than one person?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we need to clarify this topic .. basically in general yes all enforcement team members will review each case .. unless someone has recused themselves .. or the reporter specifically asks for an enforcement team member to not be included and the enforcement team agrees.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had the same question while reading the doc. You contact one person but the whole team has access to the case.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah lets clarify this section. basically the idea is that one can contact all or individual people from the enforcement team. if individual people are contacted they will first figure out if there are reasons not to involve the others together with the reporter and enforcement team members can recuse themselves.

now in case a reporter doesn't want a particular enforcement team member involved then generally this should be respected although maybe with some effort the trust could be build.

@egircys egircys mentioned this pull request Mar 5, 2018
4 tasks
@lsmith77
Copy link
Contributor

lsmith77 commented Mar 6, 2018

FYI send a small PR with a pledge which clarifies the priorities of the enforcement team:
Nyholm#2

However I was unsure if this should be in the process or on the team page

@javiereguiluz javiereguiluz added the diversity & inclusion Related to Symfony Diversity Initiative https://github.com/symfony/diversity label Mar 7, 2018
@lsmith77
Copy link
Contributor

So among the more intensively discussed topics were the public reprimand and contacting the employer. I had some more discussions and my proposal would be to remove these points but add to that section that other types of actions may be taken in consultation with the core team.

that being said, we might also need a process for such consultations. to give a practical example, one reason for a public reprimand may be that the topic is already public and there is an expectation for Symfony to make a statement what our stance is. For example lets say we have a similar case as https://en.wikipedia.org/wiki/Jacob_Appelbaum#Allegations_of_sexual_misconduct in our community. In such a scenario it would be important for the health of the community to have a process that in a timely manner enables a public response, which may include a reprimand.

* An imposed vacation (i.e. asking someone to "take a week off" from a mailing
list or Slack).
* A permanent or temporary ban from some or all Symfony conference/community
spaces (events, meetings, mailing lists, IRC, Slack, etc.)
* A request to engage in mediation and/or an accountability plan.
* On a case by case basis, the enforcement team might share information an incidents
with employers or other 3rd parties in order to fulfill their mandate.
* On a case by case basis, other actions may be possible but will usually be
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...but will usually be coordinated... -> ...but will always be coordinated... ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we said “usually” because we expect for extreme cases for there to be coordination but for trivial cases that might require a different response it might not make sense. But I if this is too much uncertainity to be acceptable, then I would be ok with making it “always”.


The :doc:`Symfony core team </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consists of at least
be 3 persons. The team should be representing as many demographics as possible,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems really restricted.

I mean the person !== the company, if the company is in a private partnership with Sensiolabs, people from that company can not be part of the team ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the wording is "ideally" .. generally the idea is to ensure that business interest with not cloud behavior .. even if just subconsciously .. remember incidents can involved people from any company

About the Enforcement Team
--------------------------

The :doc:`Symfony core team </contributing/code/core_team>` appoints enforcement
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we read what happens after, it seems tricky that's the core team's duty to select the enforcement team since alot of the core team is part / working with sensiolabs.

* Names (legal, nicknames, or pseudonyms) of any individuals involved.
* If there were other witnesses besides you, please try to include them as well.
* When and where the incident occurred. Please be as specific as possible.
* Your account of what occurred.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence feels strange as a foreign english speaker, is account here meaning point of view?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as account is being used here it means a report or description of an event or experience.

but if its confusing maybe lets replace account with description ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

description is probably good as well.

conflict, we will prioritize safety of community members over all other goals.

If you think there is or has been a violation to the code of conduct please contact
enforcement team or of you prefer contact only individual members of the enforcement team.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small typo: if

-------

Here are all the members of the Code of Conduct enforcement team. You can contact
any of them by sending an email or tweet. You could also contact all of them at once
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not recommend sending a tweet (even a DM means that one follow the other).

Copy link
Member

@dunglas dunglas Apr 16, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe should we provide a GPG key, to allow the reporter to encrypt his message and be sure that only the Symfony team will get it (for instance, homosexuality is forbidden in some countries).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good idea!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the low barrier to contact someone. I also like the idea of a GPG key. But IMHO that seams overkill and I guess that none will ever use it. But I still think we should have one. I suggest we add that after the initial PR to this page.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah GPG keys can be added by enforcement team members as part of their contact details.

--------------------------

The :doc:`Symfony core team </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consists of at least
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: consist


The :doc:`Symfony core team </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consists of at least
be 3 persons. The team should be representing as many demographics as possible,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

be should be removed.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but then it should be represent and not representing

team with candidates they see fit. The enforcement team will consists of at least
be 3 persons. The team should be representing as many demographics as possible,
ideally from different employers and not in a private partnership with Symfony
and/or SensioLabs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand why we should have a specific case for Symfony/SensioLabs.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agreed ... I think something went wrong there any way during some "refactoring"

how about:
The team should be representing as many demographics as possible, ideally from different employers and not in a private partnership

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know what are the long-term plans for Symfony (the project), but unlike the Apache project or Debian, it is managed by Symfony (the company) and SensioLabs.
I don't understand very well why the enforcement team (or any other team) should be independent of the owner of the project.

I've also the same feeling regarding the nomination of the enforcement team: all existing teams are appointed by the project leader (according to https://symfony.com/doc/current/contributing/code/core_team.html). Currently, it is Fabien.
The enforcement team will be appointed by the core team. Why not, but why not by the project leader directly, or by the members of all teams (core, docs, security)? I'm not against it, but it is a bit confusing.

Also, what about the final decision? Will the edit/kick/ban/etc be only proposed by the enforcement team and the final decision will still be up to Fabien (or any other group/team(s)/...), or will the enforcement team be able to enforce its decisions by itself?

IMO it would be easier to keep the original wording of Contributor Covenant:

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [abuse@symfony.com]. [...] All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. [...]
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.

Concretely, for Symfony it means:

  • People report to the enforcement team (an abuse mail managed by a few trained members of the Symfony project "the enforcement team"?)
  • The enforcement team propose an action (or to do nothing) to Fabien (or to the maintainer team?), it's up to Fabien (or to the maintainer team?) to decide
  • If there is a problem involving a Symfony maintainer, it's up to Fabien to decide.

Just my 2 cents, having a CoC will already be a big step forward.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in Drupal Dries afaik does appoint the enforcement team. imho it would be better to stread this decision a bit wider, but it of course makes things simpler.

that being said, giving Fabien, or the maintainer team, the final say on all enforcement is imho not a good idea. getting enforcement right requires investing the necessary time not only in each specific case but also in educating yourself on the topic, attending relevant trainings etc.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm willing to appoint the enforcement team. I'm not willing to be the one who has the final say. The enforcement team should have all the power regarding the process.

* When and where the incident occurred. Please be as specific as possible.
* Your account of what occurred.
* If there is a publicly available record (e.g. a mailing list archive or a
public IRC or Slack log), please include a link.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend a link + a screenhost or a local archive (HTML page), just in case the contents are tampered with afterwards, edited or even removed.

You will receive a reply from the :doc:`enforcement team </contributing/code_of_conduct/enforcement_team>`
acknowledging receipt as soon as possible, but within 24 hours.

The team will immediately meet to review the incident and determine:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had the same question while reading the doc. You contact one person but the whole team has access to the case.

spaces (events, meetings, mailing lists, IRC, Slack, etc.)
* A request to engage in mediation and/or an accountability plan.
* On a case by case basis, other actions may be possible but will usually be
coordinated with the core-team.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coordination should probably also include potential third-parties (like Symfony when something happened during an official event).

We'll respond within one week to the person who filed the report with either a
resolution or an explanation of why the situation is not yet resolved.

Once we've determined our final action, we'll contact the original reporter to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actions?


Adopted by `Symfony`_ organizers on 21 February 2018.


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

double white-line

@Nyholm
Copy link
Member Author

Nyholm commented Apr 19, 2018

Thank you for the reviews. I've updated the PR accordingly.

--------------------------

The :doc:`Symfony project leader </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consist of at least
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I choose to use the singular "they" here.

The :doc:`Symfony core team </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consists of at least
The :doc:`Symfony project leader </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consist of at least
be 3 persons. The team should be representing as many demographics as possible,
Copy link
Contributor

@lsmith77 lsmith77 Apr 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The enforcement team will consist of at least 3 persons.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you

@@ -36,7 +36,8 @@ What happens after you file a report?
You will receive a reply from the :doc:`enforcement team </contributing/code_of_conduct/enforcement_team>`
acknowledging receipt as soon as possible, but within 24 hours.

The team will immediately meet to review the incident and determine:
The team member receiving the report will immediately contact all or some other
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extra space

Copy link
Member

@egircys egircys left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯

by emailing **coc@symfony.com**.

Lukas Kahwe Smith
`````````````````
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor details: we use ~~~~~~~~~~~~~~ for the third level heading in Symfony Docs.


The :doc:`Symfony project leader </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consist of at least
3 persons. The team should be representing as many demographics as possible,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it OK to use 3 persons instead of 3 people ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It already says "3 persons". Do you want it to say "3 people"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes ... but I'm wondering if 3 people is more correct. That's what I'd do ... but I'm not native.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've changed to "3 people". I'll let a native speaker ask for a change if needed.

The :doc:`Symfony project leader </contributing/code/core_team>` appoints enforcement
team with candidates they see fit. The enforcement team will consist of at least
3 persons. The team should be representing as many demographics as possible,
ideally from different employers and not in a private partnership.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what this means -> and not in a private partnership


If you believe someone is violating the Code of Conduct we ask that you report
it to the :doc:`enforcement team </contributing/code_of_conduct/enforcement_team>`
by emailing, twitter, in person or any way you see fit.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

twitter -> Twitter

* Your description of what occurred.
* If there is a publicly available record (e.g. a mailing list archive or a
public IRC or Slack log), please include a link and a screenshot.
* Any extra context you believe existed for the incident.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This -> * Any extra context you believe existed for the incident. and this -> * Any other information you believe we should have. look almost the same. I'd leave only the last one. This doc should be actionable and easy to understand because a person in a distress emotional state may have to read it.

spaces (events, meetings, mailing lists, IRC, Slack, etc.)
* A request to engage in mediation and/or an accountability plan.
* On a case by case basis, other actions may be possible but will usually be
coordinated with the core team and Symfony.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... will usually be coordinated with the core team and Symfony -> what does "Symfony" mean in this context? The company behind Symfony?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I was referring to the Symfony (company)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then, let's please reword as: coordinated with the core team and the Symfony company.

| **Email:** smith@pooteeweet.org
| **Twitter:** @lsmith

About the Enforcement Team
Copy link
Member

@javiereguiluz javiereguiluz Apr 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A final question: the Symfony leader appoints Enforcement Team members ... but for how long? Do these appointments expire? Do they have to be renovated every year, every two years? If an appointment expire, can the same person be appointed? If yes, Unlimited times? Consecutive times?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like the project leader to decide. Same as with other teams.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it makes sense to now and then change the composition but changing the composition comes with a lot of complexity, especially with handling access to older reports. so imho I would for now lean towards simply making it indefinite (just like for the core team). I assume through change of focus and time available from enforcement team members, there will be some fluctuation anyway. and of course if there are concerns, Fabien can do it whenever he thinks its important.

team with candidates they see fit. The enforcement team will consist of at least
3 persons. The team should be representing as many demographics as possible,
ideally from different employers and from employers without in close partnerships
with each other.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@javiereguiluz I tried to clarify this sentence. Does it make sense?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd say it's harder to understand now :( Is this detail really necessary? We say "different demographics" earlier without detailing anything ... maybe saying "different employers" here is enough?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:/

You are probably correct. Thank you. =)

fabpot added a commit that referenced this pull request Apr 30, 2018
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
@fabpot
Copy link
Member

fabpot commented Apr 30, 2018

I need to merge this PR (right now the docs are broken in 2.7). Can we remove the placeholder text and keep the list of members empty for now?

===============

This page will have our code of conduct. At the moment it is a place holder for
https://github.com/symfony/symfony/pull/24896
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be replaced/changed/removed now that the code of conduct has been merged.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rebasing this PR on 2.7 would help I think.

javiereguiluz added a commit that referenced this pull request May 2, 2018
…guiluz)

This PR was squashed before being merged into the 2.7 branch (closes #9721).

Discussion
----------

Fix build creating placeholders for missing docs

We must remove these references until #9340 is merged.

Commits
-------

362210e Fix build creating placeholders for missing docs
@lsmith77
Copy link
Contributor

lsmith77 commented May 3, 2018

emptied the team list Nyholm#3

@lsmith77
Copy link
Contributor

lsmith77 commented May 3, 2018

and yeah .. the PR needs to be pointed at the 2.7 branch and rebased accordingly.

@Nyholm
Copy link
Member Author

Nyholm commented May 4, 2018

Thank you for the reviews and the fixes.

@Nyholm Nyholm changed the base branch from master to 2.7 May 4, 2018 08:29
@Nyholm Nyholm force-pushed the reporting-guidelines branch from ba6572b to 2dbe26a Compare May 4, 2018 08:50
@Nyholm
Copy link
Member Author

Nyholm commented May 4, 2018

Finally! Squashed commits and rebased to 2.7

@fabpot
Copy link
Member

fabpot commented May 5, 2018

Thank you @Nyholm.

@fabpot fabpot merged commit 2dbe26a into symfony:2.7 May 5, 2018
fabpot added a commit that referenced this pull request May 5, 2018
…onduct (Nyholm)

This PR was merged into the 2.7 branch.

Discussion
----------

Adding guidelines for reporting violations of code of conduct

We need some guidelines on how to report a violation of the code of conduct. These are adapted from [Stumptown Syndicate](http://stumptownsyndicate.org/code-of-conduct/reporting-guidelines/) and the [Django Software Foundation](https://www.djangoproject.com/conduct/reporting/).

FYI @lsmith77

This is related to symfony/diversity#2

## TODO

- [ ] Add the enforcement team instead of the placeholders
- [ ] Add the code of conduct instead of the place holder

Commits
-------

2dbe26a Adding guidelines for reporting violations of code of conduct
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
diversity & inclusion Related to Symfony Diversity Initiative https://github.com/symfony/diversity Status: Needs Review
Projects
None yet
Development

Successfully merging this pull request may close these issues.