# Contributing to OCPP Client
First off, thank you for considering contributing to the OCPP Client! Your contributions are greatly appreciated.
## How Can I Contribute?
### Reporting Bugs
If you find a bug, please create an issue on [GitHub](https://github.com/yourusername/ocpp-client/issues) and include:
- A clear and descriptive title.
- A detailed description of the problem.
- Steps to reproduce the issue.
- Any relevant code snippets or logs.
### Suggesting Enhancements
We welcome suggestions for new features or enhancements. If you have an idea, please open an issue on [GitHub](https://github.com/yourusername/ocpp-client/issues) and include:
- A clear and descriptive title.
- A detailed description of the proposed enhancement.
- Any relevant context or examples.
### Pull Requests
We welcome pull requests for bug fixes, new features, and documentation improvements. To submit a pull request:
1. Fork the repository.
2. Create a new branch for your changes (`git checkout -b my-feature-branch`).
3. Make your changes.
4. Commit your changes (`git commit -m 'Add some feature'`).
5. Push to the branch (`git push origin my-feature-branch`).
6. Open a pull request on [GitHub](https://github.com/yourusername/ocpp-client/pulls).
### Code Style
Please adhere to the following guidelines to maintain consistency in the codebase:
- Follow the [Rust API Guidelines](https://rust-lang.github.io/api-guidelines/).
- Use [rustfmt](https://github.com/rust-lang/rustfmt) to format your code.
- Write tests for new features and bug fixes.
- Ensure all existing and new tests pass (`cargo test`).
### Commit Messages
Use clear and descriptive commit messages. A good commit message should:
- Describe the change in the imperative mood ("Fix bug" rather than "Fixed bug" or "Fixes bug").
- Include any relevant issue numbers (e.g., `Fixes #123`).
### Documentation
Improving documentation is one of the easiest ways to contribute. You can help by:
- Improving existing documentation for clarity and completeness.
- Adding new examples to demonstrate how to use the library.
- Correcting any typos or grammatical errors.
### Running Tests
Before submitting a pull request, please ensure that all tests pass:
```sh
cargo test
```
If you add new functionality, please write tests to cover it. This helps us maintain a high-quality library.
## Code of Conduct
This project adheres to the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/). By participating, you are expected to uphold this code. Please report unacceptable behavior to [hello@flowion.app](mailto:hello@flowion.app).
## Thank You!
Thank you for considering contributing to the OCPP Client! Your time and effort are greatly appreciated, and we are excited to see your contributions.