FYI: Landing the initial draft for an LLVM Code of Conduct

Hello folks,

As mentioned some time ago[1], we’ve had a long (looooooong) series of discussions about establishing a code-of-conduct for the LLVM project as a whole over on the llvm-dev thread and the http://reviews.llvm.org/D13741 code review.

The discussion has largely died down for some time, and towards the end there has been pretty wide support for the draft wording we have now. It isn’t perfect, and there are still some important questions around forming the advisory committee to handle reporting, but I think the wording is at a good point of compromise in a challenging area.

Based on the support, I’m going to land the patch that adds the draft. I’m hoping this will immediately provide good advice and guidance, and I’m hoping to see motion on setting up a reasonable advisory committee and resolving any issues around reporting so we can make this an official part of the community.

I sending this as a heads up so folks are aware, not to start a new discussion thread. There are existing discussion threads[2] on llvm-dev if folks want to join in active discussion or we can start fresh ones, but I would encourage people to carefully read the discussion that has already taken place to avoid revisiting areas that have already been heavily discussed.

Also, many thanks to the folks who provided all their opinions on the mailing list threads and in person in long discussions about this topic.

Thanks,
-Chandler

[1]: Prior announcements:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091218.html
http://lists.llvm.org/pipermail/cfe-dev/2015-October/045460.html
http://lists.llvm.org/pipermail/lldb-dev/2015-October/008530.html
http://lists.llvm.org/pipermail/openmp-dev/2015-October/000954.html

[2]: Existing threads:
http://lists.llvm.org/pipermail/llvm-dev/2015-October/091218.html
http://lists.llvm.org/pipermail/llvm-dev/2016-May/099120.html
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151019/307070.html

So discussion has been beaten to death and based on your comments - it seems you anticipate strong support. Is any (in)formal vote planned? Will this just get enacted, “who” decided…

So discussion has been beaten to death and based on your comments - it seems you anticipate strong support.

I think there has been explicit strong support on the threads.

Is any (in)formal vote planned? Will this just get enacted, “who” decided…

I don’t think we need any kind of vote. I think there is pretty clear and widespread consensus. It’s not unanimous of course, but I don’t think that is a requirement or reason to have some kind of vote. If there are large numbers of contributors who actively disagree with this direction, I think they have had many opportunities to speak up (and thanks for doing just that on prior threads). And folks can always speak up now or in the future. If there is a clear change of consensus, the community can and should respond to that.

Thanks, Chandler, for all your work on this. I’m glad to see this moving forward.

-Jim

I am strongly opposed to it as it stands.

Who decided this and with what authority? As written the code of
conduct tries restrict the acceptable opinions one may voice even in
channels not related to llvm at all.

With this in place I will not consider myself a member of the llvm
community anymore and would be terrified to interact with another llvm
developer in a social setting.

Rafael

Thanks a lot for spearheading this and seeing it move forward. It’s absolutely appreciated.

Thank you.

-eric

I am strongly opposed to it as it stands.

Who decided this and with what authority? As written the code of
conduct tries restrict the acceptable opinions one may voice even in
channels not related to llvm at all.

errr, it says:

"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
vents such as the developer meetings and socials, and any other forums
created
by the project that the community uses for communication. "

How does this cover channels not related to llvm?

With this in place I will not consider myself a member of the llvm
community anymore and would be terrified to interact with another llvm
developer in a social setting.

That would be sad, but i guess i'm not sure what is causing that. Is it
that there is discretion in there that you are afraid may apply to you if
taken to some extreme?

I expect Rafael’s concern is because the code also says:

In addition, violations of this code outside these spaces may, in rare
cases, affect a person’s ability to participate within them.

So it can apply outside spaces explicitly sponsored by LLVM, in undefined circumstances.

–paulr

Likewise. The clearly stated intended consequences are well worth promoting, and any unintended consequences can be addressed with good judgement and ongoing revision. Thank you for your efforts to make sure LLVM remains friendly and inclusive.

Kate Stone k8stone@apple.com
 Xcode Low Level Tools

That’s just a residual clause.
It’s not sanely possible to enumerate all the possibilities here (IE if you stalk and murder someone in the llvm community, you are going to get kicked out of the community, regardless of if you did it in a controlled space)
I mean, i’m subject to legal ethics rules that are very similar, and those could get me kicked out of an entire profession :slight_smile:

I guess one could write “In addition, violations of this code outside these spaces may, in rare
cases, affect a person’s ability to participate within them, when the conduct amounts to an egregious violation of the communitie’s social standard.”

But it’s not, in practice, any different.

Basically, if you are looking for complete and total bright line proscribed standards, they pretty much don’t exist anywhere except in criminal statutes :slight_smile:

Thank you for your continuing efforts on the Code of Conduct! I
appreciate the efforts and strongly support this direction.

~Aaron

I don’t know what you meant to imply by “residual clause” — if you meant “it’s not particularly important”, then I suggest it is left out entirely. Apparently at least a few of us have interpreted it to say “the committee reserves the right to kick you out for any behaviour that violates our standards which you exhibit anywhere, even if it is completely unrelated to the llvm community”.

Personally, I’m just going to ignore it, and thus don’t really care whether it stays or goes — but I do find it overreaching and intrusive, and completely inappropriate in such a code of conduct.

I don’t know what you meant to imply by “residual clause” —

Sorry, it's a reference to what is usually the last clause in some set of
proscribed or allowed behavior in a law, because they are usually vague.
IE

You will get in trouble if you do
A. something specific
B. something specific
C. something specific
D. or if you do something not exactly A-C but equally as bad.

if you meant “it’s not particularly important”, then I suggest it is left

out entirely.

No, it's important, they are just deliberately vague.

Apparently at least a few of us have interpreted it to say “the committee
reserves the right to kick you out for any behaviour that violates our
standards which you exhibit anywhere, even if it is completely unrelated to
the llvm community”.

That honestly seems like a pretty uncharitable interpretation.
If that actually happens, great, we can fix it.

There are good reasons facial challenges (
Facial challenge - Wikipedia) are heavily disfavored.

Personally, I’m just going to ignore it, and thus don’t really care
whether it stays or goes — but I do find it overreaching and intrusive, and
completely inappropriate in such a code of conduct.

I'm going to pretty strongly disagree, so i'll leave it at that.

I guess the point is that, for some, not having that clause, causes discomfort and reduce their contribution. For others, having that clause causes discomfort and reduce their contribution.

I don’t think one is more important than the other, nor I think we should see this as which side makes more contributions.

Daniel’s version, although similar, is clearer, and may discourage abuse even more that Chandler’s original fix. I’m OK with that, too.

I guess I prefer to be reactive. If people start abusing, I’ll make some comments, then some noise, than official complaints to the board, etc. If none of that works, getting out of here is the obvious choice. But that will take an impressive amount of abuse and carelessness, and the community will be already fragmented by then.

My tuppence.
Renato

From: "Aaron Ballman via cfe-dev" <cfe-dev@lists.llvm.org>
To: "Chandler Carruth" <chandlerc@gmail.com>
Cc: "llvm-dev" <llvm-dev@lists.llvm.org>, "cfe-dev" <cfe-dev@lists.llvm.org>, "openmp-dev
(openmp-dev@lists.llvm.org)" <openmp-dev@lists.llvm.org>, "LLDB" <lldb-dev@lists.llvm.org>
Sent: Thursday, June 30, 2016 5:34:13 PM
Subject: Re: [cfe-dev] FYI: Landing the initial draft for an LLVM Code of Conduct

Thank you for your continuing efforts on the Code of Conduct! I
appreciate the efforts and strongly support this direction.

~Aaron

+1

-Hal

+1.

It’s not sanely possible to enumerate all the possibilities

Not looking for that. Looking to avoid being trolled. (“Trolled” isn’t the right word here but I’ve lost track of what the right one is. Hopefully my intent is clear enough.)

I guess one could write "In addition, violations of this code outside these spaces may, in rare

cases, affect a person’s ability to participate within them, when the conduct amounts to an egregious violation of the communitie’s social standard."

If that’s what it means, is there a problem with writing it that way?

But it’s not, in practice, any different.

I concede it’s not any different to a lawyer, which I know you are; most of us are not lawyers. Again, if it’s not any different, is there a problem with writing it in a way that provides clarity to the non-lawyer population?

Thanks,

–paulr

> It's not sanely possible to enumerate all the possibilities

Not looking for that. Looking to avoid being trolled. ("Trolled" isn't
the right word here but I've lost track of what the right one is. Hopefully
my intent is clear enough.)

I'm really not sure what you mean here.

> I guess one could write "In addition, violations of this code outside
these spaces may, in rare

cases, affect a person's ability to participate within them, when the
conduct amounts to an egregious violation of the communitie's social
standard."

If that's what it means, is there a problem with writing it that way?

What do you believe that explains that the older version did not?
No matter how you write it, it will not precisely define the conduct that
will or will not get you kicked out.

> But it's not, in practice, any different.

I concede it's not any different to a lawyer, which I know you are; most
of us are not lawyers.

That's not really relevant of course - i meant that it's not any different
in practice than any other set of social conduct rules one is subject to.

I doubt, for example, either the Google or Sony employee handbooks have
precise bright lines on what conduct is okay and not okay. Yet they still
have serious consequences.

Again, if it's not any different, is there a problem with writing it in a
way that provides clarity to the non-lawyer population?

I don't think any way you write it will provide clarity as to precisely
what conduct will and will not be okay.

Anyway, since I don't think what you seem to want is possible, and I think
it's fine as-is.
But I understand if you disagree.

I’m not sure why you’re stuck on thinking I want an enumeration of offenses.

What I’m looking for (and AFAICT also Rafael and maybe other people) is a clearer statement that “offenses” outside of LLVM-defined spaces need to meet a much higher bar to be considered problematic within the LLVM community. Someone tripping over my posting on the Militant Flat Earth Society should not get a free pass to boot me out of LLVM.

The single word “rare” in the current code doesn’t feel like enough.

–paulr

I'm not sure why you're stuck on thinking I want an enumeration of
offenses.

Sorry, it's because i don't see a way to give you the below without it :slight_smile:

What I'm looking for (and AFAICT also Rafael and maybe other people) is a
clearer statement that "offenses" outside of LLVM-defined spaces need to
meet a much higher bar to be considered problematic within the LLVM
community.

How would you define that bar without defining the offenses?
IE what do you think would make it less subject to vague discretion than
what is there now other than defining the offenses?

Someone tripping over my posting on the Militant Flat Earth Society should
not get a free pass to boot me out of LLVM.

The single word "rare" in the current code doesn't feel like enough.

I don't actually disagree with your criticism, IMHO, i just don't know of a
way to generate more clarity.

--paulr