Issue, Pull Request & Commit Guidelines
๐ซ Issues
Every code change should start with an issue. Issues help track work, discuss implementation details, and maintain a clear project history.
๐ One PR Per Issue Policy
We generally follow a one-PR-per-issue policy, with some pragmatic exceptions:
โจ Why One PR Per Issue?
- ๐ Clear traceability between changes and their motivations
- ๐ฆ Forces proper task breakdown and manageable PR sizes
- ๐ Makes code reviews more focused and effective
- โช Enables clean feature rollbacks if needed
- ๐ Provides clear project progress tracking
๐ญ Allowed Exceptions
- ๐จ Trivial changes (like typo fixes) may not need an issue
- ๐ Multiple small, tightly related issues might be addressed in one PR (with clear documentation)
- ๐ If implementation reveals an issue should split into multiple PRs, or multiple issues should combine, pause and restructure
When deviating from one-PR-per-issue, document your reasoning in the PR description.
๐ Issue Template
# Problem
<!-- What needs to be done? -->
# Proposed Solution
<!-- How do you plan to solve it? -->
# Additional Context
<!-- Any extra information that might help? -->
# Acceptance Criteria
<!-- What needs to be true for this to be complete? -->
๐ Conventional Commits
We use conventional commits to maintain clear and standardized commit messages. Each commit message should follow this format:
๐ท๏ธ Types
feat
: โจ New featurefix
: ๐ Bug fixdocs
: ๐ Documentation changesstyle
: ๐ Code style changes (formatting, missing semi-colons, etc)refactor
: โป๏ธ Code refactoringperf
: โก๏ธ Performance improvementstest
: ๐งช Adding missing testschore
: ๐ง Build process or auxiliary tool changes
๐ Examples
feat(api): add endpoint for model metrics
fix(worker): resolve memory leak in batch processing
docs(readme): update installation instructions
perf(client): optimize large dataset handling
๐ Pull Request Template
When opening a pull request, please use the following template:
# Description
<!-- What does this PR do? -->
# Related Issue
<!-- Link to the issue this PR addresses -->
Closes #[issue-number]
# Type of Change
<!-- delete options that are not relevant -->
- ๐ New feature
- ๐ง Bug fix
- ๐ Documentation
- ๐จ Breaking change
- โก๏ธ Performance improvement
- ๐งช Test updates
# Testing
<!-- How were these changes tested? -->
# Breaking Changes
<!-- Does this PR introduce breaking changes? If yes, describe the impact and migration steps -->
# Checklist
- [ ] My code follows conventional commit guidelines
- [ ] I have added tests that prove my fix/feature works
- [ ] New and existing tests pass locally
- [ ] I have updated relevant documentation
- [ ] I have added metrics/monitoring for new features (if applicable)
๐ Additional PR Guidelines
- ๐ฏ Keep PRs focused and reasonably sized
- ๐ Link to related issues or discussions
- ๐ฌ Respond to review comments promptly
- ๐ Update your PR with main when there are conflicts
- ๐ธ Add screenshots or code examples for UI or API changes