OCaml Community Code of Conduct

Hello all! On behalf of the OCaml CoC committee, I’d like to present the proposed Code of Conduct for the OCaml community. We hope this is a step towards ensuring a friendly and inclusive community for everyone.

The CoC text, based on Contributor Covenant can be found here.

The committee

The current committee consists of the following people:

  • Louis Roché ( @Khady, Ahrefs)
  • Marcello Seri ( @mseri, University of Groningen)
  • Raja Boujbel ( @rjbou, OCamlPro)
  • Simon Cruanes ( @c-cube, Imandra)
  • Sonja Heinze (@pitag, Tarides)

Scope

The spaces within the scope of the committee at the moment are:

Timeline

The committee has discussed on the CoC text. We’d be happy to hear any feedback from the community. If all goes well, the CoC will be enforced roughly a month from now. We’ll keep this thread updated with any developments.

Role of OCaml Software foundation

While this effort is endorsed by the OCaml Software Foundation, they’re not directly involved with the committee’s operation or decisions by the committee on the enforcement, and this would remain the same in future.

Onboarding more projects

The committee is open to onboarding more projects under the umbrella of this CoC.

We see two ways to go forward:

(1) Projects adopt the CoC text and the project maintainers do the moderation work themselves.

(2)Projects adopt the CoC text and the committee would also act as arbitrers for violation reports submitted to them.

Ideally we could do a combination of both. Smaller projects could possibly adopt the latter and take help from the committee for enforcement, while bigger projects with capacity to do the moderation themselves can adopt the CoC text. The decision to accept projects into the umbrella lies with the committee.

We’re keen to hear any thoughts or suggestions for improvement. If you’re interested to adopt this CoC for your OCaml project, please don’t hesitate to post here or contact me (write to me at sudharg247 [at] gmail [dot] com or DM here) or any of the committee members (DM here).

27 Likes

Hi, what about the OCaml Discord? Do we know who owns/runs that?

1 Like

It is run by @bluddy :slightly_smiling_face:. It should also use the CoC if all goes well.

6 Likes

Every community must have policies to deal with bad actors. But centering those policies around DEI, which is fundamentally nothing more than a set of cult beliefs, does little more than open the door to bad actors who profess those beliefs in approved ways.

I’m disappointed to see this happening in the ocaml community, which I have held in high esteem precisely because of its realistic pragmatism.

3 Likes

Our community does need policies to deal with bad actors indeed, and we think this is an improvement over having nothing explicit. We do believe that diversity, equality, and inclusion, are important values that the OCaml community should encourage and follow. These are simple humanist values, and have nothing remotely related to cults; besides, the CoC is centered around behavior, not “beliefs”. There is no magic phrase that will allow someone to be abusive.

23 Likes

Thank you @sudha and the rest of the Code of Conduct committee. I’m extremely happy to see this step towards establishing a more inclusive and friendly community. I think this is a clear indication to anyone who passes by the community, that the members here really do care about making it a great, safe and friendly community to be a part of (I’m thinking particularly about Outreachy applicants and interns).

Once things are a bit more established (I’m sure you all have plenty on your plate!) I’d love to adopt this over on geocaml · GitHub. Thanks again :))

13 Likes

Great initiative.

I would suggest a different abbreviation than “CoC”. “OC3” or “OC4” would be more specific and bypass the naming issue that the Coq proof assistant already has.

2 Likes

Perhaps some part of the CoC could be simplified.

The first paragraph explicitly lists a set of protected classes (and if you compare it to older versions of the upstream CoC you’ll see it grows over time), and although the FAQ says " Contributor Covenant explicitly lists a set of protected classes; does this make it acceptable to discriminate or make others feel unwelcome based on other factors?[…] However, this is not an invitation for rules lawyers to seek loopholes, " I’m not sure that is entirely true.

Wouldn’t it be simpler if the CoC just said "make participation in our community a harassment-free experience for everyone, "? I think that is its intention, but by listing the protected classes it makes it look like legal text (which may be where it got inherited from), and that only legally relevant harassment should be avoided, and it glosses over some details related to software communities:

  • e.g. we should avoid harassing people behind “insert-your-favourite-language-or-tool-you-dont-like” too. That is not legally a protected class, but if you want to be truly inclusive and have the rule apply to everyone then you do want to avoid that too (whether that would legally be considered harassment or discrimination or not).
    But listing all characteristics that you don’t want discriminated against would make such a CoC infeasibly long (and probably still be incomplete).

OTOH some discrimination may be unintentional or unavoidable, e.g. a couple of things from the list:

  • language (may or may not be implied by nationality) - most discussions on this forum are in English (or French), are we (unintentionally) discriminating against those who do not know either of these languages? Knowing English is a requirement for participating in some parts of the community. I don’t think it is an unreasonable one, but nevertheless there is some unavoidable minimum level of knowledge required. In some cases translations may be available (automated translations may do a better or worse job depending on language and aren’t always a good choice).
  • age/body size: although there is no minimum age requirement, you do need to be old enough to have been taught how to read and write :slight_smile: but I don’t think this needs to be called out in the CoC, it is pretty obvious…
  • level of experience: there might be parts of the project that do require a minimum level of experience. E.g. basic learning questions are probably best avoided on issues on ocaml.org and asked on a discussion forum such as this one (or one focused on beginners). In that case you may be politely told to ask your question here instead. Doing so shouldn’t be a CoC violation.
  • education: obviously some minimum level is required, ideally some programming knowledge. People who don’t have it maybe (politely) directed to some of the learning areas of the website / some online courses.
  • accessiblity, e.g. we already had reports that this forum is not usable for blind users (whereas the old OCaml mailing list was). Are we unintentionally discriminating against due to a limitation/choice of forum software?

Perhaps instead of having a blanket list in the CoC it’d be useful to think what unintentional limitations do we currently have that could be addresses (e.g. accessiblity), and what limitations are acceptable in which parts of the community (e.g. there used to be a beginners mailing list, and it is not everyone wasn’t welcome on the main one, it is just that answers those kinds of questions on the beginners mailing list was just probably best for everyone involved, including the beginners…), and what you want to avoid is that you don’t exclude someone entirely from the community when you consider the union of these exclusions.

4 Likes

@Khady, @mseri, @rjbou, @c-cube, @pitag: thank you for your work on this, and for asking for feedback. I’m sure everyone wants a harassment-free community.

On the specifics: there are two major problems with the current text.

First, the list of characteristics reflects the fringe political views of the original author rather than the standard lists found in (e.g. French or English) law. For example, “sex” is not included, even though harassment of women is extremely common. Similarly, the omission of “beliefs” appears to be by design rather than an oversight, since the original author has a history of harassing people on the basis of their expressed beliefs.

Second, the scope is unclear. Among the most serious offence is “disparagement of classes of individuals”, which warrants “a permanent ban from any sort of public interaction within the community”. Should an OCaml programmer who writes on her personal Twitter account “ugh, men are awful” be permanently banned from the OCaml community? Should endorsing Paul Graham’s Great Hackers essay (which says “The programmers you’ll be able to hire to work on a Java project won’t be as smart as the ones you could get to work on a project written in Python.”) be a bannable offence? Clearly nobody wants that, but that’s what the current text appears to say.

@edwin’s proposal above is the right solution to these issues:

Wouldn’t it be simpler if the CoC just said “make participation in our community a harassment-free experience for everyone”?

More specifically, the Ruby Community Conduct Guideline avoids these problems, and succinctly sets out expected standards of behaviour. Here’s the entire text:

This document provides community guidelines for a safe, respectful, productive, and collaborative place for any person who is willing to contribute to the Ruby community. It applies to all “collaborative space”, which is defined as community communications channels (such as mailing lists, submitted patches, commit comments, etc.).

  • Participants will be tolerant of opposing views.
  • Participants must ensure that their language and actions are free of personal attacks and disparaging personal remarks.
  • When interpreting the words and actions of others, participants should always assume good intentions.
  • Behaviour which can be reasonably considered harassment will not be tolerated.

I think adopting the current text would be a serious mistake that would damage the OCaml community. I hope that the committee will consider using something like the Ruby Community Conduct Guideline instead.

8 Likes

Hi,

Isn’t it included broadly in ‘sex characteristics, gender identity and expression’?

Second, the scope is unclear.

The scope was mentioned in Sudha’s original post, no?

And from the CoC: ‘This Code of Conduct applies within all community spaces,…’.

1 Like

I think that it’s a good idea to reuse an existing code of conduct rather than make our own. As a benefit of using a preexisting text, we can refer to the FAQ which gives answers to many valid questions that are asked here, such as the one about listing protected groups, or about whether it deals with contributor’s messages on social media. The website also lists some adopters of this text.

2 Likes

No, it isn’t. One indication of this is that legal texts such as the Canadian Human Rights Act list “sex” and “gender identity or expression” separately.

Unfortunately, mentioning something isn’t sufficient to make it clear. If it were, writing specifications would be a lot easier.

I agree, and that’s what I’m proposing.

1 Like

Thanks for the feedback @edwin and @yallop. We’ve noted your concerns and discussing them, and will get back with a detailed response.

2 Likes

I second @yallop’s concerns about “beliefs” being noticeably left out and the unclear scope of jurisdiction. I also would like to point out that the Contributor Covenant appears to be part of the GitHub organization “Ethical Source” (GitHub - EthicalSource/contributor_covenant: Pledge your respect and appreciation for contributors of all kinds to your open source project.), which seems to be some sort of “replacement” for free and open source software. I’m actually not trying to either argue for or against the idea that software licenses should prohibit software from being used for certain unethical purposes (e.g. I would be horrified to find out that software I wrote was used to commit war crimes, and I do think programmers should think about the ethical implications of their work). I would just like to note that the Contributor Covenant is associated with a movement that explicitly contradicts free/open source software, the current ethos that most OCaml projects are probably published as. Would adopting a code of conduct based on the Contributor Covenant bring an association between the OCaml community and the “ethical source” stance?

The CoC text seems to list them separately as well:

regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, […]

4 Likes

No, it doesn’t. “Sex” isn’t listed at all.

So your issue is not that it’s not separated it’s that “sex characteristics” is different than “sex”?

I’m not convinced that there is a significant difference between harassment based on the characteristics of a person’s sex and harassment based on a person’s sex. Not in the context of a code-of-conduct anyway.

Can you find an example where one wording would apply but not another?
More interestingly, could you find an example where someone might escape repercussion for their behaviour after they take a line of defense along the lines of ”but you see I wasn’t harassing them for the characteristics of their sex but actually I was harassing them for their sex so the code-of-conduct doesn’t apply”? I don’t really see that happening…

3 Likes

I’m not convinced that there is a significant difference between harassment based on the characteristics of a person’s sex and harassment based on a person’s sex.

In that case, why do you suppose the author chose to replace the standard term “sex” that appears in law with the term “sex characteristics”?

1 Like

My personal guess regarding that is that “sex characteristics” is more general, and applies in situation where the law is often lagging behind, such as intersex people. In some countries you’re lucky if there’s more than just “ male/ female” to tick.

5 Likes

I have no idea.

Of course every text reflects, to some level, the beliefs of their authors. I’m not disputing that.

Btw, if the author had chosen to use the same word as some other existing text, then that would also reflect their political beliefs. Aligning your vocabulary with some existing text would then show that your political beliefs somewhat align with those expressed in that text being copied.

I simply addressed your expressed concerns that the text as written would fail to protect harassment on the basis of sex. You said

For example, “sex” is not included, even though harassment of women is extremely common.

I addressed that point specifically, and now you are shifting the goal post of this specific thread of the conversation to be about lexical analysis and authorship.

1 Like