Contributing guide

Scala Internals

Get a peek into the inners of the Scala compiler.

Report an issue

File a bug report or a feature request.

Documentation

Improve the documentation itself.

Community issues

Get cracking on some easy to approach issues.

Hacker's guide

Learn to write good code and improve your chances of contributing to the Scala galaxy.

Hall of Fame

Track your rockstar status in the community.

Why contribute a patch to Scala?

Just to name a few common reasons:

  • contributing a patch is the best way to make sure your desired changes will be available in the next Scala version
  • Scala is written in Scala, so going through the source code and patching it will improve your Scala-fu
  • last but not least, you will make it into the Scala Contributor Hall of Fame.

The main Scala project consists of the standard Scala library, the Scala reflection and macros library, the Scala compiler and the Scaladoc tool. This means there’s plenty to choose from when deciding what to work on. Typically the scaladoc tool provides a low entry point for new committers, so it is a good first step into contributing.

On the Scala bug tracker you will find many bugs that are marked as good starting points to contributing (“community” bugs) or that are not currently assigned and that you could pick up. Once you decided on a ticket to look at, see the next step on how to proceed further.

If you are interested in contributing code, we ask you to sign the Scala Contributor License Agreement, which allows us to ensure that all code submitted to the project is unencumbered by copyrights or patents.


I have this idea that I’d like to add to Scala, how do I start?

The first step to making a change is to discuss it with the community at large, to make sure everyone agrees on the idea and on the implementation plan. Starting point (“community”) bugs are usually uncontroversial, so you can jump right ahead to hacking the scala source tree and filing a pull request. For larger changes it is best to announce the change on the scala-internals mailing list and get developer feedback. For really complex changes, a Scala Improvement Process (SIP) document might be required, but the first step is always to discuss it on the mailing list.

Contributions, big or small, simple or complex, controversial or undisputed, need to materialize as patches against the Scala project source tree. The hacker guide will explain how to materialize your idea into a full-fledged pull request against the Scala code base.