Developer Guidelines
Loading

Developer Guidelines

Code Style

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.

Process

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.

Commit messages

Please follow the conventions described in The Akka Contributor Guidelines when creating public commits and writing commit messages.

Testing

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.

Actor TestKit

There is a useful test kit for testing actors: akka.util.TestKit. It enables assertions concerning replies received and their timing, there is more documentation in the Testing Actor Systems module.

Multi-JVM Testing

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.

NetworkFailureTest

You can use the 'NetworkFailureTest' trait to test network failure.

Contents