Pull Requests
Guidelines for submitting pull requests.
Before You Start
- Check existing issues - Is there already an issue for this?
- Discuss large changes - Open an issue first for significant changes
- Read the docs - Understand the codebase
- Set up development - Follow Development Setup
Creating a Pull Request
1. Fork and Clone
bash
# Fork on GitHub, then clone
git clone https://github.com/YOUR_USERNAME/scry-node.git
cd scry-node
# Add upstream remote
git remote add upstream https://github.com/epinnock/scry-node.git2. Create a Branch
bash
# Update main
git checkout main
git pull upstream main
# Create feature branch
git checkout -b feature/my-feature
# or
git checkout -b fix/bug-descriptionBranch naming:
feature/description- New featuresfix/description- Bug fixesdocs/description- Documentationrefactor/description- Code refactoringtest/description- Adding tests
3. Make Changes
Follow our Code Style guidelines:
- Write TypeScript
- Add tests for new features
- Update documentation if needed
- Keep commits focused
4. Commit Changes
Write clear commit messages:
bash
# Good commit messages
git commit -m "feat: add presigned URL expiration option"
git commit -m "fix: handle empty ZIP files gracefully"
git commit -m "docs: add self-hosting troubleshooting section"
# Conventional commit format
# type(scope): description
#
# Types: feat, fix, docs, style, refactor, test, chore5. Push and Create PR
bash
# Push to your fork
git push origin feature/my-featureThen create PR on GitHub.
PR Template
Use this template when creating a PR:
markdown
## Description
Brief description of changes.
## Type of Change
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
## How Has This Been Tested?
Describe tests you ran.
## Checklist
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code where necessary
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or my feature works
- [ ] New and existing unit tests pass locally with my changes
## Related Issues
Closes #123Review Process
What Reviewers Look For
- Code quality - Follows style guidelines
- Test coverage - New code has tests
- Documentation - Updated where needed
- Performance - No obvious issues
- Security - No vulnerabilities introduced
Addressing Feedback
bash
# Make requested changes
git commit -m "address review feedback"
# Or amend if single change
git commit --amend
git push --force-with-leaseGetting Reviews
- Be patient - reviews may take a few days
- Respond to all comments
- Ask questions if feedback is unclear
- Request re-review after making changes
Merge Requirements
PRs must meet these criteria:
- [ ] All CI checks pass
- [ ] At least one approval from maintainer
- [ ] No unresolved conversations
- [ ] Up to date with main branch
Keeping Up to Date
bash
# Update your branch
git fetch upstream
git rebase upstream/main
# Resolve any conflicts
git push --force-with-leaseAfter Merge
- Delete your branch (GitHub offers this)
- Update local main:
bash
git checkout main
git pull upstream main
git branch -d feature/my-featureQuick Fixes
Typos and Documentation
For simple fixes:
- Edit directly on GitHub
- Use "Create a new branch for this commit and start a pull request"
- Submit PR
Small Bug Fixes
Can be done without opening an issue first, but include:
- Clear description of the bug
- Steps to reproduce
- How the fix addresses it
Large Changes
Feature Proposals
- Open an issue first describing the feature
- Wait for maintainer feedback
- Discuss implementation approach
- Then start coding
Breaking Changes
- Discuss thoroughly before starting
- Provide migration guide
- Consider deprecation period
- Update all documentation
Tips for Good PRs
Keep PRs Small
- One feature/fix per PR
- Easier to review
- Faster to merge
- Less risk
Write Good Descriptions
- Explain the "why" not just the "what"
- Include screenshots for UI changes
- Link to related issues
Test Thoroughly
- Run all tests locally
- Test edge cases
- Test on different environments if applicable
Respond Promptly
- Address feedback quickly
- Keep the conversation going
- Be open to suggestions
Help Wanted
Look for issues labeled:
good first issue- Great for new contributorshelp wanted- Maintainers would appreciate helpdocumentation- Docs improvements neededbug- Known bugs to fix
Next Steps
- Development Setup - Set up your environment
- Code Style - Coding conventions
- Testing - Writing tests