Skip to content

How to Contribute

Dmitrii Karataev edited this page Feb 26, 2026 · 2 revisions

How to Contribute

We welcome contributions to RocketRide Engine. This page walks through the process from forking to merging.

Getting Started

  1. Fork the repository on GitHub: rocketride-org/rocketride-server

  2. Clone your fork:

    git clone https://github.com/YOUR-USERNAME/rocketride-server.git
    cd rocketride-server
  3. Add the upstream remote:

    git remote add upstream https://github.com/rocketride-org/rocketride-server.git
  4. Build the project:

    ./builder build

    See Installation for detailed setup instructions.

Development Workflow

1. Create a Branch

Always branch from develop (the integration branch):

git checkout develop
git pull upstream develop
git checkout -b feature/your-feature-name

See PR Process for branch naming conventions.

2. Make Changes

Follow the Code Style guidelines for the language you are working in. Key points:

  • C++: C++17, meaningful names, MIT license header
  • Python: PEP 8, type hints, single quotes, docstrings, MIT license header
  • TypeScript: ESLint strict mode, interfaces over types, JSDoc, MIT license header

3. Test Your Changes

# Run all tests
./builder test

# Test specific modules
./builder nodes:test            # Pipeline node contract tests
./builder nodes:test-full       # Integration tests (requires running server)
./builder client-typescript:test
./builder client-python:test

Make sure all existing tests pass and add new tests for new functionality.

4. Commit

Use Conventional Commits format:

git add .
git commit -m "feat: add support for new vector store"

Prefixes:

Prefix Use For
feat: New features
fix: Bug fixes
docs: Documentation changes
style: Formatting, no code change
refactor: Code restructuring
test: Adding or updating tests
chore: Build process, tooling, dependencies

5. Push and Open a PR

git push origin feature/your-feature-name

Open a Pull Request against the develop branch on GitHub. See PR Process for template requirements and review workflow.

What to Contribute

  • Bug fixes -- check the issue tracker for open bugs
  • New pipeline nodes -- add a new node under nodes/src/nodes/
  • Documentation improvements -- update README files, wiki pages, or inline comments
  • Tests -- improve test coverage for existing functionality
  • Performance improvements -- optimize hot paths with benchmarks

Reporting Issues

When filing an issue, include:

  1. A clear, descriptive title
  2. Steps to reproduce
  3. Expected vs. actual behavior
  4. Environment details (OS, Node.js version, etc.)
  5. Relevant logs or error messages

Feature Requests

  1. Check existing issues for duplicates
  2. Describe the use case and expected behavior
  3. Consider implementation implications

Questions

Next Steps

Clone this wiki locally