# Contributing to Remote-Settings Client
When contributing to the development of Remote-Settings Client, create a new issue and make sure with the maintainers before
making a change that the change is really needed.
Please note we have a [Code of Conduct](CODE-OF-CONDUCT), please follow it in all
your interactions with the project.
# Table of contents
1. [Creating an issue](#Issues)
2. [Pull requests](#pull-request-process)
3. [Code of Conduct](CODE-OF-CONDUCT)
# Issues
There are many ways you can contribute to Remote-Settings Client, and all of them involve creating issues
in [Remote-Settings Github Project](https://github.com/Vishwa-Mozilla/Remote-Settings-Client/issues). This is the
entry point for your contribution.
To create an effective and high quality ticket, try to put the following information on your
issue:
A detailed description of the issue or feature request
- For issues, please add the necessary steps to reproduce the issue.
- For feature requests, add a detailed description of your proposal and the motivation behind working on the feature.
---
# Project Board
Keep your issue status updated [here](https://github.com/Vishwa-Mozilla/Remote-Settings-Client/projects/1)
# Pull Request Process
1. Ensure your code compiles. Run `cargo test` before creating the pull request.
2. If you're adding new external API, it must be properly documented. Run `cargo doc --open` to see crate documentation
3. Create branches with format - "issue[issue#]_[short_description]"
4. Checklist before merging PR for a particular code change or feature
- Unit Testing, CI tests passing
- Documentation (Update README, crates.io)
- Rust best practices followed
- PR approval
5. While merging the PR, select "Squash and merge" option to avoid adding unnecessary commits from your branch to the main branch