You are viewing the documentation for the 2.0 release in the 2.0.x series of releases. The latest stable release series is 2.7.x.
Implementation-wise, the following things should be avoided as much as possible:
- public mutable state
- global state
- implicit conversions
Also, be careful with introducing new, heavy external dependencies.
- run scalariform-format before commit
- prefer rebase
- bigger changesets
- java only APIs should go to
framework/play/src/main/java, package structure is
- java and scala APIs should be implemented the following way:
- implement the core API in scala
- if your component requires life cycle management or needs to be swappable, create a plugin, otherwise skip this step
- wrap core API for scala users (example)
- wrap scala API for java users (example)
§Testing and documentation
- each and every public facing method and class need to have a corresponding scaladoc or javadoc with examples, description etc.
- each feature requires either a functional test (
framework/integrationtest) or a spec (
- run Play’s integration test suite
framework/runtestsbefore pushing. If a test fails, fix it, do not ignore it.