23 May 2018
In November 2015, we introduced the Go Code of Conduct.
It was developed in a collaboration between
the Go team members at Google and the Go community.
I was fortunate to be one of the community members
invited to participate in both drafting and then enforcing
the Go Code of Conduct.
Since then, we have learned two lessons about
limitations in our code of conduct that restricted us from
being able to cultivate the safe culture
essential to Go’s success.
The first lesson we learned is that toxic behaviors by
project participants in non-project spaces can have a
negative impact on the project affecting the security and safety of
community members. There were a few reported
incidents where actions took place outside of project spaces
but the impact was felt inside our community. The specific
language in our code of conduct restricted our ability to
respond only to actions happening “in the official
forums operated by the Go project”. We needed a way
to protect our community members wherever they are.
The second lesson we learned is that the demands required
to enforce the code
of conduct place too heavy of a burden on volunteers.
The initial version of the code of conduct presented the
working group as disciplinarians. It was soon clear
that this was too much, so in early 2017 we changed the group’s role
to that of advisors and mediators.
Still, working group community members
reported feeling overwhelmed, untrained, and vulnerable.
This well-intentioned shift left us without an enforcement mechanism
without solving the issue with overburdened volunteers.
In mid-2017, I represented the Go project in a meeting with
Google’s Open Source Programs Office and Open Source Strategy Team
to address the shortcomings in our respective
codes of conduct, particularly in their enforcement.
It quickly became clear that our problems had a lot in common,
and that working together on a single code of conduct for all
of Google’s open source projects made sense.
We started with the text from the
Contributor Covenant Code of Conduct v1.4
and then made changes, influenced by
our experiences in Go community and our collective experiences in open source.
This resulted in the Google code of conduct template.
Today the Go project is adopting this new code of conduct,
and we’ve updated golang.org/conduct.
This revised code of conduct retains much of the intent, structure and
language of the original Go code of conduct while making two critical
changes that address the shortcomings identified above.
First, the new code of conduct makes clear that people who
participate in any kind of harassment or inappropriate behavior,
even outside our project spaces, are not welcome in our project spaces.
This means that the Code of Conduct applies outside
the project spaces when there is a reasonable belief that
an individual’s behavior may have a negative
impact on the project or its community.
Second, in the place of the working group,
the new code of conduct introduces a single Project Steward
who will have explicit training and support for this role.
The Project Steward will receive reported violations
and then work with a committee,
consisting of representatives from the Open Source Programs Office
and the Google Open Source Strategy team,
to find a resolution.
Our first Project Steward will be Cassandra Salisbury.
She is well known to the Go community as a member of Go Bridge,
an organizer of many Go meetups and conferences,
and as a lead of the Go community outreach working group.
Cassandra now works on the Go team at Google
with a focus on advocating for and supporting the Go community.
We are grateful to everyone who served on the original Code of
Conduct Working Group. Your efforts were essential in creating an
inclusive and safe community.
We believe the code of conduct has contributed to the
Go project becoming more welcoming now than it was in 2015,
and we should all be proud of that.
We hope that the new code of conduct will help protect our community
members even more effectively.