Thank you for your interest in contributing to RocketRide Engine! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to abide by our Code of Conduct. Please be respectful and considerate in all interactions.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/rocketride-org/rocketride-server.git cd rocketride-server - Set up your development environment following the Setup Guide
main— Stable release branchdevelop— Integration branch (target all PRs here)release/*— Release preparation branches
All other branches must follow the naming convention:
<type>/RR-<issue-number>-<short-description>
| Type | Use |
|---|---|
feat/ |
New functionality |
fix/ |
Bug fix |
hotfix/ |
Critical production fix |
docs/ |
Documentation only |
refactor/ |
Code cleanup |
chore/ |
Tooling, deps, build |
Examples:
fix/RR-123-sql-injection-preventionfeat/RR-456-add-nomic-embeddingschore/RR-789-pin-release-deps
A GitHub Ruleset enforces this convention — pushes with non-conforming branch names will be rejected.
-
Open or find an issue — every PR must be linked to an issue
-
Create a branch from the issue:
# Preferred: use GitHub CLI (auto-links the branch to the issue) gh issue develop 123 --name "fix/RR-123-short-description" --checkout # Or manually: git checkout develop git pull origin develop git checkout -b fix/RR-123-short-description
-
Make your changes, ensuring:
- Code follows the project style guidelines
- All tests pass
- New code has appropriate tests
- Documentation is updated as needed
-
Commit your changes with clear, descriptive messages:
git add . git commit -m "feat: add new feature description"
We follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Test additions or modificationschore:- Build process or auxiliary tool changes
-
Push your branch to GitHub:
git push origin fix/RR-123-short-description
-
Open a Pull Request against the
developbranch -
Link the issue — use
Fixes #123,Closes #123, orResolves #123in the PR description (required by CI) -
Fill out the PR template with:
- Description of changes
- Linked issue number
- Testing performed
- Breaking changes (if any)
-
Ensure all CI checks pass before requesting a review. If you see unexpected failures (compilation errors, test failures unrelated to your changes), your branch is likely out of date with
develop. Rebase before pushing:git fetch origin git rebase origin/develop
PRs with failing checks will not be reviewed until the checks are green.
If compilation still fails after rebasing and there is no open issue tracking it, and the code compiles cleanly on your machine — you've found a bug in CI or the build itself. Please open an issue and feel free to follow up with a PR to fix it.
-
Wait for code review and address feedback
- Use C++17 features
- Follow the existing code style
- Use meaningful variable and function names
- Add comments for complex logic
- Include MIT license header in new files
- Follow PEP 8 style guidelines
- Use type hints where appropriate
- Use single quotes for strings (as configured in ruff)
- Add docstrings to all public functions and classes
- Include MIT license header in new files
- Follow ESLint configuration
- Use TypeScript strict mode
- Prefer interfaces over type aliases for objects
- Add JSDoc comments to public APIs
- Include MIT license header in new files
# All tests
./builder test
# C++ engine tests only
./builder server:test
# Python tests only (nodes, AI, clients)
./builder nodes:test
./builder ai:test
./builder client-python:test
# TypeScript tests only
./builder client-typescript:test- Write unit tests for new functionality
- Ensure edge cases are covered
- Use descriptive test names
- Mock external dependencies appropriately
- Update README files when adding new features
- Add inline comments for complex code
- Update API documentation for public interfaces
- Include examples for new functionality
When reporting issues, please include:
- Clear, descriptive title
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, versions, etc.)
- Relevant logs or error messages
Feature requests are welcome! Please:
- Check existing issues for duplicates
- Describe the use case
- Explain the expected behavior
- Consider implementation implications
If you have questions, feel free to:
- Open a GitHub Discussion
- Check existing documentation
- Review closed issues for similar questions
Thank you for contributing to RocketRide Engine!