Learning Path: Contributor
For: Developers who want to contribute code, documentation, or improvements to ReasonKit
This learning path guides you through contributing to the ReasonKit open source project.
π― Goal
Make your first contribution to ReasonKit and become an active contributor.
π Path Overview
Phase 1: Setup (30 minutes)
- Development Setup - Get the development environment running
- Architecture Overview - Understand the codebase structure
- Code Style - Learn ReasonKitβs coding standards
Outcome: You can build and run ReasonKit from source.
Phase 2: Quality Gates (30 minutes)
- Testing - Run and write tests
- Quality Gates - Understand the 5 mandatory gates
- Build:
cargo build --release - Lint:
cargo clippy -- -D warnings - Format:
cargo fmt --check - Test:
cargo test - Bench:
cargo bench(no >5% regression)
- Build:
Outcome: You can verify your changes meet quality standards.
Phase 3: First Contribution (1-2 hours)
- Contributing Guidelines - How to contribute
- Pull Request Process - Submit your first PR
- Code Review Process - What to expect
Outcome: Youβve made your first contribution.
Phase 4: Deep Dive (2-4 hours)
- Architecture - Deep understanding of system design
- Custom ThinkTools - How ThinkTools work internally
- Performance Optimization - Performance best practices
- Rust Supremacy Doctrine - Why Rust-first
Outcome: You can contribute to core functionality.
π οΈ Development Workflow
Daily Development
# Clone repository
git clone https://github.com/reasonkit/reasonkit-core
cd reasonkit-core
# Build
cargo build --release
# Run tests
cargo test
# Run quality gates
./scripts/quality_metrics.sh
# Run benchmarks
cargo bench
Making Changes
-
Create a branch:
git checkout -b feature/your-feature-name -
Make changes following code style guidelines
-
Run quality gates:
cargo build --release cargo clippy -- -D warnings cargo fmt --check cargo test -
Commit with clear message:
git commit -m "feat: Add your feature description" -
Push and create PR:
git push origin feature/your-feature-name
π Contribution Areas
Good First Issues
- Documentation improvements
- Test coverage additions
- Bug fixes in non-critical paths
- CLI UX improvements
- Example scripts
Advanced Contributions
- New ThinkTool modules
- Performance optimizations
- LLM provider integrations
- Storage backend improvements
- Protocol engine enhancements
π― Quality Standards
All contributions must pass:
- β Build - Compiles without errors
- β Lint - No clippy warnings
- β Format - Code formatted with rustfmt
- β Test - All tests pass
- β Bench - No performance regressions
Quality Score Target: 8.0/10 minimum
π Related Documentation
- Contributing Guidelines - How to contribute
- Development Setup - Environment setup
- Code Style - Coding standards
- CONTRIBUTING.md - Complete contributor guide
π Next Steps
After completing this path:
- Find an issue that matches your skills
- Make your first contribution
- Join the Discord community
- Become a maintainer
Estimated Time: 4-7 hours
Difficulty: Intermediate to Advanced
Prerequisites: Rust programming experience, familiarity with Git