Contributing
Getting Started
- Fork the repository
- Clone your fork
- Create a feature branch
- Make your changes
- Run tests
- Submit a pull request
Development Setup
git clone https://github.com/yourusername/fungi.git
cd fungi
cargo build
cargo test --workspace
Code Style
# Format code
cargo fmt
# Check formatting
cargo fmt --check
# Run lints
cargo clippy --workspace -- -D warnings
Testing
# Run all tests
cargo test --workspace
# Run specific crate tests
cargo test -p fungi-state
# Run with output
cargo test --workspace -- --nocapture
Documentation
# Generate docs
cargo doc --workspace --open
# Build mdbook
mdbook build
# Serve mdbook locally
mdbook serve
Commit Messages
Format: <type>: <description>
Types:
feat: New featurefix: Bug fixdocs: Documentationtest: Testsrefactor: Code refactoringchore: Maintenance tasks
Example: feat: add Kafka source implementation
Pull Requests
- Keep PRs focused on a single feature/fix
- Add tests for new functionality
- Update documentation
- Ensure all tests pass
- Follow existing code style
Architecture
See Architecture for system design.
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.