Thank you for your interest in contributing! This document provides guidelines for contributing to Octofs.
Be respectful and constructive. We're all here to build something great.
- Check if the bug has already been reported
- Include clear reproduction steps
- Provide environment details (OS, Rust version, Octofs version)
- Include relevant logs or error messages
- Open an issue with the "Feature Request" template
- Explain the use case and problem you're solving
- Be open to discussion and iteration
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Ensure tests pass:
cargo test - Ensure clippy passes:
cargo clippy -- -D warnings - Format code:
cargo fmt - Commit with clear messages
- Push and open a Pull Request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/octofs.git
cd octofs
# Build
cargo build
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run- Zero clippy warnings — All code must pass
cargo clippy - Tests — Add tests for new functionality
- Documentation — Update README.md for user-facing changes
- Commit messages — Use clear, descriptive commit messages
src/
├── main.rs # Entry point
├── cli.rs # CLI parsing
└── mcp/
├── server.rs # MCP protocol
└── fs/ # Filesystem tools
- Open an issue for questions
- Join discussions in existing issues
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.