Thank you for your interest in contributing to DiskOfflaner! This document provides guidelines for contributing to the project.
Be respectful, professional, and constructive in all interactions.
- Install Rust: Get the latest stable Rust toolchain from rustup.rs
- Clone the repository:
git clone https://github.com/appsjuragan/diskOfflaner-rust.git cd diskOfflaner-rust - Build the project:
cargo build
All code must be formatted with rustfmt:
cargo fmt --allCode must pass clippy without warnings:
cargo clippy --all-targets --all-features -- -D warningsRun tests before submitting:
cargo test --allVerify release builds:
cargo build --release- Documentation: Add doc comments for public APIs
- Error Handling: Use
Resultandanyhowfor error propagation - Safety: Minimize unsafe code; document when necessary
- Cross-platform: Test on both Windows and Linux when possible
- Performance: Consider binary size and runtime performance
- Naming: Use clear, descriptive names following Rust conventions
Use clear, descriptive commit messages:
- Use present tense ("Add feature" not "Added feature")
- First line should be concise (50 chars or less)
- Provide detailed explanation if needed after blank line
Example:
Add Linux partition mounting support
- Implement mount/unmount operations for Linux
- Add device path parsing for various Linux disk types
- Update GUI to handle Linux-specific disk identifiers
- Create a feature branch from
mainorlinux-support(for Linux-specific changes) - Make your changes following the guidelines above
- Ensure all tests pass and code is properly formatted/linted
- Update CHANGELOG.md with your changes
- Submit a pull request with a clear description
- Requires Windows 10/11
- Uses WinAPI for disk operations
- Test with both HDD and SSD drives
- Test on multiple distributions when possible
- Use platform-agnostic paths and conventions
- Verify with different disk naming schemes (sda, nvme0n1, etc.)
Open an issue on GitHub for:
- Bug reports
- Feature requests
- Documentation improvements
- General questions
By contributing, you agree that your contributions will be licensed under the MIT License.