Skip to content

Latest commit

 

History

History
113 lines (87 loc) · 2.64 KB

File metadata and controls

113 lines (87 loc) · 2.64 KB

🤝 Contributing Guide

We love contributions! Here's how to get involved in Slashsum development:

🚀 Getting Started

  1. Fork the repository
  2. Clone your fork:
    git clone https://github.com/NDXDeveloper/slashsum.git
  3. Set up environment:
    rustup override set stable
    cargo install --locked --path .

🛠 How to Contribute

🐛 Reporting Bugs

  1. Check existing issues
  2. Create new issue with:
    • Detailed description
    • Steps to reproduce
    • Rust version (rustc --version)
    • OS and architecture

💡 Proposing Features

  1. Open issue with enhancement label
  2. Describe:
    • Use case
    • Potential benefits
    • Implementation ideas (optional)

📝 Pull Requests

  1. Create feature branch:
    git checkout -b feat/my-awesome-feature
  2. Follow code style guidelines
  3. Add relevant tests
  4. Run verifications:
    cargo check
    cargo test
    cargo clippy -- -D warnings
    cargo fmt --check
  5. Push branch and open PR

🎨 Code Style

  • Formatting: Use cargo fmt
  • Linting: Adhere to cargo clippy standards
  • Documentation:
    • Rustdoc comments for public APIs
    • Explicit type annotations
    • Comprehensive error handling

🧪 Testing

Tests are located in src/main.rs using Rust's built-in test framework (#[cfg(test)] module).

Run all tests:

cargo test --verbose

Run specific test:

cargo test test_name

📚 Documentation

  • Keep README updated
  • Follow RFC 1574 conventions
  • Generate local docs:
    cargo doc --open

🔍 PR Review Process

Maintainers will verify:

  • ✅ Passing tests
  • ✅ Maintained coverage (>85%)
  • ✅ Updated documentation
  • ✅ No performance regressions
  • ✅ Cross-platform compatibility

🏷 Issue Labels

Label Description
bug Defect needing fix
enhancement New feature proposal
documentation Documentation improvements
performance Optimization opportunities
good first issue Beginner-friendly entry point

📜 Code of Conduct

All contributors must adhere to our Code of Conduct

📄 License

By contributing, you agree to license your work under the MIT License


💡 Pro Tip: Before starting major work, discuss your approach in an issue to ensure alignment with project goals!