# 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.