Thank you for your interest in contributing to KPI Tool! This document provides guidelines for contributing to the project.
develop: Default branch for ongoing developmentmain/master: Production-ready releases only- Feature branches: Create from
developfor new features
-
Create a feature branch from
develop:git checkout develop git pull origin develop git checkout -b feature/your-feature-name
-
Follow coding standards:
- Use TypeScript strict mode (no
anytypes) - Follow existing code style
- Add comments for complex logic
- Update documentation if needed
- Use TypeScript strict mode (no
-
Test your changes:
npm run tauri dev # Test in development npm run tauri build # Ensure it builds
-
Update relevant documentation:
- Update
DEVELOPMENT_ROADMAP.mdif adding features - Update
README.mdif changing user-facing features - Add/update code comments
- Update
-
Push your branch:
git push origin feature/your-feature-name
-
Create PR on GitHub:
- Base branch:
develop - Compare branch:
feature/your-feature-name - Fill out the PR template
- Base branch:
-
PR Requirements:
- ✅ All checks must pass
- ✅ At least one review required
- ✅ No merge conflicts
- ✅ Descriptive title and description
- ✅ Link to related issues (if any)
Use conventional commits format:
feat:New featurefix:Bug fixdocs:Documentation changesrefactor:Code refactoringtest:Adding testschore:Maintenance tasks
Examples:
feat: add dark mode supportfix: resolve database corruption detectiondocs: update installation instructions
-
Automated Checks: All PRs must pass:
- TypeScript compilation
- Rust compilation
- Linting (if configured)
-
Review Requirements:
- At least one approval from maintainers
- All review comments addressed
- CI/CD checks passing
-
After Approval:
- Maintainers will merge to
develop - Releases are created from
develop→main
- Maintainers will merge to
- Write clear, descriptive commit messages
- Use present tense ("Add feature" not "Added feature")
- Reference issues when applicable:
fix: resolve #123
See README.md for development setup instructions.
Open an issue or contact the maintainers.