Before Creating a PR
PR Title Requirements
PR titles must follow Conventional Commits format:Allowed Types
From.github/workflows/pr-naming-conventions.yml:
feat- New featuresfix- Bug fixesdocs- Documentation changesstyle- Code style changes (formatting, etc.)refactor- Code refactoringtest- Adding or updating testschore- Maintenance tasksci- CI/CD changesbuild- Build system changesrevert- Reverting changesperf- Performance improvementsrelease- Release commitsdeps- Dependency updatesinfra- Infrastructure changessecurity- Security fixesenv- Environment configurationi18n- Internationalizationux- User experience improvementsconfig- Configuration changesassets- Asset updatesmeta- Meta changes
Examples
PR Description Template
Use this template for comprehensive PR descriptions:PR Requirements
Code Quality
All Tests Pass
All Tests Pass
- Unit tests must pass
- Integration tests must pass
- No test coverage regression
- New functionality includes tests
Linting and Formatting
Linting and Formatting
- Code passes Biome checks (TypeScript)
- Code passes Ruff checks (Python)
- Type checking passes (mypy)
- Pre-commit hooks pass
No Merge Conflicts
No Merge Conflicts
- PR must be up to date with
master - No conflicting files
- Clean merge possible
Documentation Updated
Documentation Updated
- New features documented
- API changes documented
- Breaking changes documented
- Migration guides provided
Code Review
Focused Changes
PRs should be focused on a single change or feature. Split large changes into multiple PRs.
Clear Description
Provide context, motivation, and testing information in the PR description.
Review Responsiveness
Respond to review comments promptly and address all feedback.
Maintainable Code
Follow project conventions and write self-documenting code.
CI/CD Checks
Automated checks run on every PR:GitHub Actions Workflows
-
Build Workflow (
.github/workflows/build.yml)- Install dependencies
- Run linting
- Run type checking
- Build all projects
- Run tests
-
PR Title Validation (
.github/workflows/pr-naming-conventions.yml)- Validates conventional commit format
- Checks allowed types
- Enforces consistent naming
Review Process
Review Timeline
- Initial review: 2-3 business days
- Follow-up reviews: 1-2 business days
- Urgent fixes: Same day for critical issues
Reviewer Feedback
Reviewers may:- Comment: Suggestions or questions (no action required)
- Request changes: Must be addressed before approval
- Approve: PR is ready to merge
Responding to Feedback
Making Changes
Resolving Conversations
- Address each comment
- Reply to explain changes
- Mark conversations as resolved
- Request re-review when ready
Disagreements
If you disagree with feedback:- Explain your reasoning politely
- Provide technical justification
- Suggest alternatives
- Be open to compromise
- Escalate to maintainer if needed
Common PR Issues
Failing Tests
Failing Tests
Problem: Tests fail in CI but pass locallySolutions:
- Check for environment-specific issues
- Verify test data and fixtures
- Look at CI logs for error details
- Run tests with same Python/Node version as CI
Merge Conflicts
Merge Conflicts
Problem: PR has merge conflicts with masterSolutions:
Linting Failures
Linting Failures
Problem: Code doesn’t pass linting checksSolutions:
Type Errors
Type Errors
Problem: TypeScript or mypy reports type errorsSolutions:
Best Practices
PR Size
Small PRs
- Easier to review
- Faster to merge
- Less likely to have conflicts
- Easier to test
Large PRs
- Harder to review
- More likely to have issues
- Takes longer to merge
- Higher risk of conflicts
- Small: Less than 200 lines changed
- Medium: 200-500 lines
- Large: 500-1000 lines (consider splitting)
- Very large: More than 1000 lines (definitely split)
Commit Organization
Organize commits logically:Self Review
Before requesting review:- Review your own diff on GitHub
- Check for:
- Debug code or console.logs
- TODO comments
- Commented-out code
- Sensitive information
- Unnecessary changes
- Test locally one more time
- Verify documentation is updated
PR Examples
Good PR Example
Bad PR Example
After Merge
Once your PR is merged:-
Delete your branch
-
Update local master
-
Monitor for issues
- Watch for CI/CD pipeline
- Check for related issues
- Be available for questions
-
Celebrate!
- Your contribution is now part of GAIA
- Thank reviewers for their time
Getting Help
If you need help with your PR:Discord
Ask questions in #contributors channel
GitHub Discussions
Start a discussion thread
PR Comments
Comment on your PR with questions
Documentation
Review contribution guidelines
Next Steps
Contributing
Full contribution workflow
Conventional Commits
Commit message format
Code Style
Code formatting guidelines