Contributing to OSUI
We welcome and appreciate contributions from the community! Whether it's reporting bugs, suggesting features, improving documentation, or submitting code, your help makes OSUI better for everyone.
How to Contribute
1. Report Bugs
If you find a bug, please open an issue on our GitHub repository. When reporting a bug, please include:
- A clear and concise description of the bug.
- Steps to reproduce the behavior.
- Expected behavior.
- Actual behavior.
- Your OSUI version, Rust version, and operating system.
- Any relevant code snippets or error messages.
2. Suggest Features
Have an idea for a new feature or improvement? Feel free to open an issue on GitHub to discuss it. Please provide:
- A clear and concise description of the proposed feature.
- Why you think it would be valuable to OSUI.
- Any potential use cases or examples.
3. Improve Documentation
Good documentation is vital for any library. If you find errors, omissions, or areas that could be explained more clearly in our docs, please consider:
- Opening an issue to point out the specific area.
- Submitting a pull request with your suggested improvements.
4. Contribute Code
If you'd like to contribute code, here's the general workflow:
Fork the Repository
First, fork the osui-rs/osui repository to your own GitHub account.
Clone Your Fork
git clone https://github.com/YOUR_USERNAME/osui.git
cd osui
Create a New Branch
Create a new branch for your feature or bug fix. Use a descriptive name:
git checkout -b feature/my-awesome-feature
# or
git checkout -b bugfix/fix-rendering-issue
Make Your Changes
- Write clean, idiomatic Rust code.
- Follow existing code style and conventions.
- Add comments where necessary to explain complex logic.
- Write Tests: If you're adding new features or fixing bugs, please include appropriate unit and/or integration tests to cover your changes.
- Update Documentation: If your changes affect the public API or add new functionality, please update the relevant documentation files.
Run Tests
Before submitting a pull request, ensure all existing tests pass and your new tests pass:
cargo test --workspace
Format and Lint
Make sure your code is formatted correctly and passes lint checks:
cargo fmt --all
cargo clippy --all-targets --all-features
Commit Your Changes
Commit your changes with clear and concise commit messages. A good commit message explains what changed and why.
git commit -m "feat: Add new awesome feature"
# or
git commit -m "fix: Resolve rendering issue on Windows"
Push to Your Fork
git push origin feature/my-awesome-feature
Create a Pull Request
Go to the osui-rs/osui repository on GitHub and open a new pull request.
- Provide a clear title and description for your pull request.
- Reference any related issues (e.g., "Fixes #123" or "Closes #456").
- The project maintainers will review your PR, provide feedback, and work with you to get it merged.
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms.
Thank you for considering contributing to OSUI! Your efforts help foster a vibrant and robust TUI ecosystem in Rust.