Submitting Changes
This guide covers the process for contributing code improvements to Rayforge.
Create a Feature Branch
Create a descriptive branch for your changes:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-number-description
Make Your Changes
- Follow the existing code style and conventions
- Write clean, focused commits with clear messages
- Add tests for new functionality
- Update documentation as needed
Test Your Changes
Run the full test suite to ensure nothing is broken:
# Run all tests and linting
pixi run test
pixi run lint
Sync with Upstream
Before creating a pull request, sync with the upstream repository:
# Fetch the latest changes
git fetch upstream
# Rebase your branch on the latest main
git rebase upstream/main
Submit a Pull Request
-
Push your branch to your fork:
git push origin feature/your-feature-name -
Create a pull request on GitHub with:
- A clear title describing the change
- A detailed description of what you changed and why
- Reference to any related issues
- Screenshots if the change affects the UI
Code Review Process
- All pull requests require review before merging
- Address feedback promptly and make requested changes
- Keep the discussion focused and constructive
Merge Requirements
Pull requests are merged when they:
- Pass all automated tests
- Follow the project's coding style
- Include appropriate tests for new functionality
- Have documentation updates if needed
- Are approved by at least one maintainer
Additional Guidelines
Commit Messages
Use clear, descriptive commit messages:
- Start with a capital letter
- Keep the first line under 50 characters
- Use the imperative mood ("Add feature" not "Added feature")
- Include more detail in the body if needed
Small, Focused Changes
Keep pull requests focused on a single feature or fix. Large changes should be broken into smaller, logical pieces.
Discuss First
For major changes, open an issue first to discuss your approach before investing significant time.
Need Help?
If you're unsure about any part of the contribution process, don't hesitate to ask for help in an issue or discussion.