First, check out "Ruby's Rules for Core Developers", which you find on the Ruby Core page
This is the closest analog to the Crystal Contributor Code of Conduct that I know of.
Generally, the developers of Ruby should be familiar with the source code and the style of development used by the team. To be clear, the following guidelines should be honored when checking into Subversion:
All check-ins should be described in the ChangeLog, following the GNU conventions. (Many Ruby core developers use Emacs add-log mode, which can be accessed with the command C-x 4 a.)
Check-in dates should be given in Japan Standard Time (UTC+9).
The bulleted points from your ChangeLog should also be placed in the Subversion commit message. This message will be automatically mailed to the Ruby-CVS list after you commit.
Function prototypes are used throughout Ruby’s source code and its packaged extensions.
Please, do not use C++-style comments (//), Ruby’s maintainers instead prefer the standard C multi-line comment (/* .. */).
There are no mentions of anything censoring anybody's speech, no mentions of anti-harassment crap, or any of that stuff.
We are all adults here, or at least the vast majority of us are. We don't need playground rules in order to build something cool, and an Orwellian CoC is going to deter developers away from the entire Crystal platform.
There's a weird vibe out there these days, we've got Douglas Crockford being removed from JS conferences even though he's practically the JS godfather, and it sets a bad example for people to think that they can just block out anything they don't like, and that it's somehow WRONG to disagree with somebody.
There are going to be arguments, there are going to be people who disagree with other people but are still capable of working on the same project. There will NEVER be a situation where any large group of people agree with one another 100% of the time, never have any arguments, etc. It's never going to happen, and that's OK.
I am proposing that the CoC either be removed or replaced with something along the lines of
All non-Crystal related issues will be removed, all personalized language will be considered non-Crystal, and moved elsewhere.
We can talk smack to each other in IRC or on Skype or whatever, without having to enforce rules that suppresses people's opinions and make the Crystal platform look bad.
The use of sexualized language or imagery and unwelcome sexual attention or advances
Trolling, insulting/derogatory comments, and personal or political attacks
Public or private harassment
Publishing others' private information, such as a physical or electronic address, without explicit permission
Other conduct which could reasonably be considered inappropriate in a professional setting
This sounds like:
You can't say mean things, you can't say or do anything we don't approve of, even outside of the Crystal platform, and we reserve the right to subjectively determine what is professional and what isn't.
When it could sound like:
We are building Crystal, so ONLY Crystal-related discussions should be here, there should be no personal business or offtopic discussion here, you can use [IRC, Skype, Slack, Gitter, et al] for offtopic discourse.
https://github.com/domgetter/NCoC
Honestly, I just find it weird when people demand that there is a CoC, when the real world doesn't have one. What are you going to do when the random stranger says you look like a duck? Call the cops!?
If people can survive being on GameFAQs, where, if you disagree with someone's quote, you'll called every word in the dictionary, then they can survive without a CoC.
Oh, and I love Ceylon's: https://gitter.im/ceylon/user?at=55ae8078b7cc57de1d5745fb
Our open source community is a group of adults committed to developing awesome software that Just Works. Every other concern is subordinate to this goal. As adults, we recognize that there are certain kinds of childish behavior that are unwelcome in our community. We respond to such behavior by generally ignoring and/or—in extreme cases—making sport of, individuals who engage in such behavior.
Such behavior includes:
- attempts to control language and/or opinions of other community members: we’re an intellectually diverse community, and we respect other people’s opinions, which often differ from our own, even on topics about which we hold strong beliefs; further, we respect that every individual has their own unique voice in which they express their views, and so we look past the form of words used, in attempting to arrive at a charitable interpretation of their views
- exaggeration of minor incidents and disagreements: any community suffers occasional disagreements; since we’re adults, we always attempt to de-escalate such disagreements at the earliest opportunity; likewise, when given the chance to just leave a disagreement in the past, and get on with the job of writing code, that’s what we do
- intentional offense-taking: in our freethinking community, it’s any individual’s right to choose to be offended by any statement or incident; likewise, it is the right of any other community member to tell an offended individual to grow up and stop acting like a baby
— use of epithets to describe other community members: it’s neither polite, nor charitable, nor just to describe the harmless and generally fair-minded members of our community using loaded and divisive epithets like “racist”, “sexist”, “homophobe”, “bigot”, etc.- humorlessness: what’s the point of belonging to a community that doesn’t know how to laugh? In our community, humor is incentivized, and that includes occasional off-color or even offensive humor
- public shaming: participation in any orchestrated social media campaign with the purpose of ruining any person’s life and/or career is absolutely not tolerated and will result in immediate ostracization from our community
I'm not against the idea of a code of conduct in the sense of a standard that we hold ourselves to as we work on things. I'm opposed to the idea of a collective group controlling individuals' contributions to a platform that they are ALL a part of.
Personal discussions have no place in a professional product. I think that limiting the CoC to just THAT, just the idea of "no personal business, only Crystal stuff" then the problem solves itself.
The Crystal platform has no right to pass judgment on what people do outside of the Crystal platform. If me and some other guy constantly roast each other on Twitter, but then consistently push good commits every month, then there's no problem. If we start using the Git or mailing list or official IRC to fight with each other, that's where it crosses a line.
The content is less important than the context. The context of telling someone to go fuck themselves within a professional setting is WORSE than just some guy telling some other guy to go fuck himself. That's no big deal. It's the personalized aspect of the language that is worse than the language itself.
Hence, "only Crystal stuff" would be as effective a conduct guideline as we would ever conceivably need.
If someone feels offended because we have a CoC, so be it. I prefer for someone to feel safe in our community —including everywhere that community is involved— because we have a CoC. That means we care and won't accept inappropriate behavior from anybody —including the core team— and that we'll do our best to resolve issues when they arise.
I wish we didn't need a CoC. I wish we weren't all stupid at times. Yet, the World would be better with a Code of Conduct.
If you want to propose changes to our Code of Conduct, please do so in a nice manner. Using proper language and behavior, outlining where we could improve the care of our community.
That being said, we are following the proposed text from Code Covenant, which is better knowledgeable on this topic than us. Maybe you should actually raise your points to them?
How can anyone feel safe contributing to Crystal when the CoC explicitly mentions that private interactions are controlled under the CoC?
The NCoC is perfect for a programming language.
For me the only issues with CoC is that these discussions happen, and they only revolve around choosing a CoC rather than around problems that a community experiences because of the existence or absence of a CoC.
@wrq Two questions:
I remember the thread that started this:
During LuĂs Ferreira’s talk about Crystal at eurucamp, someone asked a question about the gender diversity of the core team and whether the language has a code of conduct. Unfortunately, there is not much gender diversity among contributors. I think adding a code of conduct to the project would be a good first step toward improving this.
The whole thing started with the assumption that if there was "not much gender diversity", it was due to issues in the Crystal community that the CoC would, at least partially, address.
One doesn't have to read too much between lines to feel unfairly and/or preemptively accused of hostile behavior towards women programmers. But it was accepted, so I'd say that your battle was lost before it began, @wrq.
Lost before it began? I'm not exactly committing my work into Crystal, am I?
People are not going to contribute to something that's guaranteed not to serve them. I have Crystal extensions that I use privately, and I'd be willing to bet that others do as well. I'd never throw that away into the core repo when there's this notion that if the Crystal platform catches me telling some off that they'll just ban me out of the community.
This issue is the only contribution I am willing to make to Crystal as a platform, and there's thousands more like me that are thinking the same thing. A programming language should seek to attract as broad an audience as possible through minimizing barriers not by creating new ones "because there aren't enough women in the field."
If there's 3 men for every 2 women that graduate with STEM degrees than it's an obvious assumption that more men will do more programming work than women.
Telling men "oh there's too many men in programming and not enough women, so we're going to put a little chokehold on male developers until there's more female developers" it's not actually going to solve the root issue of accessible knowledge. Encouraging more women to pursue STEM degrees instead of Gender Studies degrees or whatever would effectively tackle that issue, at least in an initial sense. There's lots of other improvements that could happen as well, obviously.
The assumption was wrong. Engaging with a CoC repels developers. It might attract some, hell, it might even attract more than it repels, but it's ethically deplorable in the same way that burning books "because they're offensive" is.
@wrq Last chance before I close this issue: can you answer my two questions?
Close this issue and you will cement the notion that Crystal censors dissent, permanently.
The use of sexualized language or imagery and unwelcome sexual attention or advances
Trolling, insulting/derogatory comments, and personal or political attacks
Public or private harassment
Publishing others' private information, such as a physical or electronic address, without explicit permission
Other conduct which could reasonably be considered inappropriate in a professional setting
@wrq Maybe I was being too subtle but I was agreeing with your sentiment. Just not with your hope that the CoC would go away.
@asterite If I may.
Did you have a problem contributing to Crystal so far? If so, what did we do wrong and how can we improve it?
One could argue that this could have been asked of the person who proposed the CoC in the first place, since it's the CoC that carries the preconcieved notion that people would otherwise do harm to each other.
Where does it say that private interactions are controlled under the CoC?
Our Standards -> Examples of unacceptable behavior by participants include: -> Public or private harassment (emphasis mine)
With no clear definition of harassment, of course.
@Elixor I knew well what you meant, I was carrying out that sentiment into it's logical conclusion, which is that the efforts of programmers who would otherwise be interested in contributing to Crystal, will and are refraining from doing so. I could have telegraphed that a bit better.
Most helpful comment
https://github.com/domgetter/NCoC
Honestly, I just find it weird when people demand that there is a CoC, when the real world doesn't have one. What are you going to do when the random stranger says you look like a duck? Call the cops!?
If people can survive being on GameFAQs, where, if you disagree with someone's quote, you'll called every word in the dictionary, then they can survive without a CoC.