# Contributing ## Found a Bug? If you find a bug in the source code, you can help us by submitting an issue to our GitHub Repository. Even better, you can submit a Pull Request with a fix. **Considering making your first Pull Request?** You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github) ## Pull Requests 1. Fork the project 2. Implement feature/fix bug & add test cases 3. Ensure test cases & static analysis runs successfully - run `./gradlew check` 4. Submit a pull request to `master` branch Please include unit tests where necessary to cover any functionality that is introduced. ## Coding Guidelines * All Kotlin code must follow [Kotlin's Coding Conventions](https://kotlinlang.org/docs/reference/coding-conventions.html). * All Java code must follow [Google's Java Code style](https://google.github.io/styleguide/javaguide.html), the only excption being that annotations on members or classes may be on the same line (no forced line break). * All features or bug fixes **must be tested** by one or more unit tests/specs * All public API methods **must be documented** in the KDoc/JavaDoc and potentially in the user guide. ## Commit messages Each commit message consists of a header, a body and a footer. The header has a special format that includes a type and a subject: ``` :