# Contributing to BotWave Thank you for your interest in contributing to **BotWave**! Contributions of all kinds are welcome, whether it’s code, documentation, bug reports, or suggestions. Please take a moment to read this guide before contributing. ## Ways to Contribute You can contribute by: - Reporting bugs - Suggesting new features or improvements - Improving documentation - Submitting pull requests - Reviewing existing pull requests ## Reporting Bugs & Issues If you encounter a bug or unexpected behavior, please open an issue in the [/issues](/issues) section. When reporting an issue, try to include: - A clear and descriptive title - Steps to reproduce the issue - Expected behavior vs actual behavior - Relevant logs, screenshots, or error messages - Your environment (OS, version, setup, etc.) **Security vulnerabilities should NOT be reported via issues.** Please refer to the `SECURITY.md` file for responsible disclosure instructions. ## Feature Requests Feature requests are welcome! Before opening a new issue, please check if a similar request already exists. When suggesting a feature: - Explain the problem it solves - Describe the proposed solution - Mention any alternatives you’ve considered ## Pull Requests We’re happy to review pull requests! Before submitting a PR: - Fork the repository and create a new branch - Keep changes focused and relevant - Follow the existing code style and structure - Test your changes where applicable - Update documentation if needed When opening a pull request: - Clearly describe what your PR does - Reference related issues if applicable - Be open to feedback and requested changes ## Code Style & Guidelines - Keep code clean, readable, and well-organized (at least try to) - Avoid unnecessary dependencies - Comment complex or non-obvious logic - Please type your python code. Avoid using the `typing` module if you can use a builtin type instead. ## Commit Messages Even though we won't reject contributions that don't follow our commit formatting, we'd appreciate it if you followed this pattern when writing commits: ``` [] : ``` The message is made up of 3 parts: - **Component**: the specific part of the project affected by the change. Examples: `client`, `server`, `docs`, `workflows`, etc. If you can't find a specific enough component, you can use a generic term such as `project`. - **Path**: the path within that component. To avoid long paths, you can omit the part that's already implied by the component. For example, if the component is `workflows`, you can simply write `wiki-mirror.yml` and we'll understand that the commit concerns `.github/workflows/wiki-mirror.yml`. If the commit affects multiple paths, you can use globbing, or separate them with commas. Examples: `ops/*.py`, `shared/tls.py, shared/http.py`. - **Commit message**: a short message describing your changes. ### Examples ``` [server] ops/live.py: fix ALSA rate being wrongly sent [client] client.py: better exception handling [docs] README.md: update installation steps [workflows] wiki-mirror.yml: ensure the new commit recommendation [docs] client/client.md: updated cli documentation ``` ## Community & Conduct Be respectful and constructive in discussions. Harassment, hate speech, or hostile behavior will not be tolerated. ## Questions If you’re unsure about anything, feel free to open an issue and ask. Thanks for helping make **BotWave** better <3