<!--{
	"Title": "Go Community Code of Conduct",
	"Path":  "/conduct",
	"Template": true
}-->

<style>
ul {
	max-width: 800px;
}
ul ul {
	margin: 0 0 5px;
}
</style>

<h2 id="about">About the Code of Conduct</h2>

<h3 id="why">Why have a Code of Conduct?</h3>

<p>
Online communities include people from many different backgrounds.
The Go contributors are committed to providing a friendly, safe and welcoming
environment for all, regardless of age, disability, gender, nationality, race,
religion, sexuality, or similar personal characteristic.
</p>

<p>
The first goal of the Code of Conduct is to specify a baseline standard
of behavior so that people with different social values and communication
styles can talk about Go effectively, productively, and respectfully.
</p>

<p>
The second goal is to provide a mechanism for resolving conflicts in the
community when they arise.
</p>

<p>
The third goal of the Code of Conduct is to make our community welcoming to
people from different backgrounds.
Diversity is critical to the project; for Go to be successful, it needs
contributors and users from all backgrounds.
(See <a href="https://blog.golang.org/open-source">Go, Open Source, Community</a>.)
</p>

<p>
With that said, a healthy community must allow for disagreement and debate.
The Code of Conduct is not a mechanism for people to silence others with whom
they disagree.
</p>

<h3 id="spaces">Where does the Code of Conduct apply?</h3>

<p>
If you participate in or contribute to the Go ecosystem in any way,
you are encouraged to follow the Code of Conduct while doing so.
</p>

<p>
Explicit enforcement of the Code of Conduct applies to the
official forums operated by the Go project (“Go spaces”):
</p>

<ul>
    <li>The official <a href="https://github.com/golang/">GitHub projects</a>
        and <a href="https://go-review.googlesource.com/">code reviews</a>.
    <li>The <a href="https://groups.google.com/group/golang-nuts">golang-nuts</a> and
        <a href="https://groups.google.com/group/golang-dev">golang-dev</a> mailing lists.
<li>The #go-nuts IRC channel on Freenode.
</ul>

<p>
Other Go groups (such as conferences, meetups, and other unofficial forums) are
encouraged to adopt this Code of Conduct. Those groups must provide their own
moderators and/or working group (see below).
</p>

<h2 id="values">Gopher values</h2>

<p>
These are the values to which people in the Go community (“Gophers”) should aspire.
</p>

<ul>
<li>Be friendly and welcoming
<li>Be patient
    <ul>
    <li>Remember that people have varying communication styles and that not
        everyone is using their native language.
        (Meaning and tone can be lost in translation.)
    </ul>
<li>Be thoughtful
    <ul>
    <li>Productive communication requires effort.
        Think about how your words will be interpreted.
    <li>Remember that sometimes it is best to refrain entirely from commenting.
    </ul>
<li>Be respectful
    <ul>
    <li>In particular, respect differences of opinion.
    </ul>
<li>Be charitable
    <ul>
    <li>Interpret the arguments of others in good faith, do not seek to disagree.
    <li>When we do disagree, try to understand why.
    </ul>
<li>Avoid destructive behavior:
    <ul>
    <li>Derailing: stay on topic; if you want to talk about something else,
        start a new conversation.
    <li>Unconstructive criticism: don't merely decry the current state of affairs;
        offer—or at least solicit—suggestions as to how things may be improved.
    <li>Snarking (pithy, unproductive, sniping comments)
    <li>Discussing potentially offensive or sensitive issues;
        this all too often leads to unnecessary conflict.
    <li>Microaggressions: brief and commonplace verbal, behavioral and
        environmental indignities that communicate hostile, derogatory or negative
        slights and insults to a person or group.
    </ul>
</ul>

<p>
People are complicated.
You should expect to be misunderstood and to misunderstand others;
when this inevitably occurs, resist the urge to be defensive or assign blame.
Try not to take offense where no offense was intended.
Give people the benefit of the doubt.
Even if the intent was to provoke, do not rise to it.
It is the responsibility of <i>all parties</i> to de-escalate conflict when it arises.
</p>

<h2 id="unwelcome_behavior">Unwelcome behavior</h2>

<p>
These actions are explicitly forbidden in Go spaces:
</p>

<ul>
<li>Insulting, demeaning, hateful, or threatening remarks.
<li>Discrimination based on age, disability, gender, nationality, race,
    religion, sexuality, or similar personal characteristic.
<li>Bullying or systematic harassment.
<li>Unwelcome sexual advances.
<li>Incitement to any of these.
</ul>

<h2 id="moderation">Moderation</h2>

<p>
The Go spaces are not free speech venues; they are for discussion about Go.
These spaces have moderators.
The goal of the moderators is to facilitate civil discussion about Go.
</p>

<p>
When using the official Go spaces you should act in the spirit of the “Gopher
values”.
If you conduct yourself in a way that is explicitly forbidden by the CoC,
you will be warned and asked to stop.
If you do not stop, you will be removed from our community spaces temporarily.
Repeated, willful breaches of the CoC will result in a permanent ban.
</p>

<p>
Moderators are held to a higher standard than other community members.
If a moderator creates an inappropriate situation, they should expect less
leeway than others, and should expect to be removed from their position if they
cannot adhere to the CoC.
</p>

<p>
Complaints about moderator actions must be handled using the reporting process
below.
</p>

<h2 id="reporting">Reporting issues</h2>

<p>
The Code of Conduct Working Group is a group of people that represent the Go
community. They are responsible for handling conduct-related issues.
Their purpose is to de-escalate conflicts and try to resolve issues to the
satisfaction of all parties. They are:
</p>

<ul>
	<li>Aditya Mukerjee &lt;dev@chimeracoder.net&gt;
	<li>Andrew Gerrand &lt;adg@golang.org&gt;
	<li>Dave Cheney &lt;dave@cheney.net&gt;
	<li>Jason Buberel &lt;jbuberel@google.com&gt;
	<li>Peggy Li &lt;peggyli.224@gmail.com&gt;
	<li>Sarah Adams &lt;sadams.codes@gmail.com&gt;
	<li>Steve Francia &lt;steve.francia@gmail.com&gt;
	<li>Verónica López &lt;gveronicalg@gmail.com&gt;
</ul>

<p>
If you encounter a conduct-related issue, you should report it to the
Working Group using the process described below.
<b>Do not</b> post about the issue publicly or try to rally sentiment against a
particular individual or group.
</p>

<ul>
<li>Mail <a href="mailto:conduct@golang.org">conduct@golang.org</a> or
    <a href="https://golang.org/s/conduct-report">submit an anonymous report</a>.
    <ul>
    <li>Your message will reach the Working Group.
    <li>Reports are confidential within the Working Group.
    <li>Should you choose to remain anonymous then the Working Group cannot
        notify you of the outcome of your report.
    <li>You may contact a member of the group directly if you do not feel
        comfortable contacting the group as a whole. That member will then raise
        the issue with the Working Group as a whole, preserving the privacy of the
        reporter (if desired).
    <li>If your report concerns a member of the Working Group they will be recused
        from Working Group discussions of the report.
    <li>The Working Group will strive to handle reports with discretion and
        sensitivity, to protect the privacy of the involved parties,
        and to avoid conflicts of interest.
    </ul>
<li>You should receive a response within 48 hours (likely sooner).
    (Should you choose to contact a single Working Group member,
    it may take longer to receive a response.)
<li>The Working Group will meet to review the incident and determine what happened.
    <ul>
    <li>With the permission of person reporting the incident, the Working Group
        may reach out to other community members for more context.
    </ul>
<li>The Working Group will reach a decision as to how to act. These may include:
    <ul>
    <li>Nothing.
    <li>A request for a private or public apology.
    <li>A private or public warning.
    <li>An imposed vacation (for instance, asking someone to abstain for a week
        from a mailing list or IRC).
    <li>A permanent or temporary ban from some or all Go spaces.
    </ul>
<li>The Working Group will reach out to the original reporter to let them know
    the decision.
<li>Appeals to the decision may be made to the Working Group,
    or to any of its members directly.
</ul>

<p>
<b>Note that the goal of the Code of Conduct and the Working Group is to resolve
conflicts in the most harmonious way possible.</b>
We hope that in most cases issues may be resolved through polite discussion and
mutual agreement.
Bannings and other forceful measures are to be employed only as a last resort.
</p>

<p>
Changes to the Code of Conduct (including to the members of the Working Group)
should be proposed using the
<a href="https://golang.org/s/proposal-process">change proposal process</a>.
</p>

<h2 id="summary">Summary</h2>

<ul>
<li>Treat everyone with respect and kindness.
<li>Be thoughtful in how you communicate.
<li>Don’t be destructive or inflammatory.
<li>If you encounter an issue, please mail <a href="mailto:conduct@golang.org">conduct@golang.org</a>.
</ul>

<h3 id="acknowledgements">Acknowledgements</h3>

<p>
Parts of this document were derived from the Code of Conduct documents of the
Django, FreeBSD, and Rust projects.
</p>
