# Contributing to Chatto

## Asking a Question

Please don't file an issue just to ask a question.
You'll get a faster response in [our Gitter room](https://gitter.im/chatto-framework/community)

## Reporting a Bug

### Before Submitting a Bug Report

- **Make sure you're on the latest version.** If you're not on the most recent version, your problem may have been solved already. Upgrading is always the best first step.
- **Try older versions.** If you're already on the latest release, try rolling back a few minor versions and see if the problem goes away. This will help devs narrow down when the problem first arose in the commit log.
- **Try searching the [list of opened issues](https://github.com/badoo/Chatto/issues?q=is%3Aissue+is%3Aopen)** to see if the problem has already been reported. If it has, please add a comment to the existing issue instead of opening a new one.

### What To Put In Your Bug Report

Explain the problem and include additional details to help maintainers reproduce the problem:

- **Use a clear and descriptive title** for the issue.
- **Describe the exact steps to reproduce the problem** in as many details as possible.
- **Provide code samples.**
- **Include screenshots and animated GIFs** which could clearly demonstrate the problem. You can use [this tool](https://www.cockos.com/licecap/) to capture GIFs on macOS
- **Explain which behaviour you expect to see and why.**
- **Provide information about your environment.**
    - Chatto version
    - iOS version
    - Xcode version
- **Add info how Chatto is intergrated** to your project. Is it CocoaPods, Carthage or manual?

## Contributing Changes

If you'd like to introduce new functionality or fix a bug, it's always best to discuss it with us in [our Gitter room](https://gitter.im/chatto-framework/community).

When creating a pull request please consider following:

- **Always make a new branch** for your work. This makes it easier for others to take just one set of changes form your repository.
- **Please do not submit unrelated changes** in the same pull request.
- **Use a clear and descriptive title** for the pull request.
- **Describe a clear list of things** that you have done in this pull request.
- **Include relevant issue number** if applicable.
- **Consider enabling "Allow edits by maintainers" checkmark.** So we could push additional changes in your pull request.
- **Consider adding unit tests.** We'd be really grateful if you add unit test for your feature/bugfix!