Ruby Code of Conduct

From https://bugs.ruby-lang.org/issues/12004

I am the creator of the Contributor Covenant, a code of conduct for Open Source projects. At last count there are over 13,000 projects on Github that have adopted it. This past year saw adoption of Contributor Covenant by a lot of very large, very visible projects, including Rails, Github’s Atom text editor, Angular JS, bundler, curl, diaspora, discourse, Eclipse, rspec, shoes, and rvm. The bundler team made code of conduct integration an option in the gem creation workflow, putting it on par with license selection. Many open source language communities have already adopted the code of conduct, including Elixir, Mono, the .NET foundation, F#, and Apple’s Swift. RubyTogether also adopted a policy to only fund Ruby projects that had a solid code of conduct in place.

Right now in the PHP community there is a healthy debate about adopting the Contributor Covenant. Since it came from and has been so widely adopted by the Ruby community at large, I think it’s time that we consider adopting it for the core Ruby language as well.

Our community prides itself on niceness. What a code of conduct does is define what we mean by nice. It states clearly that we value openness, courtesy, and compassion. That we care about and want contributions from people who may be different from us. That we pledge to respect all contributors regardless of their race, gender, sexual orientation, or other factors. And it makes it clear that we are prepared to follow through on these values with action when and if an incident arises.

I’m asking that we join with the larger Ruby community in supporting the adoption of the Contributor Covenant for the Ruby language. I think that this will be an important step forward and will ensure the continued welcoming and supportive environment around Ruby. You can read the full text of the Contributor Covenant at https://www.contributor-covenant.org/version/1/3/0/code-of-conduct/ and learn more at http://contributor-covenant.org/.

Thanks for your consideration and I look forward to hearing your thoughts.

I have posted my thoughts because I don’t think the CCoC reflects MINSWAN as well as one written specifically for the Ruby community could.

What do you think?

Yeah. I weighed in. I agree with what Matz said:

Hi,

I agree with the spirit of anti harassment. I hope the community being free from any personal attacks nor trolling.
But I have a few concern about the wording in the proposed Code of Conduct, for example:

Project maintainers have the right and responsibility to remove…

or

…permanently removed from the project team

PostgreSQL CoC is far better fit to my intention.

Matz.

He covers pretty much some of the points I was trying to make.

We’ve already had plenty of discussion on here about CoCs. I removed all existing ones from my projects and put some bible verses in their place :slight_smile: and I titled the git revision with a the quote “be excellent to each other” from Bill and Teds Excellent Adventure.

1 Like

That made me :043:

I was going to ask Matz for a link to the PG COC cos I couldn’t find it - but didn’t want him to think I was stoopid :lol: anyone know where it is? I could only find the one for their conference.

This is my latest post in the issue:

Matz,

Please don’t feel like you have to act now. It would be totally fine to thank everyone for bringing the matter to your attention and saying that you would now like some time to think about it. That could be a few weeks or a few months - there is no rush. You have been running things absolutely fine for over 20 years - a few months without a CoC isn’t going to kill anyone.

I do feel that rushing into one could create more problems that it would solve - particularly if it is based on the CCoC - which I feel has a negative, unnecessarily antagonistic tone and is connected to an unpleasant episode in our very community (Opal controversy). Contrast it to the positive open-armed tone of the Sass community guidelines: http://sass-lang.com/community-guidelines

Aston

First, let me make sure I understand - that was a long thread that I skimmed due to time constraints. A code of conduct was proposed. Matz preferred that a CoC not be adopted because he felt that it would bog everyone down in “bureaucracy”. What is the issue that the people who disagree with Matz have? That not adopting an enforceable code of conduct renders the CoC meaningless?

1 Like

I think Matz (quite rightly) saw that the proposed ‘CCoC’ is flawed and said that he would prefer something more like the Postgres CoC. (Personally I think something more like the Sass would be ideal.)

I do think that he probably needs to incorporate one now - partly because people are demanding something be done about ‘problematic’ members of the community and partly because it is now a common thing to have in place as it helps spell out what is and isn’t acceptable in a community (which, Ruby is) and makes it easier to deal with problems as they can be measured against a set of rules. CoC’s should, eradicate very long threads like that one about every single issue that might have otherwise not have been covered by one - so in the long run it actually helps save time while making everyone feel welcome and treated as a human being should be - with a little respect.

Assuming this is Postgres CoC, I can’t see too much difference other than the proposed CoC in the Ruby bugs.lang thread turns the project maintainer into the one responsible to enforce the CoC which Matz said he didn’t want to take on. Someone feel free to correct any ignorance on my part…

Given the time involved in just maintaining an open source project on top of a day job (which I assume Matz has), I can understand Matz’s position. Perhaps one alternative that wasn’t proposed is that the project (or Ruby itself) can adopt a Code of Conduct “ambassador” that will deal with these issues…This way Matz can focus on the technical issues which demand his time but someone who wants to help mitigate misunderstandings can do so. Certainly it seems like a compromise between the 2 sides if I’m reading right.

1 Like

Correct.

2 Likes

Good that Ruby is getting a COC but glad that Matz is not rushing into anything:

OK, that’s enough.

We will set up some form of CoC in the future. Let me think for a while which one we are going to choose.

Matz.

It’s up The Ruby Community Conduct Guideline

The Ruby Community Code of Conduct
We have picked the following code of conduct based on PostgreSQL CoC, for Ruby developer’s community for safe, productive collaboration. Each Ruby related community (conference etc.) may pick their own CoC.

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.

Looks like a great start, though points 1 and 3 are not needed or are phrased as well as they could be. For instance it’s ok not to be tolerant of certain views & opinions (but that doesn’t mean you should be rude or condescending to those that hold them - which is covered by point 2 anyway).

I would consider changing it to:

  • 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, give others the benefit of doubt.
  • Behaviour which can be reasonably considered harassment will not be tolerated.

OR (my preferred version)

  • 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, give others the benefit of doubt and in the context of technical issues, assume their intentions are well meant.
  • Behaviour which constitutes harassment will not be tolerated.

@AstonJ Personally I think the wording they chose are the best they could have done.

This is exact wording I gave in the long issue thread and it’s words I live by. I couldn’t be happier with the wording they chose. My liberties remain un-infringed upon :smile:

1 Like