Files
2025-08-03 13:10:03 -05:00

62 lines
3.4 KiB
Markdown

# Contributing to OSUI
We welcome contributions to OSUI! Whether it's reporting bugs, suggesting features, improving documentation, or submitting code, your help is valuable. This guide outlines the process for contributing.
## How to Contribute
1. **Report Bugs**: If you find a bug, please open an issue on the [GitHub repository](https://github.com/osui-rs/osui/issues). Provide a clear description of the bug, steps to reproduce it, and your environment (OS, Rust version, terminal emulator).
2. **Suggest Features**: Have an idea for a new feature or improvement? Open an issue on GitHub to discuss it.
3. **Improve Documentation**: Spotted a typo, unclear explanation, or missing example? Feel free to submit a pull request with your changes, or open an issue.
4. **Submit Code (Pull Requests)**: If you'd like to contribute code, follow the guidelines below.
## Code Contribution Guidelines
1. **Fork the Repository**: Start by forking the [OSUI GitHub repository](https://github.com/osui-rs/osui).
2. **Clone Your Fork**:
```bash
git clone https://github.com/your-username/osui.git
cd osui
```
3. **Create a New Branch**: Create a descriptive branch for your changes.
```bash
git checkout -b feature/my-new-feature
# or
git checkout -b bugfix/fix-some-bug
```
4. **Make Your Changes**:
* **Code Style**: Adhere to the existing Rust code style. Run `cargo fmt` before committing.
* **Clippy**: Ensure your code passes Clippy lints: `cargo clippy --all-targets --all-features -- -D warnings`.
* **Tests**: If you're adding new functionality, please include unit tests. If fixing a bug, consider adding a regression test.
* **Documentation**: Update relevant documentation (API reference, guides) for any new features or changes. Add comments to your code where necessary.
* **Examples/Demos**: If your feature adds significant new functionality, consider adding a small example to the `src/demos` directory.
5. **Commit Your Changes**: Write clear, concise commit messages.
```bash
git commit -m "feat: Add new awesome feature"
```
6. **Push to Your Fork**:
```bash
git push origin feature/my-new-feature
```
7. **Open a Pull Request**:
* Go to the [OSUI repository on GitHub](https://github.com/osui-rs/osui).
* You should see a prompt to open a pull request from your recently pushed branch.
* Provide a clear title and description for your pull request. Explain what problem it solves and how.
* Reference any related issues (e.g., `Fixes #123`, `Closes #456`).
8. **Review Process**:
* Project maintainers will review your pull request.
* Be prepared to address feedback and make further changes if requested.
* Once approved, your changes will be merged into the `master` branch.
## Development Environment Setup
* **Rust Toolchain**: Make sure you have a recent stable Rust toolchain installed.
```bash
rustup update
```
* **Dependencies**: Ensure all project dependencies are installed by running `cargo build`.
* **Testing**: Run tests with `cargo test`.
* **Linting**: Use `cargo clippy --all-targets --all-features -- -D warnings` to check for common code issues.
* **Formatting**: Use `cargo fmt` to automatically format your code according to Rust's standard style.
Thank you for considering contributing to OSUI! Your efforts help make this project better for everyone.