# Contributing

Thank you for your interest in contributing to the sqs-consumer.

- If you're unsure if a feature would make a good addition, you can always [create an issue](https://github.com/bbc/sqs-consumer/issues/new) first. Raising an issue before creating a pull request is recommended.
- We aim for 100% test coverage. Please write tests for any new functionality or changes.
- Any API changes should be fully documented.
- Make sure your code meets our linting standards. Run `npm run lint` to check your code.
- Maintain the existing coding style. There are some settings in `.jsbeautifyrc` to help.
- Be mindful of others when making suggestions and/or code reviewing.

## Reporting Issues

Before opening a new issue, first check that there is not already an [open issue or Pull Request](https://github.com/bbc/sqs-consumer/issues?utf8=%E2%9C%93&q=is%3Aopen) that addresses it.

If there is, make relevant comments and add your reaction. Use a reaction in place of a "+1" comment:

- 👍 - upvote
- 👎 - downvote

If you cannot find an existing issue that describes your bug or feature, create a new issue using the guidelines below.

1. Pick an appropriate template for the type of issue [from here](https://github.com/bbc/sqs-consumer/issues/choose)
2. Provide as much detail as possible
3. Follow your issue in the issue tracking workflow

## Contributing Code

If you do not have push access to the repository, please [fork it](https://help.github.com/en/articles/fork-a-repo). You should then work on your own `main` branch.

Otherwise, you may clone this repository and create a working branch with a _kebab-case_ name reflecting what you are working on (e.g. `fix-the-thing`).

Follow the setup instructions in the [README](../README.md).

Ensure all your code is thoroughly tested and that this testing is detailed in the pull request.

## Pull Request Process

1. Make sure you have opened an issue and it was approved by a project maintainer before working on a PR
2. Read and complete all relevant sections of the PR template
3. Wait for the PR get approved
