# Contributing to ratcrate-tui
Thank you for your interest in contributing! We welcome contributions from everyone.
## Code of Conduct
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.
## How to Contribute
### Reporting Bugs
- Search existing issues first
- Use the bug report template
- Include reproduction steps, expected vs actual behavior
- Include environment details (OS, language version, etc.)
### Suggesting Features
- Search existing issues/discussions first
- Use the feature request template
- Explain the use case and benefits
- Be open to discussion
### Pull Requests
1. **Fork the repository**
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
3. **Make your changes**:
- Follow the code style (run linters)
- Add tests for new features
- Update documentation
- Ensure all tests pass
4. **Commit your changes**: `git commit -m 'Add amazing feature'`
- Use clear, descriptive commit messages
- Reference issues: `Fixes #123`
5. **Push to your fork**: `git push origin feature/amazing-feature`
6. **Open a Pull Request**:
- Fill out the PR template
- Link related issues
- Respond to review feedback
## Development Setup
### Rust Projects
```bash
$> git clone https://github.com/ratcrate-tui/ratcrate-tui.git
$> cd [repo]
$> cargo build
$> cargo test
```
## Code Style
- **Rust**: Run `cargo fmt` and `cargo clippy`
## Testing
- Write tests for new features
- Ensure existing tests pass
- Aim for good test coverage
## Documentation
- Update README.md if needed
- Add inline code comments for complex logic
- Update CHANGELOG.md
## Questions?
Feel free to open a discussion or reach out to maintainers.
Thank you for contributing! 🎉