RFC: Introducing an LLVM Community Code of Conduct

Definitely agreed here too. A code of conduct can’t in and of itself fix a broken community, but can help make clear the expected culture and policy that already exists unwritten. I’d kinda like to think that LLVM is already mostly representative of what’s in this document!

—escha

+1!!!!

Well, since we're being picky... :smiley:

race: last time I checked, we're all members of the same race, homo
sapiens sapiens.
national origin vs. immigration status: the former is already covered
by "culture" for everything that matters, the latter is very specific
to one culture.
social "class": this is too Marxist*, we should use "social status",
since everything is blurred nowadays.
family status: really?!
sexual orientation vs. sex vs gender identity and expression: what?!
size: really? is this the PC version of "weight"?

* I don't mean "socialist", nor "communist", but I mean the strict
division of classes.

cheers,
--renato

PS: I hope you all understand that I mean no offence. I may have to
put that as my signature from now on, though, or risk being kicked out
without notice... :slight_smile:

I assume the end objective of such a policy is to have more effective
communications, so it would be nice to have some examples to avoid it
instead hampering communications by pushing unnecessary political
correctness.

+2!!!

* Small, on the side jokes are OK if people are not offended. I don't
think any Canadian is offended by "Canadian Cross compiler". If I am
wrong, complain. Assume an honest mistake instead of intention to
offend.

You mean the cross compiler that instead of saying "error:" says,
"sorry sir, you may have made a mistake here:"?

* In a similar case, "cargo cult" refers to a set of existing beliefs.
Using that in the context of software development is not intended as
an offence to, for example, any llvm developer that believes in John
Frum.

I have no idea what that is, but I find it interesting that Google
renamed "bro" to "br" for the compression file because "bro" was too
"offensive". I found "bro" quite ingenuous.

* Probably most important, terseness in relevant comments about *code*
is OK. Saying that something is "wrong", "undesirable" or "broken" is
clearest way to convey that information.

+1

I'll add another point that a friend just made about this subject:

* Calling out bad behaviour on people is a way to invoke self-reflect,
not to offend. If I say you're being coercive, it's probably because I
felt pushed without technical reasons, so you may need to evaluate
your behaviour, instead of calling out "bad word!" and applying the
code of conduct to ban me.

If we create rules for *apparent* abusive behaviour but don't take
into account for the *implicit* ones, we will end up punishing the
wrong people.

I always though of the LLVM community as relaxed and understanding,
and to see that we *need* such strict rules makes me sad... I was
still hoping we didn't...

cheers,
--renato

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

How about "religion or lack thereof"? I know it can be understood to
be implicit, but as an atheist I tend feel a bit left out of
statements like that.

+1!!!!

Well, since we're being picky... :smiley:

race: last time I checked, we're all members of the same race, homo
sapiens sapiens.
national origin vs. immigration status: the former is already covered
by "culture" for everything that matters, the latter is very specific
to one culture.
social "class": this is too Marxist*, we should use "social status",
since everything is blurred nowadays.
family status: really?!
sexual orientation vs. sex vs gender identity and expression: what?!

sexual orientation != sex != gender identity and expression, so
personally, I am in favor of this (though I feel like sex could be
dropped due to the gender identity clause).

size: really? is this the PC version of "weight"?

* I don't mean "socialist", nor "communist", but I mean the strict
division of classes.

cheers,
--renato

PS: I hope you all understand that I mean no offence. I may have to
put that as my signature from now on, though, or risk being kicked out
without notice... :slight_smile:

lol

~Aaron

Are we going to list every possible choice human beings can take in
their own lives and list them? If so, we'll need a much bigger
Internet to hold our small web page.

And why some topics have more nuances than others? Because that's a
very specific list for a very specific country where people take
everything everyone says literally.

If sexuality and immigration are more important than culture and
education in that one specific country, why would such an
international community guidelines have to carry that bias?

So, we can either solve it by removing the whole phrase starting with
"This includes, but is not limited to", or we can list every possible
discrimination that has ever happened and could ever happen in the
future. I vote for the former solution throughout the document. We're
not children nor lawyers.

cheers,
--renato

Nice! This is so succinct and beautiful!

It doesn't need an overseeing foundation to take opaque decisions, and
focus on what's really important: the code.

I particularly like "Do not make it personal. Do not take it
personally.". It means *so* much in such a short sentence.

cheers,
--renato

PS: note, no bias on the discrimination list. Though, they still use
"race"... no one's perfect. :slight_smile:

>>> - *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
>>
>> How about "religion or lack thereof"? I know it can be understood to
>> be implicit, but as an atheist I tend feel a bit left out of
>> statements like that.
>
> +1!!!!
>
> Well, since we're being picky... :smiley:
>
> race: last time I checked, we're all members of the same race, homo
> sapiens sapiens.
> national origin vs. immigration status: the former is already covered
> by "culture" for everything that matters, the latter is very specific
> to one culture.
> social "class": this is too Marxist*, we should use "social status",
> since everything is blurred nowadays.
> family status: really?!
> sexual orientation vs. sex vs gender identity and expression: what?!

sexual orientation != sex != gender identity and expression, so
personally, I am in favor of this (though I feel like sex could be
dropped due to the gender identity clause).

Hi Aaron,
Over the years, these definitions have been in flux.

My current understanding is sexual orientation refers to the concepts of being
celibate or heterosexual or homosexual or bisexual. Gender identity refers to a
continuous spectrum of conditions relating to one's perception of being male or
female or somewhere in between those two ends of the gender spectrum. And so I
believe sexual orientation and gender identity are distinct concepts without any
connotation of redundancy associated with them.

One point that is very often misunderstood by the general population is that
sexual orientation is referenced to the individual's gender identity. In real
life, that can be confusing.

For another point of view, see:
http://www.hrc.org/resources/entry/sexual-orientation-and-gender-identity-terminology-and-definitions

Adapt and thrive,
Karen

> size: really? is this the PC version of "weight"?
>
> * I don't mean "socialist", nor "communist", but I mean the strict
> division of classes.
>
> cheers,
> --renato
>
> PS: I hope you all understand that I mean no offence. I may have to
> put that as my signature from now on, though, or risk being kicked out
> without notice... :slight_smile:

lol

~Aaron

> _______________________________________________
> LLVM Developers mailing list
> llvm-dev@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

--- end quoted text ---

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

My main concern with this document is that it is appointing the LLVM Foundation Code of Conduct Advisory Committee as the arbiters and judges (with enforcement powers) over the LLVM community, yet does not provide any indication of:

- Who these people are.

- How the LLVM community will select them (I presume that they are not intended to be externally imposed, as to have any moral authority over the community they would have to be supported by the community).

- How often they will change, what the term limits are, and so on.

- What their oversight mechanism is (it appears that the only appeal to rulings of the committee is to the committee itself, which seems rife for abuse).

I agree that there are many details to be worked out here and are open to suggestions as to the selection process, etc. But, from a purely high level description, this committee would be made up members of the community (including some from the LLVM Foundation board). The idea is to get a good group of people that represent the diversity of our community and have the community’s best interest at heart.

The LLVM Foundation itself has existed now for over a year and has largely failed to engage with the community. This is clearly not a good model for an committee that is intended to oversee (and enforce!) the behaviour of a community.

Can you explain what you mean by this? What are your expectations as to engagement?

Thanks,
Tanya

So, normally, you'd refer to all sex-gender-related problems as
"gender" or "sex".

The problem is the need to expand in minute details of one problem,
"gender", and not the others, for example, "culture". It's just like
this because of people's sensitivity to one topic *where* the text was
written, than the other topics, which could be much bigger in other
parts of the world.

I can think of more problems in putting everything under "culture"
than under "gender". Examples include gun ownership, death penalty,
slave labour, cast based society, imposed clothing, imposed body
mutilation, etc. All of those give rise to *very* different
discussions in diverse social groups, and you can find "socially
acceptable" people around the world that accept at least one of those,
or any combination.

I don't think we want to go there for *any* case. A simple way out is
to say: "opinions have to be based in technical merits". Which is
basically what the BSD code of conduct does very well.

cheers,
--renato

Agreed!

More Voltaire, less cultural authoritarian overreach.

The FreeBSD CoC is, IMHO, much better in this respect ( https://www.freebsd.org/internal/code-of-conduct.html ).

Nice! This is so succinct and beautiful!

As one of the authors of this CoC, I’d add a big caveat that it’s a working document and that there are several issues with it in the current form. I absolutely would not recommend any other community adopting it as-is, though hopefully soon we’ll have a more final version.

It doesn't need an overseeing foundation to take opaque decisions, and
focus on what's really important: the code.

Note that we can do this in FreeBSD, because we have an elected Core Team. The FreeBSD Foundation has spent the last 15 or so years finding its current role (and has offered the LLVM Foundation the benefit of this experience). Unlike the Foundation, which is an independent entity from the project (though one that consults with Core on a regular basis and provides valuable services to the project), Core is 100% accountable to the FreeBSD project. Every two years, anyone active committer (defined as someone who has committed something to a FreeBSD repository in the last year) is entitled to vote for the new Core Team (and, of course, to stand for election).

This means that the final authority for any issue with the project rests with the committers: if a Core Team is seen as not representing the views of the project, then it can be replaced. Thus, having Core as the enforcers of the CoC is not delegating administration of the community outside of the community.

No Code of Conduct can work if it is externally imposed - it must codify what the community believes is acceptable behaviour, allow people outside of the community to understand the ideals of that community, and present a clear line for members of the community to understand where they’ve crossed it. As I’ve recently learned, this is a nontrivial endeavour.

I particularly like "Do not make it personal. Do not take it
personally.". It means *so* much in such a short sentence.

Of course, it does have some good points :slight_smile:

David

Shouldn't that be "asexual" as opposed to "celibate"? I thought the former term refers to the a sexual orientation, while the latter to, for the lack of a better term, sexual practice.
That is, one can be, say, a celibate heterosexual, for example for religious reasons.
Or can the terms be used synonymously?

(Sorry for going so far off-topic...)

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

My main concern with this document is that it is appointing the LLVM Foundation Code of Conduct Advisory Committee as the arbiters and judges (with enforcement powers) over the LLVM community, yet does not provide any indication of:

- Who these people are.

It isn’t the point of the code of conduct to list this, but you can find the specific list of people here:
http://blog.llvm.org/2014/04/the-llvm-foundation.html

This also outlines the scope of the foundation.

- How the LLVM community will select them (I presume that they are not intended to be externally imposed, as to have any moral authority over the community they would have to be supported by the community).

- How often they will change, what the term limits are, and so on.

- What their oversight mechanism is (it appears that the only appeal to rulings of the committee is to the committee itself, which seems rife for abuse).

None of this is relevant to the Code of Conduct, it is about the Foundation. If you are interested, Tanya can provide you with this information, but I’d suggest starting a *new* thread to discuss it.

The LLVM Foundation itself has existed now for over a year and has largely failed to engage with the community. This is clearly not a good model for an committee that is intended to oversee (and enforce!) the behaviour of a community.

You seem to have a misunderstanding about what the LLVM Foundation is about. It isn’t about making technical decisions (we have code owners for that). It is designed to handle administration of the project and infrastructure, including planning and rolling out of the devmtgs.

-Chris

(Sorry for going so far off-topic...)

It's pretty obvious that the detailed enumeration of things not to be
discriminated against is a huge rathole, and the correct fix is to
remove it from the CoC.
--paulr

Hi Renato,
I believe a technical email list code of conduct should be entirely focused on
the technical content of communications and the contextual tone of
communications. Any reference to any personal attributes of list participants
should be out of bounds. Such a broad rule inclusively accounts for all
subgroups of people, without any need to get into the gory details of a life.

In practice, there are always corner cases. As of January 1, 2009, the
Americans with Disabilities Act has been amended to protect individual's
suffering a whole range of mental disabilities. These disabilities often result
in limitations in the individual's ability to communicate effectively. The
contextual tone of such an individual's communications could be misinterpreted.
In such a case, list administrators ought to investigate to see if such an
individual has special circumstances warranting reasonable accommodation.

Adapt and thrive,
Karen

I like the NCoC approach, actually. I think the community can manage itself quite well. Echoing a prior response---if this community really needs a set of rules, then it has already deteriorated. We are not there and it doesn't look like we are going in that direction.

The FreeBSD CoC also looks reasonable, and if any CoC is needed, I find this one more appealing.

-Krzysztof

I believe a technical email list code of conduct should be entirely focused on
the technical content of communications and the contextual tone of
communications. Any reference to any personal attributes of list participants
should be out of bounds. Such a broad rule inclusively accounts for all
subgroups of people, without any need to get into the gory details of a life.

Precisely! :slight_smile:

In practice, there are always corner cases. As of January 1, 2009, the
Americans with Disabilities Act has been amended to protect individual's
suffering a whole range of mental disabilities. These disabilities often result
in limitations in the individual's ability to communicate effectively. The
contextual tone of such an individual's communications could be misinterpreted.
In such a case, list administrators ought to investigate to see if such an
individual has special circumstances warranting reasonable accommodation.

As a member of that particular group, I can reiterate that this is
indeed the case. But even that has its limits.

My point is that the US is *not* the world, and if we were to
accommodate every country's mood or laws where there could be an LLVM
developer, we'd have more fine print than main text. We don't want
that.

Regardless of the code of conduct, each incident has to be seen
through the eyes of understanding people. Understanding that every
person is different and that celebrating difference is key to any
endeavour. We can still do that without mentioning every difference
there is, and if the people reviewing incidents are not understanding,
we need an expedite way to flag it, or abuse *will* happen.

Basically, we want to discourage any malicious or repeated
inconsiderate behaviour. Everything else is noise.

cheers,
--renato

I like the NCoC approach, actually. I think the community can manage
itself quite well. Echoing a prior response---if this community really
needs a set of rules, then it has already deteriorated. We are not
there and it doesn't look like we are going in that direction.

+1

The FreeBSD CoC also looks reasonable, and if any CoC is needed, I find
this one more appealing.

Perhaps the Bill & Ted's Code of Conduct:

Be excellent to each other.

The FreeBSD CoC is, IMHO, much better in this respect ( https://www.freebsd.org/internal/code-of-conduct.html ).

Nice! This is so succinct and beautiful!

As one of the authors of this CoC, I’d add a big caveat that it’s a working document and that there are several issues with it in the current form. I absolutely would not recommend any other community adopting it as-is, though hopefully soon we’ll have a more final version.

It doesn't need an overseeing foundation to take opaque decisions, and
focus on what's really important: the code.

Note that we can do this in FreeBSD, because we have an elected Core Team. The FreeBSD Foundation has spent the last 15 or so years finding its current role (and has offered the LLVM Foundation the benefit of this experience). Unlike the Foundation, which is an independent entity from the project (though one that consults with Core on a regular basis and provides valuable services to the project), Core is 100% accountable to the FreeBSD project. Every two years, anyone active committer (defined as someone who has committed something to a FreeBSD repository in the last year) is entitled to vote for the new Core Team (and, of course, to stand for election).

This means that the final authority for any issue with the project rests with the committers: if a Core Team is seen as not representing the views of the project, then it can be replaced. Thus, having Core as the enforcers of the CoC is not delegating administration of the community outside of the community.

No Code of Conduct can work if it is externally imposed - it must codify what the community believes is acceptable behaviour, allow people outside of the community to understand the ideals of that community, and present a clear line for members of the community to understand where they’ve crossed it. As I’ve recently learned, this is a nontrivial endeavour.

Again, the code of conduct advisory committee would be made up of people who are current members of the community.

As for the LLVM Foundation board, it was designed to made up of people who are active in the LLVM project (and not just by submitting patches as there are many important roles in the project). You seem to apply that the board is made up of people outside the community, which it is not. Their term is 2 years, where they can be re-elected or new board members brought in. I’m happy to send you our Bylaws if you are interested.

-Tanya

Love that! +1!