Contributing - TomPlanche/rona GitHub Wiki
Contributing to Rona
Thank you for your interest in contributing to Rona! This guide will help you get started with contributing to the project.
Getting Started
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/rona.git
cd rona
- Add the upstream repository:
git remote add upstream https://github.com/tomPlanche/rona.git
- Create a new branch for your changes:
git checkout -b feature/your-feature-name
Development Setup
- Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install dependencies:
cargo build
- Run tests:
cargo test
Development Guidelines
Code Style
- Follow the Rust style guide
- Use
rustfmt
for code formatting - Use
clippy
for linting - Write clear and concise comments
Testing
- Write unit tests for new features
- Update existing tests when modifying features
- Ensure all tests pass before submitting
- Add integration tests for complex features
Documentation
- Update documentation for new features
- Add examples for new commands
- Update README.md if necessary
- Document breaking changes
Commit Messages
- Use conventional commit format
- Write clear and descriptive messages
- Reference issues when applicable
- Keep messages concise but informative
Pull Request Process
- Update documentation
- Add tests for new features
- Ensure all tests pass
- Update the changelog
- Submit the pull request
Pull Request Guidelines
- Use a clear and descriptive title
- Reference issues in the description
- Include examples if applicable
- Keep changes focused and small
- Respond to review comments
Issue Guidelines
Creating Issues
- Use the issue template
- Provide clear description
- Include reproduction steps
- Add relevant logs
- Specify environment details
Issue Labels
bug
: Bug reportsenhancement
: Feature requestsdocumentation
: Documentation updatesgood first issue
: Good for newcomershelp wanted
: Needs community help
Code Review Process
- Review code style
- Check test coverage
- Verify documentation
- Test functionality
- Provide constructive feedback
Release Process
- Update version numbers
- Update changelog
- Create release notes
- Tag the release
- Publish to crates.io
Community Guidelines
Communication
- Be respectful and professional
- Use clear and concise language
- Provide constructive feedback
- Help others when possible
Code of Conduct
- Be inclusive and welcoming
- Be patient and respectful
- Be considerate of others
- Be collaborative
Getting Help
- Check the FAQ
- Search existing issues
- Join the community
- Ask for help in issues
Next Steps
- Check the Usage Guide for practical examples
- Explore the Command Reference for detailed command information
- Visit the FAQ for common questions and answers