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