Week 2 - Codes of Conduct

What is a Code of Conduct?

Many open source projects have a “Code of Conduct” that provide a set of guidelines on how contributors should act when representing the project and how they should treat each other. Many, including Go’s code of conduct, are based on the Contributor Covenant’s code of conduct template. Some sample’s from Go’s document are “be friendly and welcoming”, and “productive communication requires effort. Think about how your words will be interpreted.”

While a lot of the guidelines outlined in these documents may seem like “common sense”, I feel as though they are still supremely useful. If, for a moment, we accept that they are common sense, then I see no harm in providing a reminder to contributors to treat each other with kindness and respect, and to have an official document stating that these are the expectations in the community. However, I think it is reasonable to claim that these expectations are not common sense. The communities working on these projects are often global in scope, and as such they have an enormous range of cultural and personal backgrounds. It is important to set standards of conduct when you have no idea what “common sense” is for the people in your community. Without these kinds of documents, I would expect open source communities to be more toxic places, and have fewer contributors and make less progress as a result.

Go’s Code of Conduct

“Go”, an open source programming language, has a code of conduct based on a template provided by the Contributor Covenant. One notable difference between Go’s code of conduct and the template on Contributor Covenant is that in the line:

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

Go’s document omits “sex characteristics.” Perhaps this is some sort of politically driven change Go has made, or perhaps they simply have based their code on an older version of CC’s that didn’t include this part. I hesitate to draw any solid conclusions on the purpose of this edit without more information. I do find it strange, though.

Another change is that Go replaced the section titled “enforcement” with a section titled “conflict resolution.” Both of these sections cover what steps to take when the code of conduct is violated, but Go seems to be encouraging contirbutors to solve their conflicts themselves before getting project leadership involved. To me, this change comes off as Go trying to take a more “hands off” approach to moderation.

Eclipse’s Code of Conduct

Eclipse is an open source IDE. It has a code of conduct, too. It is also adapted from Contributor Covenant, but it has a noticably different structure when compared to the Go one. The biggest change is that it has a much more robust enforement section. There are sections titled “Enforcement,” “Responsibility,” “Investigation of Potential Code Violations,” and “Actions.” It seems that Eclipse is far more interested in actually enforcing their code of conduct than Go, whose attitude seems to be that they are just hopeful that people will follow their rules. I would be curious to know if Eclipse has had some negative experiences in the past that made them feel this was necessary, or if it is simply just a difference in philosophy.

Sugar Labs’s Code of Conduct

Sugar Labs The Sugar Labs code of conduct, on the other hand, is not based on Contributor Covenant’s, but rather the Ubuntu Code of Conduct. It has a different structure that is more focused on specific actions rather than general guidelines to follow. One section stood out to me as being completely absent from Go’s is the section on “stepping down”. This section focuses on how a contributor, when they choose to stop contributing to a project, should take steps to make sure that their departure is as non-disruptive as possible. Personally, I prefer Sugar Labs’s code of conduct. I like the way it reads as sort of a crash course on how to contribute to the community, instead of a list of rules. I think they are both effective, though.

Mozilla’s Code of Conduct

Mozilla’s code of conduct is not labeled as a code of conduct, but rather “community participation guidelines” (which, to my eyes at least, seems to be essentially the same thing?). It lists many codes of conduct as its inspiration, including the Ubuntu code of conduct. As such, it is most similar to the SugarLabs document, especially in the sense that it offers more actionable instructions, but it has a lot of unique sections to it, such as “lead by example” and “understand different perspectives.” It, like Eclipse, seems a lot more interested in enforcement, which a section dedicated to unacceptable behavior and consequences that will result. It also, notably, has a section dedicated to in-person events, something that these other organization I would assume aren’t large enough in scale to need. This code of conduct was the longest one I reviewed.

Written before or on January 30, 2025