Thank you for your interest in contributing to CommitCraft! This guide will help you get started.
-
Fork the repository
git clone https://github.com/your-username/commitcraft.git cd commitcraft -
Set up development environment
# Install Rust (if not already installed) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Build the project cargo build # Run tests cargo test
-
Create a feature branch
git checkout -b feature/your-amazing-feature
- Use the issue tracker to report bugs
- Include steps to reproduce, expected vs actual behavior
- Provide system info (OS, Rust version, CommitCraft version)
- Check existing issues to avoid duplicates
- Clearly describe the use case and proposed solution
- Consider starting a discussion for major features
# Test your changes
cargo test
# Test with real git repos
git add some-file.rs
cargo run -- --dry-run
# Test different providers
cargo run -- --provider openai --dry-run
cargo run -- setup- Run
cargo fmtbefore committing - Run
cargo clippyto catch common issues - Follow existing patterns and conventions
- Add tests for new functionality
src/
├── main.rs # Application entry point
├── cli.rs # Command-line interface
├── config.rs # Configuration management
├── git.rs # Git operations
└── providers/ # AI provider implementations
├── mod.rs # Common traits
├── openai.rs # OpenAI integration
├── gemini.rs # Google Gemini integration
└── anthropic.rs # Anthropic Claude integration
- Windows support testing and fixes
- Performance optimizations for large diffs
- Better error messages and user guidance
- Shell completion scripts (bash, zsh, fish)
- Additional AI providers (Cohere, Llama, etc.)
- Custom prompt templates
- Commit message templates and conventions
- Integration with git hooks
- Diff filtering and preprocessing
- Video tutorials and demos
- Provider-specific setup guides
- Advanced usage examples
- Troubleshooting guides
- Integration tests with real git repos
- Cross-platform testing
- Performance benchmarks
- AI provider response testing
We use our own tool! But follow these conventions:
feat: add new featurefix: resolve issue with Xdocs: update READMEtest: add tests for Ychore: update dependencies
- Create descriptive PR title and description
- Link to related issues
- Ensure all tests pass
- Update documentation if needed
- Keep PRs focused and atomic
- Tests pass (
cargo test) - Code is formatted (
cargo fmt) - No clippy warnings (
cargo clippy) - Documentation updated if needed
- CHANGELOG.md updated for significant changes
- Discord: Join our community
- Discussions: Use GitHub Discussions for questions
- Issues: Check existing issues or create new ones
Contributors will be:
- Listed in the README contributors section
- Mentioned in release notes for significant contributions
- Invited to join the core maintainer team for sustained contributions
# 1. Create feature branch
git checkout -b feature/awesome-feature
# 2. Make changes and test
cargo test
cargo run -- --dry-run
# 3. Commit using commitcraft itself!
git add .
cargo run
# 4. Push and create PR
git push origin feature/awesome-featureDon't hesitate to ask! We're here to help new contributors succeed.
Happy coding! 🦀✨