1Contributing
2============
3
4If you would like to contribute code to Dagger you can do so through GitHub by
5forking the repository and sending a pull request.
6
7When submitting code, please make every effort to follow existing conventions
8and style in order to keep the code as readable as possible.
9
10Where appropriate, please provide unit tests or integration tests. Unit tests
11should be JUnit based tests and can use either standard JUnit assertions or
12FEST assertions and be added to `<project>/src/test/java`.  Changes to build-time
13behaviour (such as changes to code generation or graph validation) should go into
14small maven projects using the `maven-invoker-plugin`.  Examples of this are in
15`core/src/it` and can include bean-shell verification scripts and other
16facilities provided by `maven-invoker-plugin`.
17
18Please make sure your code compiles by running `mvn clean verify` which will
19execute both unit and integration test phases.  Additionally, consider using
20http://travis-ci.org to validate your branches before you even put them into
21pull requests.  All pull requests will be validated by Travis-ci in any case
22and must pass before being merged.
23
24If you are adding or modifying files you may add your own copyright line, but
25please ensure that the form is consistent with the existing files, and please
26note that a Square, Inc. copyright line must appear in every copyright notice.
27All files are released with the Apache 2.0 license.
28
29Checkstyle failures during compilation indicate errors in your style and will
30be displayed in the console output of the build (including in Travis-CI output),
31or can be viewed in the `checkstyle-result.xml` file.
32
33Before your code can be accepted into the project you must sign the
34[Individual Contributor License Agreement (CLA)][1].
35
36
37 [1]: https://spreadsheets.google.com/spreadsheet/viewform?formkey=dDViT2xzUHAwRkI3X3k5Z0lQM091OGc6MQ&ndplr=1
38