RFC: Introducing an LLVM Community Code of Conduct

Greetings everyone,

On behalf of the board of the LLVM Foundation, I’d like to start the process of introducing a formal code of conduct for the community.

For a long time, various members of the community have been enforcing basic reasonable and respectful behavior, but to an outsider this may not be obvious. A public code of conduct advertises the behavior we expect of community members and clarifies our stance. Having this is something the board feels very strongly about and we know many others in the community do as well. We also think it is important that we establish this prior to the upcoming developer meeting.

When researching this for the board, I looked at a large number of example codes of conduct from various conferences and communities, and I kept coming back to the Django Project’s code of conduct which I think is an extremely good fit for the LLVM community (several other open source projects have ended up using it as well). I have adapted it for our community and our needs, and have a text version below.

Some important considerations:

  • It covers all of the different ways our community has of interacting, not just a mailing list or the conference.
  • It makes very clear the kinds of conduct that are unacceptable, which in research has proven to be very important for such codes of conduct to be effective in practice.
  • It has specific instructions for reporting violations and gives those who report issues reasonable expectations for what the response will be. Again, in my research this has been identified as being a very important aspect to making a code of conduct effective in practice.
  • It does not try to be pedantic or have an overly complex set of rules.

We think that this strikes a good balance and would like to propose the following document for the LLVM project. Once all the comments are addressed, we plan to add it to the LLVM documentation and link to it from relevant places. The “Reporting Guidelines” will be a separate (linked) document for folks to reference if needed. We will also start the process of forming and organizing an advisory committee to handle these kinds of issues.

-Chandler, on behalf of the board

Greetings everyone,

On behalf of the board of the LLVM Foundation, I’d like to start the
process of introducing a formal code of conduct for the community.

For a long time, various members of the community have been enforcing
basic reasonable and respectful behavior, but to an outsider this may not
be obvious. A public code of conduct advertises the behavior we expect of
community members and clarifies our stance. Having this is something the
board feels very strongly about and we know many others in the community do
as well. We also think it is important that we establish this prior to the
upcoming developer meeting.

When researching this for the board, I looked at a large number of example
codes of conduct from various conferences and communities, and I kept
coming back to the Django Project’s code of conduct which I think is an
extremely good fit for the LLVM community (several other open source
projects have ended up using it as well). I have adapted it for our
community and our needs, and have a text version below.

Some important considerations:
- It covers all of the different ways our community has of interacting,
not just a mailing list or the conference.
- It makes very clear the kinds of conduct that are unacceptable, which in
research has proven to be very important for such codes of conduct to be
effective in practice.
- It has specific instructions for reporting violations and gives those
who report issues reasonable expectations for what the response will be.
Again, in my research this has been identified as being a very important
aspect to making a code of conduct effective in practice.
- It does not try to be pedantic or have an overly complex set of rules.

We think that this strikes a good balance and would like to propose the
following document for the LLVM project. Once all the comments are
addressed, we plan to add it to the LLVM documentation and link to it from
relevant places. The “Reporting Guidelines” will be a separate (linked)
document for folks to reference if needed. We will also start the process
of forming and organizing an advisory committee to handle these kinds of
issues.

-Chandler, on behalf of the board

----
# LLVM Community Code of Conduct #
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 ground rules that we ask people to adhere to.

This isn’t an exhaustive list of things that you can’t do. Rather, take it
in 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
The LLVM Foundation. This includes IRC channels, mailing lists, bug
trackers, LLVM events such as the developer meetings and socials, and any
other forums created by the project that the community uses for
communication. It applies to all of your communication and conduct in these
spaces, including emails, chats, things you say, slides, videos, posters,
signs, or even t-shirts you display in these 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
report it by emailing conduct@llvm.org. For more details please see our
Reporting Guidelines.

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

- *Be considerate.* Your work will be used by other people, and you in
turn 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
into a personal attack. It’s important to remember that a community where
people feel uncomfortable or threatened is not a productive one. Members of
the LLVM 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
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.
  - Repeated harassment of others. In general, if someone asks you to
stop, then stop.

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

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

I think , "see" is excessive in the above phrase :

please see feel free to contact

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

----
# Reporting Guide #
If you believe someone is violating the code of conduct we ask that you
report it to the LLVM Foundation by emailing conduct@llvm.org. *All
reports will be kept confidential.* In some cases we may determine that a
public statement will need to be made. If that's the case, the identities
of all victims and reporters will remain confidential unless those
individuals instruct us otherwise.

If you believe anyone is in physical danger, please notify appropriate law
enforcement first. If you are unsure what law enforcement agency is
appropriate, please include this in your report and we will attempt to
notify them.

If the violation occurs at an event such as a Developer Meeting, you can
also reach out to any of the event organizers or staff to report it. If you
cannot find one of the organizers, the hotel staff can locate one for you.
We will also post detailed contact information for specific events as part
of each events’ information. Event organizers and staff will be prepared to
handle the incident and able to help. Your report will still be kept
confidential exactly as above, but also feel free to (anonymously if
needed) email conduct@llvm.org if needed.

In your report please include:
- Your contact info (so we can get in touch with you if we need to follow
up)
- Names (real, nicknames, or pseudonyms) of any individuals involved. If
there were other witnesses besides you, please try to include them as well.
- When and where the incident occurred. Please be as specific as possible.
- Your account of what occurred. If there is a publicly available record
(e.g. a mailing list archive or a public IRC logger) please include a link.
- Any extra context you believe existed for the incident.
- If you believe this incident is ongoing.
- Any other information you believe we should have.

## What happens after you file a report? ##
You will receive an email from the LLVM Foundation Code of Conduct
Advisory Committee acknowledging receipt within 24 hours (and will aim for
much quicker than that).

The Advisory Committee will immediately meet to review the incident and
determine:
- What happened.
- Whether this event constitutes a code of conduct violation.
- Who the bad actor was.
- Whether this is an ongoing situation, or if there is a threat to
anyone's physical safety.
- If this is determined to be an ongoing incident or a threat to physical
safety, the committee's immediate priority will be to protect everyone
involved. This means we may delay an "official" response until we believe
that the situation has ended and that everyone is physically safe.

Once the working group has a complete account of the events they will make
a decision as to how to respond. Responses may include:
- A private reprimand from the working group to the individual(s) involved.
- A public reprimand.
- An imposed vacation (i.e. asking someone to "take a week off" from a
mailing list or IRC).
- A permanent or temporary ban from some or all LLVM spaces (mailing
lists, IRC, etc.)
- A request for a public or private apology.
- Nothing (if we determine no violation occurred).

If not resolved within one week, we'll respond within one week to the
original reporter with an explanation of why the situation is not yet
resolved.

Once we've determined our final action, we'll contact the original
reporter to let them know what action (if any) we'll be taking. We'll take
into account feedback from the reporter on the appropriateness of our
response, but we don't guarantee we'll act on it.

Finally, the Advisory Committee will make a report on the situation to the
LLVM Foundation board. The board may choose to make a public statement
about the incident.

## Appealing ##
Only permanent resolutions (such as bans) may be appealed. To appeal a
decision of the working group, contact the LLVM Foundation Board at
board@llvm.org with your appeal and the board will review the case.

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

_______________________________________________

Mehmet Erol Sanliturk

Yes, thanks. Will fix before publishing anything.

-Chandler

Well said and thank you for writing this up.

-eric

+1

Отправлено с iPad

13 окт. 2015 г., в 7:35, Eric Christopher via llvm-dev <llvm-dev@lists.llvm.org> написал(а):

Writing all this more or less from the sidelines, but I have seen the interaction in various communities, some working well, others not so well.
Take it for what it's worth.

On behalf of the board of the LLVM Foundation, I’d like to start the
process of introducing a formal code of conduct for the community.

For a long time, various members of the community have been enforcing basic
reasonable and respectful behavior, but to an outsider this may not be
obvious. A public code of conduct advertises the behavior we expect of
community members and clarifies our stance. Having this is something the
board feels very strongly about and we know many others in the community do
as well.

I agree with that.

> We also think it is important that we establish this prior to the

upcoming developer meeting.

16 days for laying that kind of groundwork is a bit rushed.

[...] the Django Project’s code of conduct [...]

Some important considerations:
- It covers all of the different ways our community has of interacting, not
just a mailing list or the conference.
- It makes very clear the kinds of conduct that are unacceptable, which in
research has proven to be very important for such codes of conduct to be
effective in practice.

What research? Is it published?

Also, the problem with enumerating all the inacceptable behaviour is that the text tends to become TL;DR. Which means permanent discomfort: I never fully read the rules, so I'm never fully sure that I'm not violating the CoC, nor am I sure whether others violate it.

In terms of size and complexity, the proposed CoC is shorter than the typical bulletin board CoC, so it's not bad; however, it think it could be made more compact.

- It has specific instructions for reporting violations

Good.

> and gives those who

report issues reasonable expectations for what the response will be. Again,
in my research this has been identified as being a very important aspect to
making a code of conduct effective in practice.

I believe that such a code is more relevant to the decisionmakers than to the community members. Community members look at what behaviour is being sanctioned in what ways, not so much at the code.
I think the code should describe that. Along the lines of "please be decent, we will sanction people, look below for the guidelines that the advisory committee is applying".
It may be a good idea to publish decisions and the reasoning. There are reasons against doing so, but I think it's the only way that people will be able to form reasonable expectations.

- It does not try to be pedantic or have an overly complex set of rules.

Very much agreed!

We think that this strikes a good balance and would like to propose the
following document for the LLVM project. Once all the comments are
addressed, we plan to add it to the LLVM documentation and link to it from
relevant places. The “Reporting Guidelines” will be a separate (linked)
document for folks to reference if needed. We will also start the process
of forming and organizing an advisory committee to handle these kinds of
issues.

Looks like a good plan.

# LLVM Community Code of Conduct #
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
ground rules that we ask people to adhere to.

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

Too much text. The only person to really read this the one looking for loopholes.

> In addition,
> violations of this code outside these spaces may affect a person's
> ability to participate within them.

This is vague and threatening.
"Behave or we may sanction you in some unspecified manner."

Up to this point, the text is trying to cover too many bases and

If you believe someone is violating the code of conduct, we ask that you
report it by emailing conduct@llvm.org. For more details please see our
Reporting Guidelines.

Good.

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

Leave the last sentence out. It's already covered by the "do not attack people in person" guide below, so it's just increasing the overall text size.

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

Try to cut that down a bit.

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

The commentary should be slashed to 40-50%.

- *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
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.
   - Repeated harassment of others. In general, if someone asks you to stop,
then stop.

This paragraph could be shortened to something along the lines of "never talk about anything except what's happening *inside* the community; and never, never, never attack people in person".

- *When we disagree, try to understand why.* Disagreements, both social and
technical, happen all the time and LLVM is no exception. It is important
that we resolve disagreements and differing views constructively.

Agreed.

> Remember

that we’re different. The strength of LLVM comes from its varied community,
people from a wide range of backgrounds.

Reword that as a promise of future improvement, rather than a statement of facts (about which people could disagree).
E.g. "the more diverse the views present in a community, the more angles it has to attack a specific problem; in this way, diversity builds community strength".

> 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
helping to resolve issues and learning from mistakes.

True and important to mention; I'm not sure whether it belongs here.
Maybe there should be a separate "tips & tricks for successful in-community interaction" section, because this isn't actually code of conduct.

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

Good.

# Reporting Guide #
If you believe someone is violating the code of conduct we ask that you
report it to the LLVM Foundation by emailing conduct@llvm.org. *All reports
will be kept confidential.* In some cases we may determine that a public
statement will need to be made. If that's the case, the identities of all
victims and reporters will remain confidential unless those individuals
instruct us otherwise.

If you believe anyone is in physical danger, please notify appropriate law
enforcement first. If you are unsure what law enforcement agency is
appropriate, please include this in your report and we will attempt to
notify them.

If the violation occurs at an event such as a Developer Meeting, you can
also reach out to any of the event organizers or staff to report it. If you
cannot find one of the organizers, the hotel staff can locate one for you.
We will also post detailed contact information for specific events as part
of each events’ information. Event organizers and staff will be prepared to
handle the incident and able to help. Your report will still be kept
confidential exactly as above, but also feel free to (anonymously if
needed) email conduct@llvm.org if needed.

In your report please include:
- Your contact info (so we can get in touch with you if we need to follow
up)
- Names (real, nicknames, or pseudonyms) of any individuals involved. If
there were other witnesses besides you, please try to include them as well.
- When and where the incident occurred. Please be as specific as possible.
- Your account of what occurred. If there is a publicly available record
(e.g. a mailing list archive or a public IRC logger) please include a link.
- Any extra context you believe existed for the incident.
- If you believe this incident is ongoing.
- Any other information you believe we should have.

## What happens after you file a report? ##
You will receive an email from the LLVM Foundation Code of Conduct Advisory
Committee acknowledging receipt within 24 hours (and will aim for much
quicker than that).

Typo: "and *we* will aim for much quicker than that"

The Advisory Committee will immediately meet to review the incident and
determine:
- What happened.
- Whether this event constitutes a code of conduct violation.
- Who the bad actor was.
- Whether this is an ongoing situation, or if there is a threat to anyone's
physical safety.
- If this is determined to be an ongoing incident or a threat to physical
safety, the committee's immediate priority will be to protect everyone
involved. This means we may delay an "official" response until we believe
that the situation has ended and that everyone is physically safe.

Once the working group has a complete account of the events they will make
a decision as to how to respond. Responses may include:
- A private reprimand from the working group to the individual(s) involved.
- A public reprimand.
- An imposed vacation (i.e. asking someone to "take a week off" from a
mailing list or IRC).
- A permanent or temporary ban from some or all LLVM spaces (mailing lists,
IRC, etc.)
- A request for a public or private apology.
- Nothing (if we determine no violation occurred).

If not resolved within one week, we'll respond within one week to the
original reporter with an explanation of why the situation is not yet
resolved.

Once we've determined our final action, we'll contact the original reporter
to let them know what action (if any) we'll be taking. We'll take into
account feedback from the reporter on the appropriateness of our response,
but we don't guarantee we'll act on it.

Finally, the Advisory Committee will make a report on the situation to the
LLVM Foundation board. The board may choose to make a public statement
about the incident.

## Appealing ##
Only permanent resolutions (such as bans) may be appealed. To appeal a
decision of the working group, contact the LLVM Foundation Board at
board@llvm.org with your appeal and the board will review the case.

Just for the record: I'm not sure whether that's a good ruling.

One thing I'm missing is some way to evaluate the committee's work.
I'm not sure if that is feasible. I just believe that a dysfunctional, erratic or just incomprehensible-to-outsiders committee can be worse than having no committee at all.

Just my 5 cents, do with that as you wish :slight_smile:

Regards,
Jo

On behalf of the board of the LLVM Foundation, I’d like to start the process
of introducing a formal code of conduct for the community.

Hi Chandler,

I agree we need such guidelines, and I truly believe you're not trying
to promote which hunts, so maybe some of the text needs to be toned
down a bit.

Following some of the comments, it would be good to see the
annonymised result of your research, if at all possible. I understand
some descriptions might uniquely identify people. :slight_smile:

I also agree that some descriptions are too verbose, and trying to be
exhaustive, whereas any list will be incomplete, we might just as well
be short and meaningful. I don't think we need to be legal here, since
LLVM spans across so many countries, you won't be able to be free from
all of their idiosyncrasies.

- *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
exclusionary behavior aren't acceptable.

This sums up well. The rest is just outlining behaviours that occur
with extremely low frequencies on this community, some of which I have
never seen.

Another important thing to mention is the use of the English language
as an international communication protocol.

I haven't done the maths, but I believe most of the LLVM developers
don't speak English as their native tongue. Moreover, even between
English speaking countries, what's normal for some, is offensive for
others. This is at the core of any open source community and cannot be
ignored.

Therefore, we need a special mention for people that do get offended
to first, check with the offender to make sure there is intentional
harm, then chose between trying to solve on your own *privately*, or
reporting the case, as outlined by this document. Even the most
"obvious" offences may end up as just using the wrong English word.

Cultural differences are important, and if we start kicking people out
you may end up with contributors from a single "social style", say,
only "politically correct" people. Of course, this is a balance, and
the threshold is arbitrary. That's why I propose to encourage people
to resolve matters personally first, and try to identify malice before
reporting.

If you believe anyone is in physical danger, please notify appropriate law
enforcement first. If you are unsure what law enforcement agency is
appropriate, please include this in your report and we will attempt to
notify them.

Isn't this a bit too much? I mean, was there *ever* a case that people
were in any physical danger?

I think mentioning it once is ok, but you already have a bullet below
on this topic, I don't think we need a whole paragraph for that, too.

If the violation occurs at an event such as a Developer Meeting, you can
also reach out to any of the event organizers or staff to report it. If you
cannot find one of the organizers, the hotel staff can locate one for you.

s/hotel/venue/

Once the working group has a complete account of the events they will make a
decision as to how to respond.

How is this decision made? Will the accused be involved in all cases?
Can the accused defend him/herself before being judged?

I'd normally assume so, but the following paragraph worries me:

Only permanent resolutions (such as bans) may be appealed. To appeal a
decision of the working group, contact the LLVM Foundation Board at
board@llvm.org with your appeal and the board will review the case.

Here, you're separating what you can do with and without the right of
defence, as an executor.

It may be a way to avoid bureaucracy and get to the point, but it also
gives a lot of power to a foundation whose members were not voted, nor
chosen by the community in the first place.

I don't believe this is in the best interest of the community, since
the community has no say in it, nor control over it.

If at least the reporting committee's members were interested
volunteers, or voted representatives, then it'd be a matter of
replacing them if they abuse of power. Currently, we have no such
mechanism, nor guarantees that due diligence will be equivalent for
members of the public versus members of the Foundation.

I'm not saying it will, I'm just saying that if if does happen, we'll
have no control over it. I'd like to avoid getting there in the first
place.

cheers,
--renato

On behalf of the board of the LLVM Foundation, I’d like to start the process
of introducing a formal code of conduct for the community.

Hi Chandler,

I agree we need such guidelines, and I truly believe you're not trying
to promote which hunts, so maybe some of the text needs to be toned
down a bit.

Following some of the comments, it would be good to see the
annonymised result of your research, if at all possible. I understand
some descriptions might uniquely identify people. :slight_smile:

I also agree that some descriptions are too verbose, and trying to be
exhaustive, whereas any list will be incomplete, we might just as well
be short and meaningful. I don't think we need to be legal here, since
LLVM spans across so many countries, you won't be able to be free from
all of their idiosyncrasies.

- *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
exclusionary behavior aren't acceptable.

This sums up well. The rest is just outlining behaviours that occur
with extremely low frequencies on this community, some of which I have
never seen.

Another important thing to mention is the use of the English language
as an international communication protocol.

I haven't done the maths, but I believe most of the LLVM developers
don't speak English as their native tongue. Moreover, even between
English speaking countries, what's normal for some, is offensive for
others. This is at the core of any open source community and cannot be
ignored.

Therefore, we need a special mention for people that do get offended
to first, check with the offender to make sure there is intentional
harm, then chose between trying to solve on your own *privately*, or
reporting the case, as outlined by this document. Even the most
"obvious" offences may end up as just using the wrong English word.

I have seen several occasions of wrong English word, but this was never a problem in itself.
I guess non-native English speakers already know how easy it is to misunderstand words, so they account for that already.
English being as diverse culturally as it is, I guess even native English speakers already know this.

I wouldn't put that into the code of conduct but in the Tips & Tricks for Successful Community Interaction text.

Cultural differences are important, and if we start kicking people out
you may end up with contributors from a single "social style", say,
only "politically correct" people. Of course, this is a balance, and
the threshold is arbitrary. That's why I propose to encourage people
to resolve matters personally first, and try to identify malice before
reporting.

Just curious: Do people ever do it the other way around?

If you believe anyone is in physical danger, please notify appropriate law
enforcement first. If you are unsure what law enforcement agency is
appropriate, please include this in your report and we will attempt to
notify them.

Isn't this a bit too much? I mean, was there *ever* a case that people
were in any physical danger?

I'm aware of such things happening in social projects, but not in any technical one.
Maybe because perceived personal stakes are higher in a social context.

I think mentioning it once is ok, but you already have a bullet below
on this topic, I don't think we need a whole paragraph for that, too.

In particular, dwelling on the topic much gives an impression of LLVM being a community that needs a detailed response to physical threats.
I wouldn't want to give that impression even if that were the case, to avoid attracting the types that like a more violent community.

Once the working group has a complete account of the events they will make a
decision as to how to respond.

How is this decision made? Will the accused be involved in all cases?
Can the accused defend him/herself before being judged?

I'd normally assume so, but the following paragraph worries me:

Only permanent resolutions (such as bans) may be appealed. To appeal a
decision of the working group, contact the LLVM Foundation Board at
board@llvm.org with your appeal and the board will review the case.

Here, you're separating what you can do with and without the right of
defence, as an executor.

It may be a way to avoid bureaucracy and get to the point, but it also
gives a lot of power to a foundation whose members were not voted, nor
chosen by the community in the first place.

I don't believe this is in the best interest of the community, since
the community has no say in it, nor control over it.

If at least the reporting committee's members were interested
volunteers, or voted representatives, then it'd be a matter of
replacing them if they abuse of power. Currently, we have no such
mechanism, nor guarantees that due diligence will be equivalent for
members of the public versus members of the Foundation.

I'm not saying it will, I'm just saying that if if does happen, we'll
have no control over it. I'd like to avoid getting there in the first
place.

Ultimately the buck will stop somewhere.
If it's delegated back to the community via voting, it will promote election campaigns - remember: Where there's an office to hold, there's somebody who wants to hold it just to be important, not because that somebody is particularly suited for the job.

As long as the committee remains unimportant, things will be fine.
As soon as the committee becomes important, the LLVM project has already degenerated into a snake pit, and is likely to fork anyway.

So it may be undemocratic, but people can easily fork the situation, something that you can't do in a state.

Just my 2 cents.

Regards,
Jo

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

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.

David

I wouldn't put that into the code of conduct but in the Tips & Tricks for
Successful Community Interaction text.

Not my intention, either. I just mentioned as a rationale for
including the "check intentions first" topic, which is important even
on two closely related people, because of the nature of emails, IRCs,
time zones (I'm too tired when you're not), etc.

Just curious: Do people ever do it the other way around?

What do you mean?

In particular, dwelling on the topic much gives an impression of LLVM being
a community that needs a detailed response to physical threats.
I wouldn't want to give that impression even if that were the case, to avoid
attracting the types that like a more violent community.

Precisely my point. :slight_smile:

As long as the committee remains unimportant, things will be fine.
As soon as the committee becomes important, the LLVM project has already
degenerated into a snake pit, and is likely to fork anyway.

This sounds like an oxymoron, as if this policy only makes sense if
the non-representative foundation never tries to enforce it in a way
that the community doesn't accept. And if it does, the rest will flee.
Personally, I think this is a very unstable situation.

The foundation has some very important roles it can play in the
community, and mediating conflicts is one of them. But there are
others, for instance, making sure the conferences remain relevant,
improving testing and validation on supported targets, supporting
robust web infrastructure (pages, documents, mail, IRC), fostering the
use of LLVM on open and closed source projects, etc.

I'd argue that we all want the foundation to be very important in the
community as a whole, but for that to happen, we need representation.
Right now, the only visible part they're taking in the community is
related to the conferences (and that, they do well, though this is
probably more Tanya's merits than the foundation, as she was already
doing it well before). It's interesting that the first public
appearance becomes the unilateral and opaque enforcement of
"community" guidelines.

So it may be undemocratic, but people can easily fork the situation,
something that you can't do in a state.

I lost the metaphor, here... :slight_smile:

cheers,
--renato

Report first, then try to resolve directly.
My experience is that people try to resolve things directly and ask for help only when they find it doesn't work, but YMMV.

On behalf of the board of the LLVM Foundation, I’d like to start the process
of introducing a formal code of conduct for the community.

Hi Chandler,

I agree we need such guidelines, and I truly believe you're not trying
to promote which hunts, so maybe some of the text needs to be toned
down a bit.

Following some of the comments, it would be good to see the
annonymised result of your research, if at all possible. I understand
some descriptions might uniquely identify people. :slight_smile:

I also agree that some descriptions are too verbose, and trying to be
exhaustive, whereas any list will be incomplete, we might just as well
be short and meaningful. I don't think we need to be legal here, since
LLVM spans across so many countries, you won't be able to be free from
all of their idiosyncrasies.

- *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
exclusionary behavior aren't acceptable.

This sums up well. The rest is just outlining behaviours that occur
with extremely low frequencies on this community, some of which I have
never seen.

Another important thing to mention is the use of the English language
as an international communication protocol.

I haven't done the maths, but I believe most of the LLVM developers
don't speak English as their native tongue. Moreover, even between
English speaking countries, what's normal for some, is offensive for
others. This is at the core of any open source community and cannot be
ignored.

Therefore, we need a special mention for people that do get offended
to first, check with the offender to make sure there is intentional
harm, then chose between trying to solve on your own *privately*, or
reporting the case, as outlined by this document. Even the most
"obvious" offences may end up as just using the wrong English word.

Cultural differences are important, and if we start kicking people out
you may end up with contributors from a single "social style", say,
only "politically correct" people. Of course, this is a balance, and
the threshold is arbitrary. That's why I propose to encourage people
to resolve matters personally first, and try to identify malice before
reporting.

If you believe anyone is in physical danger, please notify appropriate law
enforcement first. If you are unsure what law enforcement agency is
appropriate, please include this in your report and we will attempt to
notify them.

Isn't this a bit too much? I mean, was there *ever* a case that people
were in any physical danger?

I don't know about the LLVM community specifically, but given the
number of face to face events, and the fact that alcohol is sometimes
involved near them, the opportunity for physical danger certainly
exists. Reminding people "contact LEO first" isn't a bad thing,
especially for anyone visiting from an area of the world where LEO may
not always be the appropriate first choice.

~Aaron

I don't know about the LLVM community specifically, but given the
number of face to face events, and the fact that alcohol is sometimes
involved near them, the opportunity for physical danger certainly
exists.

I still think this is going too far as a community policy... :slight_smile:

Reminding people "contact LEO first" isn't a bad thing,
especially for anyone visiting from an area of the world where LEO may
not always be the appropriate first choice.

That part I agree.

cheers,
--renato

Yes, people sometimes report first. And some might *not* try to resolve
directly, for various reasons. (Unable to deal with the event calmly;
feeling generally uncomfortable with confrontation; etc.) I sympathize
as I feel uncomfortable with it myself. Going through an intermediary
does run the risk of leaving the offender clueless as to what the actual
problem is, though (I've been there too).
--paulr

> As long as the committee remains unimportant, things will be fine.
> As soon as the committee becomes important, the LLVM project has already
> degenerated into a snake pit, and is likely to fork anyway.

This sounds like an oxymoron, as if this policy only makes sense if
the non-representative foundation never tries to enforce it in a way
that the community doesn't accept. And if it does, the rest will flee.
Personally, I think this is a very unstable situation.

I read that as "if the committee has to engage in an enforcement action
more than very rarely, then the community has already degenerated..."
Which is a sentiment I can fully agree with.
--paulr

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

Cheers,
Rafael

Also, the problem with enumerating all the inacceptable behaviour is
that the text tends to become TL;DR. Which means permanent discomfort: I
never fully read the rules, so I'm never fully sure that I'm not
violating the CoC, nor am I sure whether others violate it.

In terms of size and complexity, the proposed CoC is shorter than the
typical bulletin board CoC, so it's not bad; however, it think it could
be made more compact.

Compactness is a definite virtue. I remember attending a very successful
series of science-fiction conventions years ago, where the only formally
stated conduct policy was "You kill it, you eat it." More extensive
elaboration was deemed to be too prone to over-interpretation by people
trying to get away with stuff, without actually providing useful guidance.

As a year-round 95% online community, rather than a weekend convention
with dozens of physically present staff, LLVM probably does need something
a bit more detailed, but if the basic statement can't be reduced to a
screenful or so then it's too much.
--paulr

Btw, one other thing I noticed is that there are no counter examples.

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.

Some quick counter examples that come to mind as not being agains a
reasonable code of conduct:

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

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

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

Cheers,
Rafael

Good point. I agree, too.

--renato

The "No Code of Conduct" ( https://github.com/domgetter/NCoC ) version of this is "This project adheres to No Code of Conduct. We are all adults. We accept everyone's contributions. Nothing else matters."

I'm not advocating something like this, but I tend to agree with the sentiment that Django-style codes of conduct over-define and over-"legalize".

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

Michael