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

Chandler Carruth via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 14 13:36:00 PDT 2015

Greetings all,

First off, thanks to everyone who contributed to the initial discussion
thread. Judging by the responses from that thread, there seems to pretty
broad interest in pursuing this. There also seem to be a few concerns. =]
I'm including an updated draft based on the feedback, and I'll also try to
break down the major points I've seen of discussion. Sorry for the long
email, but I suspect it is much shorter than trying to read through the
entire thread.

High level points about a code of conduct in general:

- Is this trying to change how the community behaves? I think the
resounding answer is no, this is very much meant to formalize the existing
extremely polite and respectful behavior that the LLVM community has had
for many years.

- Was this proposed in response to some particular event or problem? No.
There has been mounting pressure throughout the industry and even within
our community to take a step like this. There is a particular desire by
many to have a code of conduct governing the developer's meeting.

- Is this necessary? Has this ever come up in the community? Many people
have expressed the view that some form of code of conduct is important
and/or necessary. Chris has pointed out that there have been incidents that
necessitated the degree of response outlined in this at least once in the
past, but it was *many* years ago.

- Why is this important? There is a tremendous amount of information online
about why having these types of rules makes a huge difference for people
who may feel unsafe in our community or conference. These range from
advocacy from groups like the Ada Initiative[1] to powerful accounts of how
these issues and related issues can negatively impact individuals in
communities[2][3]. These may not apply to you personally, but they do apply
to both current and potential future members of our community.

[1]: http://adainitiative.org/
[3]: http://sarah.thesharps.us/2015/10/06/what-makes-a-good-community/

More specific points about the proposed wording:

- Why enumerate specifics in the code of conduct? While some people do not
need any specific examples, others benefit significantly from them. In
minor cases, these examples can serve as reminders for well intending
members of the community. But to understand the major reasons, consider
someone who is seriously concerned about whether they will be safe and
respected in the community. These people do exist, both already in our
community and as potential newcomers (see the links above). You may not be
one of them, but try to empathize. These people can look to a list of
explicitly called out unacceptable behavior, find many of their concerns
already addressed, and learn that they will indeed be safe and welcome. For
groups and behaviors where this is a long standing and widespread problem
*for them*, this can be the difference between joining a community and not
joining. To read more details about this, I continue to refer to this
article from the Ada Initiative:

- Why use this specific wording? What about something much less verbose?
Some of this is really the previous point in another form. However, there
are reasons why I think this wording is a really good choice for the
community even compared to other wording options. One, I have seen few that
are meaningfully less verbose and still address the specifics. Two, this
wording is *really* widely used. While I looked to and cited the Django
Project, they are not alone. Here are some of the places using roughly the
same core wording:


That includes the Apache Foundation, Twitter, and Facebook among others.
Several of these are based upon the template created by the
http://todogroup.com/ organization which is extremely similar, but a bit
longer than what is proposed here. So I believe that the core body of the
wording has a really strong position in the larger industry and open source

Naturally, the surrounding wording that gives the important context
relevant for the *LLVM* community is and needs to be customized. But I have
seen very few concerns about these parts of the text.

- Do we need the degree of specificity with the "reporting guide"? See the
discussion about specificity in general -- much of the same applies. Part
of what the code of conduct needs to do to effectively make people feel
safe is to advertise that we *will* actually act on issues when they come
up. Again, this is nothing new to the community; we have asked people to
correct their behavior before, and as Chris has pointed out even removed
them from the community's forums in extreme cases.

Issues around the specific people and process surrounding the advisory
committee: We frankly don't have this sorted out yet. Clearly, we need to
sort it out before this can be fully effective. I think we can make
progress on converging on the code of conduct and the reporting guide, and
then iterate on what the advisory committee looks like.

I am sure I have missed some points in all of this, and for that I'm sorry.
However, I am intentionally not going to engage in some of the very off
topic discussions. For example, there was some excellent discussion about
the Foundation itself. That feedback was I think well received and will be
acted upon. I would expect updates and further discussion there in separate
threads though.

I've also sent out a patch which would add these documents to the tree, but
with them clearly marked as *drafts*: http://reviews.llvm.org/D13741 This
is based on the excellent suggestion by Philip. Please only make editorial
and structural comments there, we should keep the vast majority of the
content discussion here. To that end, the drafts are copied inline at the


LLVM Community Code of Conduct

.. note::

   This document is currently a **DRAFT** document while it is being
   by the community.

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
rules that we ask people to adhere to.

This isn’t an exhaustive list of things that you can’t do. Rather, take it
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
LLVM Foundation. This includes IRC channels, mailing lists, bug trackers,
events such as the developer meetings and socials, and any other forums
by the project that the community uses for communication. It applies to all
your communication and conduct in these spaces, including emails, chats,
you say, slides, videos, posters, signs, or even t-shirts you display in
spaces. In addition, violations of this code outside these spaces may affect
a person's ability to participate within them.

If you believe someone is violating the code of conduct, we ask that you
it by emailing conduct at llvm.org. For more details please see our
:doc:`Reporting Guide <ReportingGuide>`.

* **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
  to members of any race, ethnicity, culture, national origin, colour,
  immigration status, social and economic class, educational level, sex,
  orientation, gender identity and expression, age, size, family status,
  political belief, religion or lack thereof, and mental and physical

* **Be considerate.** Your work will be used by other people, and you in
  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.

* **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
  a personal attack. It’s important to remember that a community where
  feel uncomfortable or threatened is not a productive one. Members of the
  community should be respectful when dealing with other members as well as
  with people outside the LLVM community.

* **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
  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.

* **When we disagree, try to understand why.** Disagreements, both social
  technical, happen all the time and LLVM is no exception. It is important
  we resolve disagreements and differing views constructively. Remember that
  we’re different. The strength of LLVM comes from its varied community,
  from a wide range of backgrounds. 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
  to resolve issues and learning from mistakes.


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

(This text is based on the `Django Project`_ Code of Conduct, which is in
based on wording from the `Speak Up! project`_.)

.. _Django Project: https://www.djangoproject.com/conduct/
.. _Speak Up! project: http://speakup.io/coc.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151014/5b0b6d25/attachment.html>

More information about the llvm-dev mailing list