First read The Akka Contributor Guidelines.
The Akka code style follows the Scala Style Guide . The only exception is the style of block comments:
/** * Style mandated by "Scala Style Guide" */ /** * Style adopted in the Akka codebase */
Akka is using Scalariform to format the source code as part of the build. So just hack away and then run sbt compile and it will reformat the code according to Akka standards.
The full process is described in The Akka Contributor Guidelines. In summary:
- Make sure you have signed the Akka CLA, if not, sign it online.
- Pick a ticket, if there is no ticket for your work then create one first.
- Fork akka/akka. Start working in a feature branch.
- When you are done, create a GitHub Pull-Request towards the targeted branch.
- When there's consensus on the review, someone from the Akka Core Team will merge it.
Please follow the conventions described in The Akka Contributor Guidelines when creating public commits and writing commit messages.
All code that is checked in should have tests. All testing is done with ScalaTest and ScalaCheck.
- Name tests as Test.scala if they do not depend on any external stuff. That keeps surefire happy.
- Name tests as Spec.scala if they have external dependencies.
Included in the example is an sbt trait for multi-JVM testing which will fork JVMs for multi-node testing. There is support for running applications (objects with main methods) and running ScalaTest tests.
You can use the 'NetworkFailureTest' trait to test network failure.