Week 2
Why Code of Conduct?
Having a Code of Conduct helps create a diverse, safe, and welcoming environment. This is especially important for open source projects, because they bring together people from different backgrounds, abilities, and communication styles. For a community like Go, diversity is essential to thrive, and a Code of Conduct sets shared expectations so contributors can collaborate without constant friction.
A Code of Conduct also asks community members to be patient with beginners and discourages harassment or discrimination based on factors such as religion, gender, or identity. When people feel respected and safe, they are more likely to participate and collaborate effectively.
It also provides a mechanism for resolving conflicts when they arise. When normal discussion breaks down, Go’s document includes concrete reporting instructions and explains how reports are handled.
For these reasons, other projects would definitely benefit from having a Code of Conduct as well,especially projects that are public, accept outside contributions, or have active discussion spaces.
Adapted from the Contributor Covenant
At the bottom of Go’s Code of Conduct, Go notes that it is adapted from the Contributor Covenant. (go.dev) The Go Code of Conduct makes several changes to the Contributor Covenant.
One difference is that Go adds a section called “Gopher values,” which is not present in the Contributor Covenant. This makes sense because the Go community is not only setting standards for acceptable behavior, but also describing the culture it wants to encourage across the community.
Another important difference is that Go expands the scope beyond official project spaces. In Contributor Covenant v1.4, the scope focuses on project spaces and on public spaces when someone is representing the project. Go adds that the Code of Conduct may also apply outside project spaces when the project stewards reasonably believe someone’s behavior could negatively affect the community. This likely reflects the idea that harmful behavior outside the project can still impact community members and the community climate.
In addition to Go, Eclipse also adopts the Contributor Covenant. (Eclipse Code of Conduct) However, because the Eclipse Foundation is a large organization with many projects, working groups, and interest groups, its Code of Conduct has a different structure and focus. It does not have community-specific values like Go’s “Gopher values,” and it includes more formal governance language. For example, Eclipse specifies that a Conduct Committee is responsible for administering the Code of Conduct, while Go’s document places responsibility on “project maintainers” and the Go Project Stewards.
Different forms of Code of Conduct
Different from the examples above, the Sugar Labs Code of Conduct is based on the Ubuntu Code of Conduct. Compared to Go, Sugar Labs’ document feels more like general community collaboration guidance. It focuses on collaboration norms (being considerate and respectful, handling disagreements, and participating constructively) rather than listing unacceptable behaviors in detail or outlining a very clear enforcement process.
I also found something quite different in my favorite open source project, iNaturalist:
iNaturalist Community Guidelines
Go’s Code of Conduct is clearly based on the Contributor Covenant structure, while iNaturalist’s guidance is more platform-specific. It addresses issues that are unique to iNaturalist, such as how to communicate during disagreements about species identification and how to handle sensitive or disturbing content (for example, dead animals). This difference makes sense because iNaturalist has to consider real-world impacts on wildlife and nature in addition to interpersonal behavior.
