This Code of Conduct covers our behaviour as contributors/comitters of the Scala Team, as well as those participating in any Scala moderated forum, mailing list, wiki, web site, IRC channel, hackathon, public meeting or private correspondence. Scala moderators are appointed by EPFL / Typesafe to maintain the health of the community and will arbitrate in any dispute over the conduct of a member of the community.
Note: This should not be interpreted like a legal document. It’s a statement of intent, and a guideline for collaboration.
The code of conduct consists of a few simple rules:
(1) Be Respectful
The Scala community is made up of a diverse set of individuals and backgrounds. Everyone can make a contribution to Scala. Disagreement is no excuse for poor behavior. Also, many users coming to Scala might have different background than others. Not knowing a particular domain is not just cause for rude behavior. If someone is suggesting concepts that go beyond your basic understanding, patiently asking for more information is the right way to go. Treat each other with respect in all interactions.
A few examples for clarification.
Abusive language, such as:
is never welcome. The same goes for personal attacks like the following:
It’s obvious you’re a troll.
Snide comments, like the following:
You really haven’t comprehended anything I’m saying.
are generally unhelpful. What you could have said:
I think perhaps my point was unclear. Let’s rehash:
(2) Be Courteous
Whether posting to a mailing list, or submitting a bug report we value your contribution to Scala. When working with another’s work, be courteous and professional. It’s not courteous to demand responses, insult pull requests or post condescending bug reports. In that same vein, avoid posting messages with little to no content on the mailing list. We have a lot of people in the community, let’s keep our signal to noise ratio high, and set emotions aside before coming to the table.
(3) Be Excellent
Strive to improve in all things. Strive to better Scala, and improve understanding. Improve your own teaching styles. Change the way we think about code design. Scala is a gateway into a new world of software design, and we’re constantly learning new things and opening new avenues. Keep an open mind to try new things, and strive to improve what we already know.
(4) Be Thorough
No matter what it is, responding to a question, fixing a bug, writing a proposal, make sure the contribution is thorough. Don’t leave things half written or half done. While the evolution of Scala is a continual process, incomplete work is often of negative benefit. At the same time, contributors will come and go, as with any open source community. If a contributor needs to drop something, take measures to ensure someone else is willing to pick it up, or notify the other maintainers.
Violating the Code
If a community member refuses to abide by the Code of Conduct, via personal attacks, abusive language or snide comments, then the following actions will be taken:
- Issued a warning On the first offense, one of the Scala moderators will issue a warning about the unacceptable behavior.
- Put under moderation On the second offense, a user may be placed under moderation. This will continue for a maximum of three months. If behavior improves, a user can leave moderated status. If behavior degrades, it can lead to #3.
- Removal from community If a user has already been placed under moderation and returned, or has not learned to be respectful and courteous to others, it will constitute a removal from the Scala community, including all forums the Scala moderators are responsible for.
No Job postings
The scala forums will no longer allow job listings to be posted to the mailing list. While we’re all very glad to see more and more Scala jobs, we’d prefer if these listing were kept in more appropriate forums.
The Mailing Lists
The Scala mailing lists are split into several sub-lists:
- scala-user This is a mailing list for beginners/users of scala. No question is a dumb question on Scala user. No a priori knowledge of math, functional programing, java, or other topics should be assumed on this list. Any question can and should receive a courteous and insightful answer.
- scala-debate This is the ‘anything goes’ list. You can bring up any issue, any loosely scala-related topic. While professional courtesy and respect must be maintained, this is where discussion on controversial topics can occur, or “what-if” type questions.
- scala-internals This is the list relating to compiler/library development. If you’re into the actual day to day nuts and bolts of jenkins, pull requests and compiler bugs, this is the place to hang out. New implementations are discussed here, after being proposed to the general public.
- scala-language This list is for questions relating to the language itself and its specification. This includes deep topics like “Why do implicits work this way” or “What does Foo extends Any mean?”
- scala-sips This list is for collaboration and feedback regarding actively developed new features for Scala. A SIP includes both the proposal process, as well as the implemenetation and integration into scala core. If you want to see what’s coming down the pipe and you’d like to be involved, this is the mailing list for you.
- scala-tools This list is specifically for tooling around Scala, such as emacs, maven, ant and gedit. If you have a question, this may be the right list for you.
- scala-announce This list is for announcements only. All posts are moderated.