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

  1. Fork the repository
  2. Clone your fork:
git clone https://github.com/your-username/rona.git
cd rona
  1. Add the upstream repository:
git remote add upstream https://github.com/tomPlanche/rona.git
  1. Create a new branch for your changes:
git checkout -b feature/your-feature-name

Development Setup

  1. Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. Install dependencies:
cargo build
  1. 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

  1. Update documentation
  2. Add tests for new features
  3. Ensure all tests pass
  4. Update the changelog
  5. 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 reports
  • enhancement: Feature requests
  • documentation: Documentation updates
  • good first issue: Good for newcomers
  • help wanted: Needs community help

Code Review Process

  1. Review code style
  2. Check test coverage
  3. Verify documentation
  4. Test functionality
  5. Provide constructive feedback

Release Process

  1. Update version numbers
  2. Update changelog
  3. Create release notes
  4. Tag the release
  5. 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