Thank you for your interest in contributing to joerl! This document provides guidelines and information for contributors.
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/joerl.git - Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run tests:
cargo test - Format code:
cargo fmt - Run linter:
cargo clippy - Commit your changes:
git commit -am 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Open a Pull Request
- Rust 1.85 or later (for edition 2024 support)
- Cargo
cargo build# Run all tests
cargo test
# Run specific test
cargo test test_name
# Run with output
cargo test -- --nocapture
# Run integration tests
cargo test --test integration_test# Install tarpaulin
cargo install cargo-tarpaulin
# Generate coverage report
cargo tarpaulin --out Html
# Open coverage report
open tarpaulin-report.htmlWe follow the standard Rust style guidelines:
- Use
cargo fmtto format code - Use
cargo clippyto check for common mistakes - Write idiomatic Rust code
- Add documentation comments for public APIs
- Include examples in documentation when appropriate
- All new features must include tests
- Aim for high test coverage (>80%)
- Write both unit tests and integration tests
- Test edge cases and error conditions
- Use descriptive test names that explain what is being tested
- Document all public APIs with doc comments (
///) - Include examples in documentation
- Keep README.md up to date
- Add entries to CHANGELOG.md for notable changes
- Update the README.md with details of changes if applicable
- Update the CHANGELOG.md following Keep a Changelog format
- Ensure all tests pass
- Ensure code is properly formatted and linted
- Request review from maintainers
- Address any review comments
Follow conventional commit format:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test additions/changesrefactor:for code refactoringperf:for performance improvementschore:for maintenance tasks
Example: feat: add support for remote actors
We pledge to make participation in our project a harassment-free experience for everyone.
- Be respectful and inclusive
- Be patient and welcoming
- Accept constructive criticism gracefully
- Focus on what is best for the community
- Show empathy towards others
Feel free to open an issue for:
- Bug reports
- Feature requests
- Questions about the codebase
- Suggestions for improvements
By contributing to joerl, you agree that your contributions will be licensed under its MIT OR Apache-2.0 license.