On 01/04/2016 03:06 PM, Anthony Ferrara wrote:
Hey all,

I have created a new RFC for the PHP Project to adopt the Contributor
Covenant as the official Code of Conduct for the project

https://wiki.php.net/rfc/adopt-code-of-conduct

Let me know what you think or if there are any concerns

Thanks

Anthony

Jumping back to the beginning of the thread as the tail of it at this point has veered off onto a rather pathetic pseudo-anarchist rant-tangent...

I've had very mixed feelings about CoCs for a long time. Drupal went through its own rather contentious CoC process a few years back, and I was initially in the No camp. In the end, though, the devil is in the details and I am +1 to a CoC as long as it's a well-written one that doesn't jump to "innocent until proven guilty as soon as anyone thinks they might be offended, then we burn the witch". Such CoCs do exist, and suck, and we should have no part in them.

On the whole, I find the Contributor Covenant a good CoC model although it is imperfect. My main issue, as noted by a few others and expanded on in the RFC, is the confidentiality/anonymity involved. I am a firm believer in the right to face one's accusers. (Yes, that "right" as defined in the US constitution is legally only binding on US legal bodies, and some may argue only the Federal government, but I firmly believe that as a general principle it should apply universally.) That's because the accused person MUST be allowed to present their side/interpretation/perspective, and to do so effectively they need to know what they're even accused of. Redacting the name of the accuser is ineffective, as if enough context is provided for the accused to respond at all it will, by nature, reveal the name of other people involved. If not, then the accused cannot provide any meaningful response.

Not having anonymous complaints is exactly how we avoid (or at least minimize) the "secret cabal/star chamber/people have it in for me" factor.

My other issue is that the RFC focuses on punitive measures rather than corrective measures. The tone here is very important, as we want everything related to a CoC to be cooperation-driven rather than penalty-driven. (That was one of the biggest complaints against the first draft of the DrupalCon CoC a few years back; the second draft, which was adopted, was worded much much better.)

There is lots of prior art here, and I would strongly recommend reaching out to the Drupal Community Working Group or its counterpart with other major OSS projects for advice on how to strike a more positive spin. While the ban-hammer is the obvious tool, it's rarely the best and other approaches are often much more effective in the long run. (The Drupal CWG is responsible for managing and enforcing the Drupal CoC. I'd be more than happy to make introductions for anyone who is interested.)

So on the whole, +1 in concept but needs some work before it's ready.

To some of Stas' points:

1) Part of the point of a CoC is to signal that it's OK for someone to come in. There doesn't have to be a problem, yet, for them to still be valuable. They *could* be interpreted as "we have a problem and here's part of the solution", but could also be "we want to take an affirmative step before a problem happens". Hopefully the latter more than the former...

2) To the claim that "we're all equal now", that's hogwash. :-) PHP Internals may not have a formal structure or hierarchy beyond Release Managers, but because it's a group of more than 2 people there is of course an implicit, informal power structure. The best writeup on that front would be:

http://www.jofreeman.com/joreen/tyranny.htm

(It's talking about the feminist movement of the 60s, but the concept applies to just about every OSS project ever created. And any other volunteer group since forever.)

A specifically named community working group / CoC Response Team / whatever you call it is a way to explicitly separate the addressing of misbehavior issues from that informal power structure, so avoid (or at least minimize) people with more "karma" (informal term here) getting an implicit pass. That sort of implicit tolerance has been very toxic in other communities (c.f. http://blog.randi.io/2015/12/31/the-developer-formerly-known-as-freebsdgirl/ for the most recent sad example). Having a formal process doesn't guarantee it doesn't happen, but it helps reduce it and provides a way to call out when it happens.

Again, having the mechanism in place before it becomes an issue is a way to ensure it stays not an issue.

3) Stas, you claim that such a Response Team and process would be rarely used. I will not comment on its likely workload, however, I would submit that having a process to handle misbehavior that rarely if ever needs to be called upon is perhaps the best ringing endorsement of a community there can be. That is, if we do setup a Response Team or whatever, and they are incredibly bored in the job and never contacted, that's something to be proud of, not upset at wasted time.

(If they're bored because no one trusts them to bring an issue to them in the first place then that's a very big problem but I'm trying to be optimistic here.)

4) Yes, much will depend on who the people on that team are. That's always the case. No process will protect you from incompetent people, and no group of really good people can protect you from a broken process. Additionally, I would note that there is absolutely zero correlation between a person's coding ability and their conflict resolution ability. That is, the people who are best for that role will probably *not* be the top coders, and that's OK, and probably a good thing. Separation of concerns. :-)

--Larry Garfield

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to