Week 2 - Code of Conduct
Part 1 Go Project
Visit the code of conduct document for the Go project. Read the document carefully. In your own words explain the benefits of having such a document for a project. Do you think other projects would benefit from having such a document?
- I believe having a code of conduct document will be beneficial to the development of the project. Although the core values highlighted by code of conduct docs are well-known and the community members already have a rough idea of them, such a document should still be set up because:
- the members of a certain community can be strongly biased in terms of gender, race, ethnicity s.t. the members may often fail to realize what kind of conduct is offensive or toxic.
- the conflicts arising from the violation of the code of conducts are mostly moral issues rather than legal issues, so there is no universal standard to resolve such conficts. The code of conduct document regulates how conflicts in the community should be resolved s.t. they can be settled properly and at minimal cost.
- In addition, if another project were to draft a code of conduct, it may refer to the standards and practices from this code of conduct document and make its own adaptions, benefiting from the document as well.
Follow the link at the bottom of the above document to the Contributor Covenant website. Try to explain why the Go project might have made those changes.
- The key differences between the Go code of conduct and Contributor Covenant code of conduct are: 1. Go adds an introduction to the Go project and specifies the ‘Gopher values’ in its version of code of conduct; 2. Go replaces the ‘Enforcement’ section in the original version with a ‘Conflict Resolution’. It’s likely that Go made these changes because 1. they want to highlight their distinctive community values; 2. they have more detailed practices to address conflicts (in contrast to ‘Enforcement’).
The Contributor Covenant website has a list of projects that adapted their code of conduct. Eclipse is one of the listed projects. Try to find the code of conduct document for Eclipse. Post the link as part of your answer. You will discover that this document has different structure and content than the one for the Go project. Try to explain why that is.
- link: https://www.eclipse.org/org/documents/Community_Code_of_Conduct.php
- The structure of Eclipse code of conduct document is different from that of Go Project as: 1. Go has ‘About’ and ‘Gopher values’, while Eclipse doesn’t; 2. Eclipse adds some entries in the ‘Our Standards’ section, compared; 3. Eclipse incorporates ‘Enforcement’‘Investigation of Potential Code Violations’‘Actions’‘No Retaliation’ to form a complete pipeline to handle conflicts.
- The differences are likely due to: 1. Eclipse does not have a unique set of values to emphasize (yet Go does), so it simply removes those sections; 2. Eclipse is more specific in terms of ‘what is thought of as violation’ and ‘how to deal with violation’. It’s also noteworthy that the Eclipse code of conduct has gone through some amendments, and the original version was pretty much the same as the Contributor Covenant version. My conjecture is that there WAS violation of the code in the Eclipse community, which made the community realize it’s necessary to include more standards and develop a serious process to handle violations.
Part 2 Sugar Lab
Visit the code of conduct document for the Sugar Labs project. Note that it is located in the legal section of their wiki page. Read through this document. Compare it to the code of conduct for the Go project. Is this document based on another code of conduct?
- Compared to the Go project code of conduct, the Sugar Labs one is
- similar, as Sugar Lab highlights its values with several sections as well;
- different, as the policy to handle conflicts is much more from the normal community members’ perspective in the Sugar Labs code of conduct, whereas Go projects explicity has an administration team to handle conflicts. It’s noteworthy that SugarLabs simply deletes the ‘Leadership, authority and responsibility’ section compared to the Ubuntu version. My guess is that an administration team is simply absent in Sugar Labs, and the resolution of conflicts depends on the effort of normal community members.
- Yes, as mentioned at the bottom of the page, the Sugar Labs code of conduct is based on the Ubuntu Code of Conduct.
Part 3 Huggingface
Pick an open source project. (It could be a project that you are familiar with, or a project that you are interested in, or something you encountered in one of the class discussions). Try to find the code of conduct document for that project. Note that it may not have a code of conduct or that it may be called differently. Include a link to it (if you find it) and compare it to the two “templates” that you looked at in parts 1 and 2.
- link: https://huggingface.co/code-of-conduct
- The Huggingface code of conduct is directly adapted from the Contributor Covenant code of conduct and only slightly different as it details the guidelines of ‘Enforcement’, which consists of 4 stages: ‘Correction’, ‘Warning’, ‘Temporary Ban’, and ‘Permanent Ban’.