👍🎉 First off, thanks for taking the time to contribute! 🎉👍
This document should provide guidelines and pointers for contributing to this project:
- Do you have a question?
- Have you found a bug?
- Have you written a patch that fixes a bug?
- Do you need a new Feature or want to modify an existing Feature?
- Code Style
- PR and Commit Style
- More details
Our primary conduit for addressing questions is via Google Groups. Please reach out to our Forum.
Please open Issues here on GitHub for bug reporting. Make sure to include the "bug" tag.
- Unless the fix is trivial (typo, cosmetic, doesn't modify behavior, etc.), there should be an issue associated with it. See Have you found a bug?.
- Wait for Issue Triage before you start coding.
- Create a feature branch off of master with a meaningful name (ideally referencing issue you created)
- Work on your change. Be sure to include JUnit test cases. This will greatly help maintainers while reviewing your change
- Run all tests locally prior to submission:
./mvnw clean verify -U
- Finally, you're ready to submit your Pull-Request 👍
- Start a discussion with the maintainers about the Feature
- Proceed after receiving positive feedback
- Follow the same process as fixing a bug
Our code style is mostly based on Robert C. Martin's "Clean Code: a Handbook of Agile Software Craftsmanship"
Some of the important TL;DRs:
- Spaces, not tabs
- Unix (LF), not DOS (CRLF) line endings
- Eliminate all trailing whitespace
- If you're writing a comment, consider if the code could be made more expressive
- Preserve existing formatting; i.e. do not reformat code for its own sake
- When in doubt, try to find existing examples of what you're trying to format
- Commit early and commit often. Still strive for descriptive commit messages though, as this helps during the review
- Once submitted, the review and discussion starts. If necessary, make adjustments in further commits
- Use your real name in commits
- Once the PR is approved ✅, clean up and prepare for merge
- Please attempt to squash and merge your commits before merging
We use the following convention for commit message title and body:
[ISSUE_REF]Short headline description of content
Longer description of the content of the commit and/or context of the change
ISSUE_REF
should be a GitHub issue number (#69
)
If there is information missing here, feel free to reach out! Also check out the GitHub Wiki