RFC: Second draft of an LLVM Community Code of Conduct

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 Initiative1 to powerful accounts of how these issues and related issues can negatively impact individuals in communities2. These may not apply to you personally, but they do apply to both current and potential future members of our 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:
    http://adainitiative.org/2014/02/18/howto-design-a-code-of-conduct-for-your-community/

  • 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:

http://couchdb.apache.org/conduct.html

http://apache.org/foundation/policies/conduct.html

http://opensource.box.com/code-of-conduct/

https://github.com/twitter/code-of-conduct/blob/master/code-of-conduct.md

https://code.facebook.com/pages/876921332402685

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

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

Thanks,
-Chandler

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

This is crucial IMHO as I am very happy with the current community.
Can it be included in the code of conduct itself? It is not clear from
the current wording.

Cheers,
Rafael

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

This is crucial IMHO as I am very happy with the current community.
Can it be included in the code of conduct itself?

I don’t think it makes sense for a document to say directly that it isn’t trying to change anything. Once it exists, there is no change to speak of?

It is not clear from
the current wording.

Hrm, I’m not sure how to make it more clear. I think the best way is to get the wording to align with the general expectations of the community. Do you have specific things that would help there? Here is my best idea:

It already states “We want to ensure that the LLVM community, while large and diverse, remains welcoming and respectful to all participants.” which is trying to get at what you are saying Rafael with the “remains”. But I could imagine rewording it to make this more obvious like so:

“The LLVM community has always worked to be a welcoming and respectful community, and we want to ensure that doesn’t change as we grow larger and more diverse.”

Better word smithing of this would be very welcome!
-Chandler

Personally, I like both the spirit and wording of the proposed change. Philip

Me too. Short, but eloquent.

+1

“The LLVM community has always worked to be a welcoming and respectful community, and we want to ensure that doesn’t change as we grow larger and more diverse.”
Better word smithing of this would be very welcome!

I like it as presented. If we feel it needs to be more clear, something like"The LLVM community has always strived to be welcoming and respectful to everyone; we’d like to ensure it stays this way even as we continue to grow and evolve," may be better. But, I feel that the same message would be conveyed either way.

I don't think it makes sense for a document to say directly that it isn't
trying to change anything. Once it exists, there is no change to speak of?

A large part of our interaction happens online. Saying that it is
codifying current behaviour makes list/log archive archeology a
reasonable way to see what is normal for cases where the document is
not clear.

Hrm, I'm not sure how to make it more clear. I think the best way is to get
the wording to align with the general expectations of the community. Do you
have specific things that would help there? Here is my best idea:

It already states "We want to ensure that the LLVM community, while large
and diverse, remains welcoming and respectful to all participants." which is
trying to get at what you are saying Rafael with the "remains". But I could
imagine rewording it to make this more obvious like so:

"The LLVM community has always worked to be a welcoming and respectful
community, and we want to ensure that doesn't change as we grow larger and
more diverse."

I think this is a good change in wording and pretty much covers one
direction: We want to remain welcoming to people.

The other direction is not so clear and I think it is important too as
we have what looks to me a pretty good balance. I really don't want
people to have to think twice about using nicks like katana or having
alcohol mentioned. I don't think it is feasible to write rules for it
all. Saying that we like the current balance and that it is "case law"
(but circumstances have to be considered) is probably the best that
can be done.

Cheers,
Rafael

I very much like that second draft !

Remember that we’re a world-wide community, so you might not be communicating in someone else’s primary language.

While there, it might be worth stating as well the “someone else” may also be in a different timezone (or just travelling), and a lack of immediate answer/feedback does not necessarily imply lack of thoughtfulness.

Cheers,

Arnaud

Sorry, my mailer is wrapping the text so I can't easily read the text, even less find the differences - a quick scan didn't make them obvious to me, but then that was just a quick scan.

* **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 or lack thereof, and mental and physical
ability.

...

* **Be careful in the words that you choose.** We are a community of
   professionals, and we conduct ourselves professionally. Be kind to
others. Do

What kind of professionals? Professional boxers perhaps? Who do have a habit to get under the skin of the opponent with a insults before the match.

Rarely people in their teens, or early twenties would be considered as professional on any area of expertise. So by claiming that community consist of professionals, aren't you already discriminating against individuals who do not have any professional (what ever it may be) interest on the project?

* **Be careful in the words that you choose.** We are a community of
   professionals, and we conduct ourselves professionally. Be kind to
others. Do

What kind of professionals?

In this context, I interpret "professional" to mean "we take this seriously", not "we make a living off it" nor "we have taken an exam" (neither of which is actually required).

> Professional boxers perhaps?

That's exaggerating the wording, trying to lead it ad absurdum; it's a direct rhethoric attack, so your opponent has to deal with the feeling of being attacked.
Also, it withholds the actual argument, so you're putting your opponent into an unclear situation, which causes stress.

That's a good tactics to derail an opponent, but not a good one to cooperate towards a common goal.

It's not a terribly damaging pattern, but it's one of the patterns that should be avoided. It's "unprofessional" in the sense that it distracts from the professional pursuit of building and improving one of the best compiler backends around.
Not that it's terribly damaging or anything, I'm certainly not telling off anybody for that! Only if they make a habit out of using it, that is.

Regards,
Jo

From: llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org] On Behalf Of
Joachim Durchholz via llvm-dev
Sent: Sunday, October 18, 2015 2:31 AM
To: llvm-dev@lists.llvm.org
Subject: Re: [llvm-dev] RFC: Second draft of an LLVM Community Code of
Conduct

>> * **Be careful in the words that you choose.** We are a community of
>> professionals, and we conduct ourselves professionally. Be kind to
>> others. Do
>
> What kind of professionals?

In this context, I interpret "professional" to mean "we take this
seriously", not "we make a living off it" nor "we have taken an exam"
(neither of which is actually required).

As this is a *code of conduct* rather than *criteria for membership*
and in fact I have observed serious welcoming to students and other
amateurs, perhaps just drop the "we are" part and stick with just the
"we conduct ourselves..." part.
--paulr

* **Be careful in the words that you choose.** We are a community of
   professionals, and we conduct ourselves professionally. Be kind to
others. Do

What kind of professionals?

In this context, I interpret "professional" to mean "we take this
seriously", not "we make a living off it" nor "we have taken an exam"
(neither of which is actually required).

Latter half of the statement as itself could be interpreted easily as you did. But preceding "community of professionals" could be taken to mean that this is related to a professional association, which can have its own professional conduct that sets the expected standard for the community. Hence the question "Which profession/association?".

> Professional boxers perhaps?

That's exaggerating the wording, trying to lead it ad absurdum; it's a
direct rhethoric attack, so your opponent has to deal with the feeling
of being attacked.
Also, it withholds the actual argument, so you're putting your opponent
into an unclear situation, which causes stress.

That's a good tactics to derail an opponent, but not a good one to
cooperate towards a common goal.

Yes, it was an absurd example of possible guesses that can be made, which is easy to discard as an answer when larger context is considered. This to show that there is room for clarity, so such guesses would be unnecessary.

I admit that I definitely could have been more clearer on my original response.

Pasi

* **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 or lack thereof, and mental and physical
ability.

...

* **Be careful in the words that you choose.** We are a community of

   professionals, and we conduct ourselves professionally. Be kind to
others. Do

What kind of professionals? Professional boxers perhaps? Who do have a
habit to get under the skin of the opponent with a insults before the match.

Rarely people in their teens, or early twenties would be considered as
professional on any area of expertise. So by claiming that community
consist of professionals, aren't you already discriminating against
individuals who do not have any professional (what ever it may be) interest
on the project?

I agree the particular phrasing here (at least to me) reads as disparaging
to people who are not employed to work on LLVM.

As a side note: this whole bullet point is sort of weird. It is titled "Be
careful in the words that you choose." which makes it sound like it is
about incidental oversights, but everything after the second sentence seems
pretty unrelated. E.g. one of the examples is "Posting (or threatening to
post) other people's personally identifying information ("doxing")." - how
does that fall under anything involving "be careful"? Similarly for "Unwelcome
sexual attention." in what way does that involve "the words that you
choose"; is there a choice of words that makes "Unwelcome sexual
attention." any more or less acceptable? Same is true for " Repeated
harassment of others.".

Was there a typo and "Be kind to others" should start a new top-level
bullet point? `* **Be kind to others.** ...`

-- Sean Silva

This phrasing is clearly too confusing to too many readers at this point. Its value was marginal anyways, and so I’ve just removed it.

It’s not about it being more or less acceptable, it is that these consequences might not be intended. The most common cases here are around “Discriminatory jokes and language.” but several of the other categories could be unintended as well.

These can usually be solved easily with a quick note to someone saying “Hey, you may not have intended that joke to be interpreted as ____, but it is, so you should probably not make it here.” No big deal. If the person doesn’t feel comfortable doing that, they can ask the advisory committee to do it for them and that will be the extent of what happens. A quick note to the person that “Hey, you may not have realized it, but …”.

It is (IMO) still important for it to be here, because once this is explained, repeating it gets worse and worse. And there are cases which are unambiguous and clearly unacceptable even once – physical threats for example.

We could separate the two cases, but it isn’t clear that this is a useful distinction. I think the primary problem is something you point out below…

The original wording definitely has it structured as I did in my document. But I really like this suggestion. There are really two things here: be careful about the words you choose (because they may have unintended consequences otherwise) and to be kind to others.

So in addition to deleting the sentences that referenced “professionals”, I have merged the two halves into a single highlighted header. I hope that helps, but please let me know.

I ended up with a hybrid of the two, and this is present in the latest draft.

I very much like that second draft !

Remember that we’re a world-wide community, so you might not be communicating in someone else’s primary language.

While there, it might be worth stating as well the “someone else” may also be in a different timezone (or just travelling), and a lack of immediate answer/feedback does not necessarily imply lack of thoughtfulness.

I don’t have any problem with this, but others have expressed a hesitation at the size of the document, so I’d like to see other support for this particular addition before adding it.

Hi Chandler,

I have two very specific and very important details I want to discuss
with you. The list of harassment concerns and the reporting policy
being unilateral, with the latter being much more important than the
former.

I'm pleading people to avoid in-line reply, since the ideas are
complete on their own, and picking any one paragraph may lead to
misinterpretation of my words. Please, just read through, and comment
at the end of each block.

I also ask people not to interpret my words in any prejudicial way.
This is a mathematical analysis of the text and the community, and
it's the only type of analysis I'm physically able to make. If any of
this looks offensive, it's because I'm not using the "politically
correct" phrase construction and terms, not because I think human
beings should be treated differently based on any characteristic
irrelevant to the discussion. If you have any specific concern, let me
know in private, to avoid deviating us from the discussion at hand.

   0. Sources

There are two main ones: the Ada initiative and Sarah Sharp's blog,
both focus on gender inclusion. Personally, I agree with *all* of
that, but I don't think we should side with any specific concern.

Most of the time, prejudice is very similar, and advocating against
one type often equals most other types. But not always. A few
examples:

* It's easy to spot gender by names, so *directed* prejudice on a
mailing list is easier to women (and ethnicity) than sexual
orientation of mental disability. Indirect prejudice is a lot easier
to spot overall.
* Disability is well established, so it's very crass to discriminate
face to face, but some people feel more comfortable in discriminating
against women (or gay) in person, especially if surrounded by other
like minded men.
* Skin colour and immigration status is a *very* contentious issue in
the US, but almost irrelevant in other places of the world. This
harder to spot electronically but *very* easy personally, also easier
to get it wrong in the latter.
* Religious discrimination is not as common in US as it is in Europe,
because of the clash in cultural background in more mixed societies.
It's possible that Americans (and I mean North, Centre and South) are
more likely to be rude religiously than Europeans or Asians, due to
severe lack of exposure to non-Christian religions.
* Some cultures think it's extremely disrespectful to treat women
like men. Others treat gun ownership like a religion, more important
than people's safety. Isn't a gun more physically dangerous than
disrespect?

While we could go on forever, the key issue here is that all of those
problems have infinite ramifications, but not all of them are treated
equally by people that suffer a specific type of prejudice.

I encourage you to draw another parallel here with me:

Ada's post brings the "community conduct" in the beginning, but focus
on physical contact, ie. conferences. In that area, discrimination is
very clear, sometimes aggressive, and therefore potentially dangerous.
Strong measures need to be taken quickly to safeguard the mental and
physical state of the other participants. But most of that has a lot
less practical value when dealing with mailing list or IRC conduct.

Sarah's post is a lot more inline with the electronic interactions,
which most of us do most of the year, and it doesn't bring much about
all the differences nor speaks on drastic terms. It's based on
respect. Plain and simple.

So, based on your own sources, physical encounters and measures *may*
need to be a lot more drastic than electronic ones, and that's not
reflected on your proposal.

   1. Harassment listing

My point, simply put, is that listing some types of harassment, but
not others, is prejudicial in itself against the people that face
harassment types not specifically listed.

Most of the codes you linked have a well separated block named
"Diversity Statement", which lists even more stuff than what you used.
CouchDB has both the list and the statement, which is highly
redundant.

As I listed above, there are many cultural, social and ethnic issues
in each type of prejudice, and trying to list them all would be
impossible. So, I think we should stick to the basics, remembering
that this is an *international* community.

I was recently reading about the word "race" in the English language.
I see it as very derogative, trying to imply that we're *that*
different. But I take it this scientific take on the meaning of the
word may have been diluted over the years. I don't mind the use of it,
as long as all native English speaker folks agree it's conflict-free.

My proposal is to include one term for each *type* of conflict. I see:
* "race" and/or "ethnicity" and/or "gender" as all conflicts
involving visual individual characteristics,
* "sexual orientation" and/or "religion" and/or "political views" as
important non-visual characteristics,
* "social status" and "disability" as important background
discriminatory issues

Everything else can be regarded as sub-groups of these. The codes you
linked all have three very interesting ones: genotype, phenotype,
neurotype. It would be possible to mathematically include *all* others
within those three, but that would be too terse.

So, I understand this is a spectrum, and that we have to find the
right threshold. Only, that threshold is different for each one of us,
because we all suffer from different types of prejudice.

One idea is to set on a finite list, say 10, and let people choose
which 10 they cannot live without, and pick the most common. After
all, this IS "including, but not limited to".

Or, if no one else is feeling segregated by that list, just keep it
and ignore everything I said. :slight_smile:

   2. Unilateral reporting and actions

This is the critical one, and unlike the harassment listing, one that
I'll have *a lot* of trouble if it goes in this way.

The key points are:

* There is *no* mention that the committee will gather, nor value,
the input of the accused.
* Due to protection issues, the accused will most likely only be
contacted *after* the decision is taken
* Most decisions are unilateral and cannot be appealed

If this was a form of government, it would be called despotism.
Without knowing what the committee will be, or how it'll be chosen,
replaced and be made responsible for their actions (some codes you
link account for some of that), there is little we can work with at
this moment. None of the codes nor the blog posts you linked have that
kind of unilateral and strict consequences. I'm not sure where you got
that from.

Factoring out immediate criminal danger, my proposal is simple:

* The accused must be involved, and must be given *every* chance to
defend him/herself, including asking other people's statements,
publicly or privately,
* The accused's own deficiencies *must* be taken into account when
presenting the verdict, and he/she should be consulted on which
response would be best,
* *Every* decision must allow for appeal if new evidence is
presented, (the asymptote here is zero very early)
* Any member of the community can request investigation of the
committee's decisions, by an independent representative panel.

By representative, I mean chosen by the people, for the people, and
accountable for their actions to the people, with the same vigour as
we deal with breaches of conduct.

Basically put, the ends don't justify the means. This reporting guide
puts too much power into a committee that hasn't even been decided how
it will be formed. Given how the LLVM Foundation was formed, I
understand why people are unsure how this will play out. However, even
if we did know exactly how the committee would be chosen, these
guarantees are still mandatory. As I said earlier, projects and people
change. If the code allows for abuse, given enough time, abuse will be
taken.

cheers,
--renato

Just for the record:
Actually in Mid and South America, non-Christian religions are making a comeback, up to and including representatives of shamanic belief systems inaugurating a president.
I.e. I think your analysis may be slightly off the mark here.

Some more general remarks:

I do agree that any concrete bullet list of harrassing actions is culturally biased, and I do agree that that might cause problems in the long term.

I'm not 100% sure that this is going to be serious though. No dictatorship ever worked as long as people could vote with their feet, and if it comes to the worst and the LLVM committee starts making "strange decisions", there will be an organizational fork and likely a code fork as well. Over time, one of the forks will die, or they will get merged amicably - either way nothing really bad happened, except maybe to those who engaged in direct confrontation.
The knowledge that this can happen will in itself cause the committee to restrain any dictatorial ambitions, further reducing the issue a bit.

Well, that's the typical event sequences. There is the occasional exception, mostly revolving around situations where the original project isn't that easy to leave or fork after all. So I won't deny that there could be a problem, and it would be nice to get that improved.
OTOH any alternate proposals would need to be evaluated as well, and I have seen situations where the cure was as bad as the illness. I'm willing to accept that some things simply can't be regulated via rules and bylaws, and the best and most well-meaning organisations can deteriorate. It's just what can (and ultimately will) happen, not the End of the World as we Know it, so... relax :slight_smile:

Regards,
Jo

Actually in Mid and South America, non-Christian religions are making a
comeback, up to and including representatives of shamanic belief systems
inaugurating a president.
I.e. I think your analysis may be slightly off the mark here.

Indeed. Brazil is an even clearer case of religious mix. The idea was
just to show how confirmation bias can unconsciously turn into
prejudice.

The knowledge that this can happen will in itself cause the committee to
restrain any dictatorial ambitions, further reducing the issue a bit.

It's a balance, yes. But I'd rather not *have* to depend on community
pressure to keep such a powerful committee in check. As you said, that
pressure may not be wholly enforcible.

OTOH any alternate proposals would need to be evaluated as well, and I have
seen situations where the cure was as bad as the illness.

Absolutely. Another alternative is to not mention the committee or its
powers in the document in the first place, like the other CoCs
referred by the original post. I'd be ok with that.

cheers,
--renato