Pull Requests
Pull requests (PRs) are how you contribute code changes to FUSION. This guide explains the process and requirements.
Before You Start
Check for existing work: Search issues and PRs to avoid duplicating effort
Discuss large changes: Open an issue first to discuss significant changes
Fork and branch: Create a working branch from an up-to-date base branch
Creating a Pull Request
Push your branch to your fork:
git push origin feature/my-feature
Open a PR on GitHub:
Click “New pull request”
Select your fork and branch
Set the base branch (see note below)
Click “Create pull request”
Fill out the template completely
Note
External contributors: Target the main branch. The team will handle integration.
Internal team: Target the develop branch. Maintainers handle merges
from develop to release/* and from release/* to main.
PR Template Sections
When you open a PR, GitHub automatically loads our template. You can view
the template files in .github/PULL_REQUEST_TEMPLATE/:
pull_request_template.md- Standard PR templatefeature_pr_template.md- Feature-specific templatehotfix_pr_template.md- Hotfix template
Our PR template ensures thorough submissions:
- PR Title
Use conventional commit format:
type(scope): descriptionfeat(routing): add congestion-aware path selection fix(spectrum): resolve allocation conflict in multi-core docs(readme): update installation instructions
- Related Issues
Link issues this PR addresses:
Fixes #123 Closes #456 Relates to #789
- Type of Change
Select what kind of change this is:
Bug Fix
New Feature
Breaking Change
Refactor
Documentation
Tests
Performance
- Testing
Describe how you tested your changes:
What tests did you add?
What manual testing did you perform?
What configuration did you use?
- Impact Analysis
Assess the impact on:
Performance
Memory usage
Backward compatibility
Dependencies
Requirements
Before your PR can be merged:
Code Quality
make format # Auto-format code
make lint # Check for issues
make test # Run tests
make check-all # Full validation
- Tests
Add tests for new functionality
Ensure existing tests pass
Aim for good coverage
- Documentation
Update docstrings
Update relevant docs
Add usage examples
- Review
Two approvals required
Address all review comments
CI checks must pass
Review Process
Automated checks run on your PR (linting, tests, etc.)
Team members review your code
Address feedback by pushing additional commits
Final approval from two reviewers
Merge by a maintainer
Responding to Reviews
When reviewers leave comments:
Be responsive: Reply to all comments
Ask questions: If feedback is unclear, ask for clarification
Make changes: Push new commits to address feedback
Re-request review: After addressing comments, re-request review
Keeping Your PR Updated
If main has been updated:
git fetch upstream
git rebase upstream/main
git push origin feature/my-feature --force-with-lease
Common PR Issues
- CI Failures
Check the failing job’s logs
Run checks locally:
make check-allFix issues and push
- Merge Conflicts
Rebase on the latest main
Resolve conflicts locally
Push the updated branch
- Stale PR
If no activity for a while, maintainers may close it
Comment if you’re still working on it
After Merge
Once merged:
Delete your feature branch (GitHub offers a button)
Pull the updated main to your local repo
Celebrate your contribution!