Pull Requests
This guide covers how to create and submit pull requests to Running Days.
Before You Start
- Check existing issues - Is there an issue for this change?
- Discuss first - For large changes, open an issue to discuss approach
- Update your fork - Sync with upstream main branch
Creating a Branch
bash
# Sync your fork
git fetch upstream
git checkout main
git merge upstream/main
# Create feature branch
git checkout -b feature/your-feature-nameBranch naming conventions:
feature/- New featuresfix/- Bug fixesdocs/- Documentation onlyrefactor/- Code refactoringtest/- Adding tests
Making Changes
Commit Guidelines
Write clear, atomic commits:
bash
# Good
git commit -m "feat(api): add rate limiting to auth endpoints"
# Bad
git commit -m "updates"Format: type(scope): description
Types:
feat- New featurefix- Bug fixdocs- Documentationrefactor- Code refactoringtest- Adding testschore- Maintenance
Before Committing
bash
# Run type check
pnpm check
# Run tests
pnpm test
# Run linting (if configured)
pnpm lintSubmitting the PR
Push Your Branch
bash
git push -u origin feature/your-feature-nameCreate PR on GitHub
- Go to the repository on GitHub
- Click “Compare & pull request”
- Fill out the PR template
PR Template
markdown
## Summary
Brief description of changes
## Changes
- Added X
- Fixed Y
- Updated Z
## Test Plan
- [ ] Unit tests added/updated
- [ ] E2E tests pass
- [ ] Manual testing done
## Screenshots
(if UI changes)PR Review Process
What Reviewers Look For
| Aspect | Criteria |
|---|---|
| Functionality | Does it work as intended? |
| Tests | Are there adequate tests? |
| Code Quality | Is it clean and maintainable? |
| Security | Any security concerns? |
| Performance | Any performance impacts? |
| Documentation | Are docs updated if needed? |
Responding to Feedback
- Address all comments
- Push new commits (don’t force push during review)
- Re-request review when ready
After Approval
- Squash and merge (preferred)
- Delete your branch
- Close related issues
Common Issues
PR Conflicts
bash
git fetch upstream
git rebase upstream/main
# Resolve conflicts
git push --force-with-leaseCI Failures
- Check the CI logs
- Fix issues locally
- Push new commits
Large PRs
Break into smaller, reviewable chunks:
- Refactoring PR first
- Feature PR on top
- Test PR separately if needed
Getting Help
- Ask questions in PR comments
- Tag maintainers if stuck
- Join GitHub Discussions for broader questions