diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..b7b7c8d2 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,61 @@ +# Contributing to Spring REST Docs + +Spring REST docs is released under the Apache 2.0 license. If you would like to +contribute something, or simply want to work with the code, this document should help you +to get started. + +## Sign the contributor license agreement + +Before we accept a non-trivial patch or pull request we will need you to sign the +[contributor's license agreement (CLA)][1]. Signing the contributor's agreement does not +grant anyone commit rights to the main repository, but it does mean that we can accept +your contributions, and you will get an author credit if we do. Please use "Andy +Wilkinson" in the project lead field when you complete the form. + + +## Code conventions and housekeeping + +None of these is essential for a pull request, but they will all help + +- Make sure all new `.java` files to have a simple Javadoc class comment with at least an + `@author` tag identifying you, and preferably at least a paragraph on what the class is + for. +- Add the ASF license header comment to all new `.java` files (copy from existing files + in the project) +- Add yourself as an `@author` to the .java files that you modify substantially (more + than cosmetic changes). +- Add some Javadocs +- Add unit tests that covers and new or modified functionality +- Whenever possible, please rebase your branch against the current master (or other + target branch in the main project). +* When writing a commit message please follow [these conventions][2]. Also, if you are + fixing an existing issue please add `Fixes gh-nnn` at the end of the commit message + (where nnn is the issue number). + +## Working with the code + +### Building from source + +To build the source you will need to use Java 8 – the main project only requires Java 7 +but the sample projects use Java 8. + +The code can be built with Gradle: + +``` +$ ./gradlew build +``` + +### Importing into Eclipse + +The project has Gradle's Eclipse plugin applied. Eclipse project and classpath metadata +can be generated by running the `eclipse` task: + +``` +$ ./gradlew eclipse +``` + +The project can then be imported into Eclipse using `File -> Import…` and then selecting +`General -> Existing Projects into Workspace`. + +[1]: https://support.springsource.com/spring_committer_signup +[2]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html \ No newline at end of file