Introduce a *draft* of a code of conduct for the LLVM community and the associated reporting guide.

Authored by chandlerc on Oct 14 2015, 1:31 PM.



I want to emphasize that at this point these are just drafts!

I also want to very strongly discourage any substantive discussion here.
Feel free to provide normal RST and English review on the details, but
all discussion of th econtent, substance, and even the concept of a code
of conduct should take place on llvm-dev. I will be starting a fresh
thread there with an in-line copy of this updated version very soon.

Diff Detail

There are a very large number of changes, so older changes are hidden. Show Older Changes
rengolin added inline comments.May 5 2016, 3:00 AM
36 ↗(On Diff #56244)

"social and economic status" is less crass, I think.

38 ↗(On Diff #56244)

Maybe put an "etc." at the end?

Even though you said "not limited to", the "etc" usually comes along, as it helps people understand that this is not an exhaustive list (though it is exhausting to read and understand the difference between all of them, which I don't claim to).

10 ↗(On Diff #56244)

"... or felt harassed / uncomfortable / worried whatever in any other way..."

I don't think we can catch everything in the Code, and I also don't think that "reporting" should be exclusively for things in the Code.

28 ↗(On Diff #56244)

"if needed" repeated. I personally would remove the second, as "feel free" already implies "if needed".

37 ↗(On Diff #56244)

This is good.

I read this saying we *prefer* to deal with issues as we have always done, but when that doesn't work, or the person is too shy/fragile (it's a deep wound, invisible threat), or they just don't know how to deal with it, they should try the board.

Is that what everyone else reads, too?

48 ↗(On Diff #56244)

Including other people may need asking them first. Some people really don't like to be pulled into a conflict that is not theirs.

75 ↗(On Diff #56244)

"will try" is better, as "may choose" indicates you don't need to even try.

I think you really ought (try to) to contact *all* affected parties before *any* decision is taken, and this need to be clear.

82 ↗(On Diff #56244)

"Nothing, if we..."

86 ↗(On Diff #56244)

I'd take the ()'s, as assuming plural is always less accusatory.

99 ↗(On Diff #56244)

I'd rather say "people involved" than "reporter", since we should really take everyone's point of view into account, or this will end up as a one-sided deal.

We're trying to resolve conflicts, which are composed by multiple people with different opinions. Bad behaviour is generally not alone, and fights usually mean both sides are wrong to at least some degree.

It's perfectly possible that a reprimand will go to the reporter instead, so we shouldn't rule out those possibilities, or people will feel protected by the code and then abuse of it.

122 ↗(On Diff #56244)

Excellent. This is a very necessary paragraph.

rafael added a comment.May 5 2016, 5:01 AM

I am still opposed to this. I think think this fails to capture the
desire to codify the current practices, not change them. I am afraid
that doing this will push us in the direction of

And we will spend time cleansing ourselves from "dominators" and "cargo cult".


This commit is just silly. The Oxford dictionary[1,2] clearly states:

  • Master: A machine or device directly controlling another: [AS MODIFIER]: a master cylinder
  • A device, or part of one, directly controlled by another: [AS MODIFIER]: a slave cassette deck

If we're going to get rid of all words that *may* have an "inconsiderate" meaning, we'll be left with nothing.

In addition to Dominator, think of LHS / RHS. How many very inconsiderate meanings the words "right" and "left" have? And how political and deep this could go either way. Are we going to replace all LHS/RHS for ThisSide and ThatSide?

What about all the literature that already mentions Master/Slave, Dominator, LHS/RHS, are we going to change them, too? I think not.

I would have flatly refused that commit under these conditions, and I hope we don't start doing that in LLVM.



reames added a comment.May 5 2016, 3:52 PM

Overall, I'm very happy with the revised version.

I like most of rengolin minor wording comments. +1 to those I haven't explicitly replied to.

48 ↗(On Diff #56244)

Disagree. Individuals can certainly chose to stay out of a situation or not comment, but it should not be the reporters responsibility to establish that. That's the appropriate role for the advisory board.

75 ↗(On Diff #56244)

I agree that "will try" is an improvement over my original wording.

rafael added inline comments.May 6 2016, 8:34 AM
24 ↗(On Diff #56244)

Just noticed this part and I find it even more troublesome than the rest.

I am an atheist and anti religious. Before all this discussion about the code of conduct most people might not even have noticed it other then by some FSM t-shirt simply because I know it would be out of topic for the list, irc channels and conferences.

But if you are a believer and you follow me on facebook or start a chat about it at a bar there is a pretty good chance you will be offended.

And that is symmetrical. I may be offended by someone's facebook post, and might decide to just not follow that person anymore. That has nothing to do with them reviewing my code or the other way around.

zturner added a subscriber: zturner.May 6 2016, 9:26 AM
zturner added inline comments.
50–52 ↗(On Diff #56244)

Not crazy about this line. Why are members of the LLVM community special in this regard? Everyone should be respectful to everyone, that's just being a good person. But you can't police that. Sure, we can police it within our community, but outside? If I go to a political protest and I'm shouting at someone, all of a sudden I'm not "being respectful to people outside the LLVM community."

This is an LLVM code of conduct, not a life code of conduct. Please don't attempt to police peoples' actions outside of the LLVM community.

colinl added a subscriber: colinl.May 6 2016, 9:47 AM

I'm opposed to adopting this document. I don't think it solves a particular problem and it seems likely to create many.

chandlerc updated this revision to Diff 56441.May 6 2016, 11:29 AM
chandlerc marked 8 inline comments as done.

Incorporating several suggested wording changes.

Updating D13741: Introduce a *draft* of a code of conduct for the LLVM community and the

associated reporting guide.

I am still opposed to this. I think think this fails to capture the
desire to codify the current practices, not change them. I am afraid
that doing this will push us in the direction of

And we will spend time cleansing ourselves from "dominators" and "cargo cult".

I don't agree, but please raise this on the llvm-dev thread rather than here because I'd like to avoid having two separate discussions about the core substance.

Same suggestion for Colin. If you want to object to the core idea here, please do so on the llvm-dev thread where most of the substantive discussion is taking place.

Below I'm trying to focus on the really excellent wording comments, thanks Renato and others.

36 ↗(On Diff #56244)

I don't really disagree, but I'm not sure this is important enough to deviate from the existing practice that this wording is based on. I don't feel strongly either way though.

38 ↗(On Diff #56244)

I'm not sure this really helps though -- it seems to make the long list more awkward than it helps to me. But if this is helping lots of folks, cool.

50–52 ↗(On Diff #56244)

The top of the document tries to indicate that this is meant to guide behavior within LLVM community spaces. The wording here just means that these guidelines apply to people not usually part of the community but communicating within those spaces.

Yes, there is a clause about behavior outside of LLVM spaces because without that really bad behavior can "dodge" the code and it becomes meaningless. We're working on ideas to scope it even more narrowly in wording, but the intent is certainly that this doesn't apply to completely unrelated activities.

If your concern is higher level than a wording concern, as with others I would suggest you voice that on the main llvm-dev thread.

10 ↗(On Diff #56244)

I would hope that the code has sufficiently broad wording to cover exactly what you said...

Maybe the issue is that "If you believe someone is ..." is a fairly definite statement? We could say:

If you think someone might be ...


If you believe someone might be ...
37 ↗(On Diff #56244)

I wouldn't use the word "prefer" because that seems to mean using other means isn't "preferred". But it is definitely intended as encouragement and support of this behavior when done well.

99 ↗(On Diff #56244)

I've switched to "individuals involved" as elsewhere. I agree this should jsut be generic.

Thanks Chandler, most of my comments were addressed. I just added a few comments, but it's mostly ok.

25 ↗(On Diff #56441)

Too many people feel very strongly about this to warrant some more substantial changes.

I personally feel this is not so bad for two things:

  1. It says "may affect", not "will affect". Not a very strong point per se, but strong enough given point two.
  1. Being unfair in the evaluation and punishment of cases like that would go directly against this very code. Blocking someone because they were seen with a silly T-shirt in their Facebook pictures will be a clear case of bullying, and thus could be reported by this very code.

If the committee is really serious about bullying, then the committee will put itself on the list of potential offenders, and they should be judged in the same manner.

If they don't, than we have much bigger problems that the code itself...

11 ↗(On Diff #56441)

I don't feel strongly about this. "might" seems worse than "is", I think.

49 ↗(On Diff #56441)

When related to witnesses, this is a cultural issue.

Unless there is a criminal investigation going, people in some countries (including the UK) feel *very* uncomfortable to be included in someone's else personal discussion. Doing so would clearly be marked as bullying and violate the CoC.

If we want people in other countries to also feel safe, we need to word in a way that they can understand their cultural issues will make them feel safe.

chandlerc added inline comments.May 6 2016, 1:05 PM
25 ↗(On Diff #56441)

FWIW, I wasn't trying to ignore this part, just trying to keep the discussion about it on the other thread. Already replied there.

11 ↗(On Diff #56441)

Ok, leaving this sentence as-is unless better suggestions or stronger opinions come up. Thanks!

49 ↗(On Diff #56441)

I don't think there is a very useful way to avoid a report *privately* stating who that person recalls being present.

Their memory as relayed to tho committee is just that though: their memory. The committee is going to have to ask politely whether folks were involved or not. And even the discussion of who was involved, and any communication the committee does to them, *all* of that is (I think at least) clearly under the confidential and private clause. Not just from anyone, but even from the person who reported the issue. Until people give their express OK to have something said publicly, none of this should ever get shared.

Is that enough? (I genuinely don't know. I checked this some time ago with some folks from Europe, but I don't know how carefully they looked at this particular issue, or they may just not have concerns or thoughts about this.)

colinl added a comment.May 6 2016, 1:25 PM
This comment was removed by colinl.
rengolin added inline comments.May 6 2016, 1:41 PM
49 ↗(On Diff #56441)

From my experience in England, it is not enough to protect them from public discussions.

I had a few cases at my kids' school and workplaces (plural) where something wrong happened, I discussed with folks that I'd report via private whistle-blower policies, and they got *very* agitated and told me very convincingly to not mention their names in any instance.

Speaking to other people about this, it seems this is considered a severe breach of confidentiality. Since you're not their employer, this could even have legal complications. I would not go there if I were you.

I think the committee has to have access that it can, not that it thinks it needs. We really don't want to be breaching some people's individuality to protect other people's individuality.

chandlerc updated this revision to Diff 56456.May 6 2016, 1:49 PM

Further qualify one sentence based on suggestions from the llvm-dev thread.

Updating D13741: Introduce a *draft* of a code of conduct for the LLVM community and the

associated reporting guide.

Please find a comment inline about a choice of word that makes me uncomfortable.

I take the opportunity to say that while I don't personally feel the need for it, because I haven't personally witnessed that the community has not been welcoming, the simple fact that some people don't feel comfortable without making this explicit through a CoC is enough for me to fully support the initiative. Outside of the exact wording, I trust the community to refer to the CoC with discernment.

66 ↗(On Diff #56456)

Can you remove the word "Repeated" please?
Harassment is by definition *repeated* as far as I know, unless it is a US vs non-US thing?
A quick google search tends to comfort me in my view that other CoC I looked at are twisting the word by removing this (important IMO) component: : "any form of repeated behaviour intended to intimidate a person or make them feel unwelcome or uncomfortable" and "repeated interactions with a person after they have made it clear that further interaction is unwelcome" : the act of systematic and/or continued unwanted and annoying actions "to annoy or bother (someone) in a constant or repeated way" and "to make *repeated* attacks against (an enemy)" "It is commonly understood as behaviour which disturbs or upsets, and it is characteristically repetitive" and " Sexual harassment refers to persistent and unwanted sexual advances"

Not having this characteristic implies that a one-time behavior that offend someone is considered as harassment, which I disagree with.

May I suggest an edition along these lines:

**Be careful in the words that you choose and be kind to others.** Do not
  insult or put down other participants. 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.

   In general, if someone asks you to stop, then stop. Persisting in such a 
   behavior after being asked to stop is considered harassment.
rengolin added inline comments.May 7 2016, 4:44 AM
66 ↗(On Diff #56456)


What about Arnaud's suggestion to add a TL;DR section? A lot of people agreed it was a good compromise.

probinson added inline comments.
44 ↗(On Diff #56456)

Heh. Or your own primary language. Also native speakers aren't necessarily perfect either. How about:
"Remember that we're a world-wide community, and while English is the lingua-franca of computer science, not everyone is fluent."

rengolin added inline comments.May 10 2016, 6:14 AM
44 ↗(On Diff #56456)

Good point. +1.

chandlerc added inline comments.May 10 2016, 9:41 AM
44 ↗(On Diff #56456)

I agree about this concept, but I'm not sure it fits here. This is about being considerate to others and there I think considering the fact that they may not be operating in their primary language is the most relevant.

We could try to work this into one of the other sections, but I'm not sure it is strictly necessary, as I think *all* of this is pretty clearly reflexive -- everything about "you" and "others" here applies in reverse equally often?

66 ↗(On Diff #56456)


FWIW, I think the intent of the 'repeated' was trying to intensify an aspect of this that perhaps some readers are less familiar with. But I think your wording is fine too.

chandlerc updated this revision to Diff 56745.May 10 2016, 10:12 AM

Update with fixes suggested, including adding a TOC-style list at the top based
on llvm-dev thread suggestions.

rengolin added inline comments.May 10 2016, 11:12 AM
45 ↗(On Diff #56745)

I think the point of the argument wasn't strictly semantics, but trying to be inclusive.

If you refer to "someone else's primary language" you're clearly referring to non-English speakers, and thus may be viewed as aiming the code at English speakers, maybe because they're majority, etc.

I'm not particularly fussed about this, though. If there was some better, short replacement I'd prefer, but if we double the paragraph in size, it'll get harder to understand, missing the point.

51–53 ↗(On Diff #56745)

I just read this again and I agree with @zturner, this is even weirder than the other anti-dodging paragraph. I don't think we can even enforce any of that outside the LLVM community... :(

I can certainly understand us trying to say to people how bad it is to misbehave outside the list/meetings, but if the code is wholly enforceable (by means of Reporting Guide and committee), then everything here has to be so...

I don't want to promote a split in even more parts, but if we move the "outside" argument to the TL;DR header, which is more of a guideline, people will take the hint.

The anti-dodging paragraph is already clear enough.

mehdi_amini accepted this revision.May 10 2016, 12:53 PM
mehdi_amini added a reviewer: mehdi_amini.

Since you ask for an "ack" on the mailing-list: LGTM, with some minor comments inline.
You probably want to wait for a lot more approval here before committing though... :)

96 ↗(On Diff #56745)

Is the short "err" intentional here?

117 ↗(On Diff #56745)

whould, if it is a proper word, it is not very common I think, you may want an alternative to be friendlier with non-native English speaker :)

122 ↗(On Diff #56745)

I'm a bit torn on this paragraph, looks like a "gag order" (you may be sanctioned in some way by a committee and forbid to discuss why with the community).

This revision is now accepted and ready to land.May 10 2016, 12:53 PM
chandlerc added inline comments.May 10 2016, 2:22 PM
45 ↗(On Diff #56745)

If people read this as referring to non-English speakers, I hope that would only be due to the communication in question happens to occur in English...

Anyways, I'm also not particularly fussed about this. If folks feel really strongly about this, I'm open to suggestions. Sadly, I don't quite think the previous suggestion captures it, and I would like to avoid trying to define one language or another as a "lingua-franca".

51–53 ↗(On Diff #56745)

My response to Zach was that this isn't actually about behavior outside the community spaces, but rather about behavior towards newcomers or external parties made within the LLVM spaces. So I don't think this is an "anti-dodging" anything... Not sure if that really addresses your concern though.

probinson added inline comments.May 10 2016, 4:14 PM
45 ↗(On Diff #56745)

Sorry, lingua franca is actually how I think of it, although it probably makes me sound snooty (blame my prep-school background). I admit it doesn't really belong here.
"Remember that we're a world-wide community, and while the common language of computer science is English, not everyone is fluent."

(I'm not sure what else to call it, unless you want to decree that English is the "official" language of LLVM projects.)

96 ↗(On Diff #56745)

"to err" is a real verb in English, meaning to make a mistake.

lhames added a subscriber: lhames.May 10 2016, 8:12 PM

Ack'ing the new revision as requested. This is looking really good. Thanks Chandler!

sanjoy accepted this revision.May 10 2016, 9:45 PM
sanjoy added a reviewer: sanjoy.
sanjoy added a subscriber: sanjoy.

This is looking great. I made a few nitpicks while reading, feel free to pick and choose.

31 ↗(On Diff #56745)

I'm not sure why "In addition" is needed? In addition to what else in the preceding paragraph?

55 ↗(On Diff #56745)

I'd prefer removing "when making decisions", since that looks like it is repeated.

85 ↗(On Diff #56745)

I'd s/a behavior/behavior/

92 ↗(On Diff #56745)

"we're diverse" seems more specific

36 ↗(On Diff #56745)

spelling: wish

46 ↗(On Diff #56745)

Nit: period at the end (or remove periods from all bullets)

60 ↗(On Diff #56745)

s/we/the advisory committee/ (or consistently refer to the committee as the first person)

jmolloy accepted this revision.May 11 2016, 5:10 AM
jmolloy added a reviewer: jmolloy.
jmolloy added a subscriber: jmolloy.

LGTM. I like the wording a lot now.

I've called out something in particular that I've wanted to highlight without being caught in the tidal wave of the other thread. It's just highlighting something, and doesn't need any change in the text.


56 ↗(On Diff #56745)

I'm glad this is mentioned. One of the major reasons I wouldn't want this CoC to enable wordsmithing like "Master" -> "Leader" is that the nuance between the two is slight, and people with a non-perfect grasp of English may not understand that nuance. Sticking to oft-used terms is considerate.

I hope there can be a self-deprecation exception, although it's not immediately obvious where to put it. If I refer to *myself* as having had a "senior moment" (which I did recently) I don't want some do-gooder hauling me up in front of the Conduct Committee for being age-ist.

Aside from that, no objection here.

aadg accepted this revision.May 11 2016, 2:34 PM
aadg added a reviewer: aadg.
aadg added a subscriber: aadg.


I think the wording is OK and this is a good base to start with.

I don't have strong feelings on the exact wording in the code of conduct, at least compared to others who have spoken up here.
I think the text looks reasonable, just like I think many alternative versions with small variations would look reasonable.
While I hadn't seen a strong need for a code of conduct when the topic came up initially, I've been convinced that for some, this makes a big difference. I don't see a major downside to having the code of conduct.
I'm happy with the proposed text.


lhames accepted this revision.May 12 2016, 5:35 PM
lhames added a reviewer: lhames.
jbcoe added a subscriber: jbcoe.Jun 30 2016, 12:29 PM
This revision was automatically updated to reflect the committed changes.