# Contributing If you're here because you want to contribute - thank you! When contributing to this repository, please first discuss the change you wish to make either via an [issue](https://github.com/amugofjava/anytime_podcast_player/issues) or [email](mailto:anytime@amugofjava.me.uk). ## Reporting a bug Report a bug by [opening a new issue](https://github.com/amugofjava/anytime_podcast_player/issues) - it's that easy! ## Contributing code 1. Fork the repo and create a branch from `master`, giving your a branch a descriptive name, for example `bug/2-bug-name`; if it's a feature/enhancement give it a meaningful name, for example: `feature/sleep-timer` 2. If you've added code that should be tested: add tests. 3. If the code you are contributing is not trivial, please ensure your code is commented. This not only helps when reviewing pull requests, but also helps other developers who may be new to the code. 4. Ensure the test suite passes. 5. Make sure your code lints. 6. Format your code with `dartfmt --line-length 120`. Note that the project uses 120 chars and not the default 80. Most IDEs will do this for you on save but, if not, you may need to do this manually. 7. Squash your commits. If you have made several commits, but they are all part of the same bug fix or feature request, please squash them down to a single commit; this both helps the pull request approval process and keeps the history cleaner. If you've never squashed commits before there is a good article [here](https://medium.com/@slamflipstrom/a-beginners-guide-to-squashing-commits-with-git-rebase-8185cf6e62ec), or you can reach out to [me](mailto:anytime@amugofjava.me.uk) if you need some help. 8. Issue a pull request. ## License By contributing, you agree that your contributions will be under the BSD-style license defined in the [LICENSE](LICENSE) file.