Pull Requests
Guidelines for contributing to RMT Compose via pull requests.
Before You Start
- Check existing issues - Your change may already be in progress
- Open an issue first for significant changes to discuss approach
- Fork the repository to your GitHub account
Development Workflow
1. Create a Branch
bash
# Update main
git checkout main
git pull origin main
# Create feature branch
git checkout -b feature/your-feature-nameBranch naming:
feature/- New featuresfix/- Bug fixesdocs/- Documentationrefactor/- Code refactoring
2. Make Changes
- Follow Code Style guidelines
- Keep commits focused and atomic
- Write clear commit messages
3. Test Your Changes
bash
# Run development server
npm run dev
# Test manually:
# - Create notes
# - Edit expressions
# - Play audio
# - Save/load modules
# - Test edge cases
# Build to check for errors
npm run build4. Commit
bash
git add .
git commit -m "Add feature description"Commit Message Format
<type>: <short description>
<optional longer description>
<optional footer>Types:
feat- New featurefix- Bug fixdocs- Documentationrefactor- Code refactoringperf- Performance improvementtest- Testschore- Build/tooling
Examples:
feat: Add 19-TET scale support
Implements 19-tone equal temperament using SymbolicPower
for irrational frequency ratios.
Closes #42fix: Prevent circular dependency crash
Check for cycles before adding dependency to graph.5. Push and Create PR
bash
git push origin feature/your-feature-nameThen create a Pull Request on GitHub.
Pull Request Guidelines
Title
Clear, concise description of the change:
- "Add support for Bohlen-Pierce scale"
- "Fix audio glitch when pausing playback"
- "Improve expression compilation performance"
Description
Use this template:
markdown
## Summary
Brief description of what this PR does.
## Changes
- Added X
- Modified Y
- Removed Z
## Testing
How to test these changes:
1. Step one
2. Step two
## Screenshots
(if applicable)
## Related Issues
Closes #123Checklist
Before submitting:
- [ ] Code follows style guidelines
- [ ] No console errors or warnings
- [ ] Tested in latest Chrome and Firefox
- [ ] Documentation updated (if needed)
- [ ] Commit messages are clear
Code Review
What Reviewers Look For
- Correctness - Does it work as intended?
- Code quality - Is it readable and maintainable?
- Performance - Any obvious performance issues?
- Edge cases - Are edge cases handled?
- Documentation - Are complex parts documented?
Responding to Feedback
- Address all comments
- Push fixes as new commits (don't force push during review)
- Mark conversations as resolved when addressed
After Merge
Cleanup
bash
# Switch to main
git checkout main
# Update main
git pull origin main
# Delete local branch
git branch -d feature/your-feature-name
# Delete remote branch (usually done automatically)
git push origin --delete feature/your-feature-nameFollow Up
- Verify the change works in production
- Monitor for any reported issues
- Update documentation if needed
Types of Contributions
Bug Fixes
- Reproduce the bug
- Write a clear description
- Include steps to reproduce
- Add fix with test case
New Features
- Discuss in an issue first
- Consider backward compatibility
- Update documentation
- Add to user guide if user-facing
Documentation
- Check for accuracy
- Include examples
- Update screenshots if UI changed
- Test all code examples
Performance Improvements
- Include before/after benchmarks
- Explain the optimization
- Ensure no functionality changes
Getting Help
- Questions: Open a Discussion
- Bugs: Open an Issue
- Security: Email privately (don't open public issue)
See Also
- Development Setup - Environment setup
- Code Style - Style guidelines
- GitHub Flow - Git workflow