Should restic adopt a code of conduct?

Hi everyone!

I’m fairly new to the community: I have contributed some documentation and issues. I hope to participate more in the community in the future. So far, my experience with the community was quite positive, which is a welcome change from other places on the internet, so already: thank you for that, you’re awesome. :slight_smile:

One thing I look at when I get involved with a new community, is the way the community is managed. So far, I am happy to see a forum and various accessible tools for newcomers: that is a good sign. Now one thing I feel is missing from the community is a code of conduct. I don’t think there has been any harassment or related problems yet in the Restic community. But it’s exactly at about that time that it is good to set preemptive code of conduct policies, before problems happen. It shows a clear stance against abusive or discriminatory behaviour, and makes people feel more welcome.

A code of conduct is not about establishing an absolutist set of moral guidelines over right and wrong: it’s more about establishing a process for when people feel flawed in their interactions in the community. It’s about setting expectations of behavior with each other. It’s also not a manual on how to make releases or decisions in the community: that belongs elsewhere. @fd0 found, for example, this governance guide from the i3 project:

A code of conduct is different. A commonly used code of conduct is the Covenant:

https://www.contributor-covenant.org/

There is a markdown version that could be adopted with only minor changes. What such an adoption would mean is simply that:

  1. a set of contact points would be established in case of problems
  2. an enforcement policy would be established (i often refer to the spirit of the django enforcement policies here)
  3. the document would be added to the source tree, with modification (specifically: the “enforcement” section needs to be modified)
  4. the above would be added to the project’s documentation

Note that this forum already has some set of guidelines:

https://forum.restic.net/guidelines

Those affect only the forum however: a code of conduct would cover all areas of operations of the Restic project: the GitHub issue queues, the forum, the IRC channel, the blog and so on.

More references regarding code enforcement:

Again: this is not because there is any trouble in the community (hopefully!). This is to help preventing (or having ways of managing) any future problems. It also serves as a standard landmark, like a LICENSE file, that provides expectations about how the community is managed.

There has been some discussions about this on IRC, where there was some interest in discussing this more broadly. I’m hoping this proposal will be welcome as a positive addition to the community: a code of conduct is not designed to change practices, but like any “standardization” attempt, it is aimed at consolidating what are already existing processes.

Thank you for your time!

I like the i3 governance document that @fd0 found. It’s good, short and concise. I personally feel there’s very little value to a CoC, for various reasons. I don’t want that opinion to affect other peoples’ input though.

So, I’d like to add a CoC to the project. I’ve had a look, and I like Django’s version of it:

https://www.djangoproject.com/conduct/

I like the clear language, and it matches what we already enforce here in the forum, on GitHub and on IRC. At the same time, we can document the governance model (BDFL), similar to what the i3 project did.

Do we really need an FAQ and an enforcement manual?

Thoughts?

1 Like

Thoughts:

  • No, I don’t think there’s a need for the/a FAQ - the text on that page is enough.

  • Try to make the text, e.g. the parts before the list, as neutral as possible - e.g. not specifically naming the places where communication about restic takes place, as that will require maintaining that list of places whenever things change.

  • Note that the text is licensed with Creative Commons Attribution license, so if it’s copied/used it probably needs an attribution or something like that.

  • I’m not sure about the reporting thing there, do we really need that guide? Maybe so, but an option is to start with just the text you linked to, and take it from there. It sets the expectations, which hopefully helps in 99% of the cases in the 1% of the times that the CoC will turn out to be needed in the first place. I’d suggest just keeping the info about where to mail when one feel there’s a violation of the CoC happening.

I don’t think so. In my instances, I refer to existing (e.g. Django’s) enforcement manual and documentation. What I did is basically this here:

Project maintainers are encouraged to follow the spirit of the Django Code of Conduct Enforcement Manual when receiving reports.

I think that’s enough for smaller organizations. If Restic becomes this monstruous project with hundreds of maintainers, maybe a specific manual should be drafted, but this should suffice to start with. :slight_smile: Besides, the point is to standardize what’s already there, not change everything and draft new processes…

Ah, good point, I haven’t thought about that yet.

I’ve proposed a CoC here: https://github.com/restic/restic/pull/1683

Waiting for all core contributors to signal consent, then I’ll merge it :slight_smile: