A few days ago Symfony adopted a code of conduct and a process for enforcing it. While this was a major effort of the diversity initiative which took several months to complete, it should not change how we interact. The fundamental rules of how we treat each other already have now simply been written down. More importantly we have thought about how to deal with incidents in case someone thinks these rules have not been followed. So while nothing changes for the bulk of our community, we hope that in the edge cases where people don’t treat each other well, we can now give them a clear communication path to getting the situation resolved.
What is a Code of Conduct?
Contributed by
Egidijus Girčys
in #9394.
"A code of conduct is a set of rules outlining the social norms and rules and responsibilities of, or proper practices for, an individual, party or organization." (quoted from). A code of conduct includes a statement of unacceptable behavior, how it is enforced and to whom an incident should be reported to (see also). It is not meant to be used to police people but mainly for:
- Making it clear that our space is safe for anyone;
- Helping anyone who experiences intimidation or harassment to feel safer coming forward;
- Encouraging people to feel more comfortable stepping in and taking care of their fellow community members.
For further reading check.
Why is a code of conduct necessary?
Contributed by
Michelle Sanver
in #9393.
In general when people come together good things happen, but sometimes problems occur. Ideally people work out issues on their own, learn from their mistakes and move on. However sometimes this doesn't work. Members part of minority groups are more often the target of misconduct than others. This creates a vicious circle where those smaller demographics become the most likely to leave the community. It is often hard to even realize the gravity of this problem for members not part of a marginalized group. We created a document of cases that have been reported, or experienced by members of PHPWomen to illustrate just how bad things can get. We will continuously update this document with our own experiences, as time passes in case incidents happen. Of course we hope this document won't grow further!
Why this code of conduct?
There are few codes of conduct written in the OSS space. Like Django, Python or Ubuntu. The adapted version of the Contributor Covenant is widely spread in the OSS with a public list of adopters. We felt it has the best balance between being not too vague and specific enough, describing the unacceptable behavior and what steps will be taken in such situations.
How will it affect me?
To put it in other words, the code of conduct defines rules for a respectful communication style that is welcoming to a diverse community. However these rules largely already existed before the formal adoption of this code of conduct. This code of conduct covers all communication on the official Symfony maintained channels, like this blog, the Symfony documentation, the Slack chat and the non-maintained channels like social networks or forums.
To clarify, if a user on Twitter posts through the official Symfony account (e.g. http://twitter.com/symfony), then they should follow the code of conduct. On the other hand, if the same user has a second Twitter account with no official relation to Symfony, then the code of conduct would not apply there.
How will the code of conduct be enforced?
Contributed by
Tobias Nyholm
and Lynn van der Berg
in #9340
and #9750.
The introduced code of conduct is not a bulletproof document that covers all possible cases of misconduct, but it is specific enough to handle the most common issues that might occur. An important part of the code of conduct is enforcement. If a community member encounters an issue of harassment or other unwanted behaviour, they can report it to the CARE team (CoC Active Response Ensurers). Note the CARE team will soon be appointed by Fabien.
The process for reporting and enforcement is detailed here. Once an incident has been reported, the CARE team will then take over from there and handle the case. The guidelines are adapted from Stumptown Syndicate and the Django Software Foundation.
Sponsoring
We intend to organize a training for the CARE team and some of the people involved in running SymfonyLive events, to ensure that they are prepared to handle incident reports in a professional manner. Obviously this sort of thing costs money. There are often ideas coming up that may require additional funds. Any organization interested in sponsoring the diversity initiative, please contact me so that I can maintain a list of potential sponsors for the various initiatives.
Documentation translation
Moving on to another topic, one point of discussion is the fact that our documentation is only available in English. In the past we had French and Italian translations, but they were dropped since it was simply impossible to keep them up to date given the rapid pace on the English documentation. However we have taken steps to make the experience with Google Translate hopefully acceptable. Doctrine has now taken things a step further by offering a dropdown on all documentation pages to get a translation of any given page more easily. It would be interesting to get some feedback from the community on how useful they think this is and if we should do something similar for Symfony.
SymfonyLive going global
So far we have SymfonyLive events mostly in Europe and a few in the US. For next year our goal is to bring SymfonyLive to more continents. We are already fairly far in the discussions for some specific locations on continents that have so far been left behind. That being said, this all depends on local people assisting the experienced event team at Symfony to make this happen. So anyone who is serious about bringing the SymfonyLive format to your country, get in touch with Nicolas.
Great news! Social Justice Warriors in Symfony Crew. End with ugh blacklists, whitelist and other rasist stuff. It's much, much more important than developing world's best framework! All contributors should stop developing features and start to find racist and social unjustice parts of code then remove it pernamently. Thats right direction.
Konrad i hope you simply want to draw thw downsites by a ironic post, isn't it?
Maybe we should develop only and should not care about issues we have in our part of the complete sociery. Mostly the issues are not that obvouis, they appear when thing about the theme. Be sensitive for other's emotions isn't a task for software developers only, but why not starting at the point we are? Starting in your team of your daily work. Start thinking about phrases, that are usual, but hurt others. Start thinking about reasons, why a SymfonyLive is populatet by 99% white man. I mean we can also blame other events or communities, but we can change our own stuff only. Doing so we are blue print for wider parts. So i am really exitet that Lukas started that work. We should give him a hand where ever we can.
This is really unnecessary. If this was meant for Sensiolabs employees then it makes sense.
This feels like a wasted efford, I highly doubt this wil reduce any problems described. The people who go around harassing people aren't the people who will bother reading code of conduct, or even care about it.
I do however think the CARE team is a good idea, the people who are target of harassment at least have a place to go to - that alone could prevent things from excalating. I just hope you're not going to get loaded by minuscule issues.
@Kevin: I think the CoC helps the CARE team, since people cannot claim that there was no way to know what is acceptable and what isn’t.
@Konrad: I acknowledge that you are concerned that there will now be some sort of purge and as a result development of the code will stop due to arrival of Social Justice Warriors .. there is no external entity directing this, so I assume you are labeling for example me as a Social Justice Warrior. The thing is that I have been here for a long time. According to my sensio connect profile 11 years. I have helped write dozens of Bundles and still maintain probably at least a dozen of the most popular Bundles. I have helped shape the bulk of the core code, created the initial code for the Serializer component.
I also provided the bulk of the code that is now Doctrine DBAL and worked a lot on bringing the ORM and especially the ODM’s to their current state.
I was also co-RM of PHP 5.3, launched wiki.php.net, the PHP core RFC process and documented the PHP release process still in use today.
One thing to note here is that during my entire career I managed to achieve what I did by being aware of social issues in the creation of code.
For example my first contribution to Open Source was the merging of PEAR DB (most popular DB abstraction layer at the time) with Metabase (most feature rich DB abstraction layer at the time). The two creators of those layers didn’t get a long, so I was asked to bridge those issues.
Before I created wiki.php.net, I setup a todo list on my personal wiki since I noticed that patches simply were forgotten to be merged and so didn’t make it into releases (there was no github at the time).
When PHP 6 was dropped, we had a “master branch” full of features that were broken or needed to be refactored without UTF support. At the same time there was a constant stream of new features being proposed. I was added as co-RM because dealing with all of this required a willingless and ability to communicate a lot with different contributors to be able to eventually release PHP 5.3. Note that I was the one organizing the meetings that eventually led to PHP 5.3 getting namespace support.
When Konsta forked my MDB code to lay the foundation of Doctrine without ever talking to me, I didn’t get terrirorial. Instead I regocnized what he was building and supported him.
When Nils and Jordi started work on Composer, I used my standing within PHP core and PEAR and the PHP community at large to convince people that this is the right direction. I have done similar things for the adoption of Travis-CI.
Now I am not the sole reason why Composer, Travis-CI, PHP 5.3 etc came about or suceeded. But I would argue that my ability to both understand the code level and the social level at play, helped bring them to where they are today to some degree. And I think I can be rightfully proud of my work over the years. I hope you can agree with that.
As such I ask you to trust this track record, just like Fabien trusted me when he made me diversity initiative lead. I am not here to hurt Symfony, quite the opposite. And my track record does show that I have an ability to deal specifically with the social dimension of open source.
Finally I hope you do agree that thinking about translations and bringing SymfonyLive to more continents is a good thing. So while maybe the CoC and the CARE team might not be something you think you will benefit from, I hope you do acknowledge that the initiative does bring good things. And the same applies to code. Not every new feature of Symfony will make your life easier or better. But it helps grow the community as a whole, from which we all benefit.
@Lukas Thank you for all your great work. I think this CoC and the CARE team both are a great step forward for the community.
For those worried, this isn't about social justice warriors or lashing out. This is just a tool (like any other) to help us all be better developers, better community members, better people.
How I understand CoC page, there will be CARE team with right to delete everything and ban anyone without right to appeal, judging that on their own, even without informing public on decision made (due to keeping complains anonymous).
I'm thought it is very risky idea. Solving conflicts between contributors should be based on strict rules. Justice should be open and public.
Thank you very much to all people involved to get this going. I’m convinced this helps to make the Symfony community a nicer place to contribute.
To those who are sceptic: Writing down some basic rules for desired (and undesired) behavior within a community and having a CARE team (great name btw) as clear goto point for people, does not lead to arbitrary bans or voiding contributions. The goal is to resolve conflicts not to incubate conflict.
Of course we need have trust in the CARE team. I do and I see no reason not to.
Awesome work. I believe it will work ok. Projects that operate in public spaces and where different people can join and interact with one another need to have some ground rules, etiquette and guidelines. Not to mention the positive impact on other projects to at least consider these issues and how to improve them. I'm sure most of people will get along just fine :)
Thank you to everyone involved in the efforts of this initiative. I appreciate the clarity these documents provide and the increased approachability the CARE team offers to anyone harmed in our community.
Makes a lot of sense.
The community just got more unwelcoming, basically forcing everyone to conform to a specific leftist western viewpoint of reality.
And thats a problem? Identity politics are at the core racist and sexist. Only the individual counts. Start thinking about reasons, why you need to class people based on race and gender.
Cornelius: its only a problem in so much as it doesn’t represent neither society, nor even the already slanted demographics in IT.
Which part of the CoC do you find unwelcoming? Or are you just out of principle against any formal agreement of behavior? In that regard I can assure you that all the norms in the CoC already exist before. What does change is that once we have the CARE team in place, there is finally someone to turn to when there are issues surrounding those norms.
I don't see why the symfony developer community has to represent the demographics of society. What society by the way? French, german, swiss, polish, ukrainian? These all vary strongly. How far are do you want to represent your choice society? Only race and gender? Disability, Age, sexual preferences? food choice? car brand? Policital beliefs? Fashion style? What attributes of a person are so important to you that you want to have them represented accordingly?
All of it and especially the enforcers.
Cornelius: As stated in my initial post, one could argue that its a question of justice to enable everyone to participate. And when I say everyone, I mean everyone. As such the current slanted demographics just serve as a KPI that could indicate that we don’t provide equal opportunity.
But I get that you don’t agree that the question of justice is relevant (correct me if I am wrongly interpreting your statements).
As you might remember from my initial post, I therefore focused on the topic of opportunity for Symfony. Think of it this way, a nice big dance floor, awesome music but just 3 people dancing tends to make for a boring party. We aim for a party where everyone is allowed in AND invited to dance. Of course people can choose to not attend, but as a community we decided to reflect on why people might choose not to attend. The CoC and the CARE team are a step to ensure that the reasons they are not attending do not have something to do that they fear being pushed off the dance floor by aggressive dancers. As such we still allow a lot of freedom but we also say this isn’t an pogo event where people jump into each other for fun, because we know that know all people see this as fun. Similarily its not a tango event either. We do think that everyone can have fun with other dance styles and we now simply have written done which dance styles enable the party to be as big as possible, while still leaving a lot of room for creative dancing. Note those rules existed before but now everybody should know them. We acknowledge that sometimes people trip up or they misunderstand the rules. So the CARE team can help in such situations to clear up any confusion. But the CARE team is also there to protect dancers from unapologetic repeat offenders.
Anyway, I hope you stay around in the community and I hope that eventually you will also see the benefits of what is being done here. Rest assured that in the end the person that most helped build this project, Fabien, remains in full control over the CARE team’s composition if things should get out of hand.
If anyone makes such an outrageous claim they will have to prove it. I fail to see how anyone is beeing discriminated against here.
I just don't agree with your interpretation of justice. Why are you are imposing your world view on me and demonizing me by saying that I don't care about justice? I care deeply about justice.
The dance floor is open, everyone is invited, the music playing is called symfony. Just don't come onto the dance floor and force me to dance your way.
I don't care If my dancing offends you btw, I always danced this way and I'm not going to change it.
Cornelius: I am sorry if it came off as I was saying you don’t care about justice in general. What I meant to say was that you don’t seem to think that “equal opportunity” as inteded to ensure via the CoC is a question of justice that you feel is relevant.
Now one thing should be noted, I am not aware of any behavior on your part in the past that would be problematic. So maybe nobody will ask you to change your behavior at all. Again the purpose of all of this is not to replace some part of our community with another, the goal is to grow the community by retaining the current members and bringing in more people from groups that so far didn’t feel welcome.
I think it's a great initiative, maybe some people will think about what they want to say or write before.