Developer Guidelines
注釈
First read The Akka Contributor 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