# Contributing
If you want to contribute to graphql-ws-client, that's great! There's plenty
of improvements to make, features that still need built and probably a bug or
two hiding in there.
Please note we have a [code of conduct][COC], please follow it in all your
interactions with the project.
There's a few different ways to contribute:
- If you've found a bug or have an idea for a feature you'd like to implement,
please [create an issue][NewIssue] to discuss or send a message [on
discord][Discord].
- If you'd like to contribute to an existing issue feel free to comment on the
issue and let us know. If anything isn't clear someone will be happy to
explain (the project is still fairly new, and I have treated the issue
tracker like a notepad occasionally, sorry about that 😬).
- If you'd like to contribute but you're not sure how:
- We have [Good First Issues][GFI] labelled.
- We [use milestones][Milestones] to plan what's going into the next release,
any free work in there would be great to pick up.
- The documentation (on [docs.rs](https://docs.rs/graphql-ws-client)) could
always be improved.
- You can just try to use graphql-ws-client in a project - we'd appreciate
any bug reports or feedback on the API, and it's always nice seeing what
people build.
## Getting Help
If you have any questions about how to do anything or otherwise need help, please just ask.
You can do this by:
1. [Joining the discord server][Discord]
2. [Asking in Discussions][Discussions]
## Coding Guidelines
1. `cargo fmt` everything
2. Don't use unsafe
3. Don't leave warnings in the codebase.
## Pull Request Process
1. Ensure the build passes and your code meets the above guidelines.
2. Ideally make sure you have some tests for any new functionality you've added.
3. Update CHANGELOG.md with a new entry for your changes (under unreleased)
4. Please write a reasonably detailed pull request message to help reviewer
understand the context around & reason for the changes.
5. A maintainer will review the PR as soon as possible, and once it is approved
will merge and make a release.
[COC]: ./CODE_OF_CONDUCT.md
[Discord]: https://discord.gg/Y5xDmDP
[Discussions]: https://github.com/obmarg/graphql-ws-client/discussions/new
[GFI]: https://github.com/obmarg/graphql-ws-client/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
[Milestones]: https://github.com/obmarg/graphql-ws-client/milestones
[NewIssue]: https://github.com/obmarg/graphql-ws-client/issues/new/choose