[llvm-dev] RFC: Introducing an LLVM Community Code of Conduct

Joachim Durchholz via llvm-dev
2015-10-13T08:06:30Z

Writing all this more or less from the sidelines, but I have seen the
interaction in various communities, some working well, others not so well.
Take it for what it's worth.

Am 13.10.2015 um 03:42 schrieb Chandler Carruth via
llvm-dev:
> On behalf of the board of the LLVM Foundation, I’d like to start the
> process of introducing a formal code of conduct for the community.
>
> For a long time, various members of the community have been enforcing basic
> reasonable and respectful behavior, but to an outsider this may not be
> obvious. A public code of conduct advertises the behavior we expect of
> community members and clarifies our stance.  Having this is something the
> board feels very strongly about and we know many others in the community do
> as well.

I agree with that.

 > We also think it is important that we establish this prior to
the
> upcoming developer meeting.

16 days for laying that kind of groundwork is a bit rushed.

> [...] the Django Project’s code of conduct  [...]
>
> Some important considerations:
> - It covers all of the different ways our community has of interacting, not
> just a mailing list or the conference.
> - It makes very clear the kinds of conduct that are unacceptable, which in
> research has proven to be very important for such codes of conduct to be
> effective in practice.

What research? Is it published?

Also, the problem with enumerating all the inacceptable behaviour is
that the text tends to become TL;DR. Which means permanent discomfort: I
never fully read the rules, so I'm never fully sure that I'm not
violating the CoC, nor am I sure whether others violate it.

In terms of size and complexity, the proposed CoC is shorter than the
typical bulletin board CoC, so it's not bad; however, it think it could
be made more compact.

> - It has specific instructions for reporting violations

Good.

 > and gives those who
> report issues reasonable expectations for what the response will be.
Again,
> in my research this has been identified as being a very important aspect to
> making a code of conduct effective in practice.

I believe that such a code is more relevant to the decisionmakers than
to the community members. Community members look at what behaviour is
being sanctioned in what ways, not so much at the code.
I think the code should describe that. Along the lines of "please be
decent, we will sanction people, look below for the guidelines that the
advisory committee is applying".
It may be a good idea to publish decisions and the reasoning. There are
reasons against doing so, but I think it's the only way that people will
be able to form reasonable expectations.

> - It does not try to be pedantic or have an overly complex set of rules.

Very much agreed!

> We think that this strikes a good balance and would like to propose the
> following document for the LLVM project. Once all the comments are
> addressed, we plan to add it to the LLVM documentation and link to it from
> relevant places. The “Reporting Guidelines” will be a separate (linked)
> document for folks to reference if needed. We will also start the process
> of forming and organizing an advisory committee to handle these kinds of
> issues.

Looks like a good plan.

> # LLVM Community Code of Conduct #
> We want to ensure that the LLVM community, while large and diverse, remains
> welcoming and respectful to all participants. To that end, we have a few
> ground rules that we ask people to adhere to.
>
> This isn’t an exhaustive list of things that you can’t do. Rather, take it
> in the spirit in which it’s intended - a guide to make it easier to
> communicate and participate in the community.
>
> This code of conduct applies to all spaces managed by the LLVM project or
> The LLVM Foundation. This includes IRC channels, mailing lists, bug
> trackers, LLVM events such as the developer meetings and socials, and any
> other forums created by the project that the community uses for
> communication. It applies to all of your communication and conduct in these
> spaces, including emails, chats, things you say, slides, videos, posters,
> signs, or even t-shirts you display in these spaces.

Too much text. The only person to really read this the one looking for
loopholes.

 > In addition,
 > violations of this code outside these spaces may affect a person's
 > ability to participate within them.

This is vague and threatening.
"Behave or we may sanction you in some unspecified manner."

Up to this point, the text is trying to cover too many bases and

> If you believe someone is violating the code of conduct, we ask that you
> report it by emailing conduct at llvm.org. For more details please see our
> Reporting Guidelines.

Good.

> - *Be friendly and patient.*
>
> - *Be welcoming.* We strive to be a community that welcomes and supports
> people of all backgrounds and identities. This includes, but is not limited
> to members of any race, ethnicity, culture, national origin, colour,
> immigration status, social and economic class, educational level, sex,
> sexual orientation, gender identity and expression, age, size, family
> status, political belief, religion, and mental and physical ability.

Leave the last sentence out. It's already covered by the "do not attack
people in person" guide below, so it's just increasing the overall text
size.

> - *Be considerate.* Your work will be used by other people, and you in turn
> will depend on the work of others. Any decision you take will affect users
> and colleagues, and you should take those consequences into account when
> making decisions. Remember that we're a world-wide community, so you
might
> not be communicating in someone else's primary language.

Try to cut that down a bit.

> - *Be respectful.* Not all of us will agree all the time, but disagreement
> is no excuse for poor behavior and poor manners. We might all experience
> some frustration now and then, but we cannot allow that frustration to turn
> into a personal attack. It’s important to remember that a community where
> people feel uncomfortable or threatened is not a productive one. Members of
> the LLVM community should be respectful when dealing with other members as
> well as with people outside the LLVM community.

The commentary should be slashed to 40-50%.

> - *Be careful in the words that you choose.* We are a community of
> professionals, and we conduct ourselves professionally. Be kind to others.
> Do not insult or put down other participants. Harassment and other
> exclusionary behavior aren't acceptable. This includes, but is not
limited
> to:
>    - Violent threats or language directed against another person.
>    - Discriminatory jokes and language.
>    - Posting sexually explicit or violent material.
>    - Posting (or threatening to post) other people's personally
identifying
> information ("doxing").
>    - Personal insults, especially those using racist or sexist terms.
>    - Unwelcome sexual attention.
>    - Advocating for, or encouraging, any of the above behavior.
>    - Repeated harassment of others. In general, if someone asks you to
stop,
> then stop.

This paragraph could be shortened to something along the lines of "never
talk about anything except what's happening *inside* the community; and
never, never, never attack people in person".

> - *When we disagree, try to understand why.* Disagreements, both social and
> technical, happen all the time and LLVM is no exception. It is important
> that we resolve disagreements and differing views constructively.

Agreed.

 > Remember
> that we’re different. The strength of LLVM comes from its varied community,
> people from a wide range of backgrounds.

Reword that as a promise of future improvement, rather than a statement
of facts (about which people could disagree).
E.g. "the more diverse the views present in a community, the more angles
it has to attack a specific problem; in this way, diversity builds
community strength".

 > Different people have different
> perspectives on issues. Being unable to understand why someone holds a
> viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to
> err and blaming each other doesn’t get us anywhere. Instead, focus on
> helping to resolve issues and learning from mistakes.

True and important to mention; I'm not sure whether it belongs here.
Maybe there should be a separate "tips & tricks for successful
in-community interaction" section, because this isn't actually code of
conduct.

> ## Questions? ##
> If you have questions, please see feel free to contact the LLVM Foundation
> Code of Conduct Advisory Committee by emailing conduct at llvm.org.

Good.

> # Reporting Guide #
> If you believe someone is violating the code of conduct we ask that you
> report it to the LLVM Foundation by emailing conduct at llvm.org. *All
reports
> will be kept confidential.* In some cases we may determine that a public
> statement will need to be made. If that's the case, the identities of
all
> victims and reporters will remain confidential unless those individuals
> instruct us otherwise.
>
> If you believe anyone is in physical danger, please notify appropriate law
> enforcement first. If you are unsure what law enforcement agency is
> appropriate, please include this in your report and we will attempt to
> notify them.
>
> If the violation occurs at an event such as a Developer Meeting, you can
> also reach out to any of the event organizers or staff to report it. If you
> cannot find one of the organizers, the hotel staff can locate one for you.
> We will also post detailed contact information for specific events as part
> of each events’ information. Event organizers and staff will be prepared to
> handle the incident and able to help. Your report will still be kept
> confidential exactly as above, but also feel free to (anonymously if
> needed) email conduct at llvm.org if needed.
>
> In your report please include:
> - Your contact info (so we can get in touch with you if we need to follow
> up)
> - Names (real, 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. If there is a publicly available record
> (e.g. a mailing list archive or a public IRC logger) please include a link.
> - Any extra context you believe existed for the incident.
> - If you believe this incident is ongoing.
> - Any other information you believe we should have.
>
> ## What happens after you file a report? ##
> You will receive an email from the LLVM Foundation Code of Conduct Advisory
> Committee acknowledging receipt within 24 hours (and will aim for much
> quicker than that).

Typo: "and *we* will aim for much quicker than that"

> The Advisory Committee will immediately meet to review the incident and
> determine:
> - What happened.
> - Whether this event constitutes a code of conduct violation.
> - Who the bad actor was.
> - Whether this is an ongoing situation, or if there is a threat to
anyone's
> physical safety.
> - If this is determined to be an ongoing incident or a threat to physical
> safety, the committee's immediate priority will be to protect everyone
> involved. This means we may delay an "official" response until we
believe
> that the situation has ended and that everyone is physically safe.
>
> Once the working group has a complete account of the events they will make
> a decision as to how to respond. Responses may include:
> - A private reprimand from the working group to the individual(s) involved.
> - A public reprimand.
> - An imposed vacation (i.e. asking someone to "take a week off"
from a
> mailing list or IRC).
> - A permanent or temporary ban from some or all LLVM spaces (mailing lists,
> IRC, etc.)
> - A request for a public or private apology.
> - Nothing (if we determine no violation occurred).
>
> If not resolved within one week, we'll respond within one week to the
> original reporter with an explanation of why the situation is not yet
> resolved.
>
> Once we've determined our final action, we'll contact the original
reporter
> to let them know what action (if any) we'll be taking. We'll take
into
> account feedback from the reporter on the appropriateness of our response,
> but we don't guarantee we'll act on it.
>
> Finally, the Advisory Committee will make a report on the situation to the
> LLVM Foundation board. The board may choose to make a public statement
> about the incident.
>
> ## Appealing ##
> Only permanent resolutions (such as bans) may be appealed. To appeal a
> decision of the working group, contact the LLVM Foundation Board at
> board at llvm.org with your appeal and the board will review the case.

Just for the record: I'm not sure whether that's a good ruling.

One thing I'm missing is some way to evaluate the committee's work.
I'm not sure if that is feasible. I just believe that a dysfunctional,
erratic or just incomprehensible-to-outsiders committee can be worse
than having no committee at all.

Just my 5 cents, do with that as you wish :-)

Regards,
Jo