Skip to main content

Contributing Guide

Thank you for your interest in contributing to OpenRobOps! This project is open source under the Apache License 2.0.

Ways to Contribute

  • Report bugs or request features by opening a GitHub issue
  • Submit pull requests with bug fixes, improvements, or new features
  • Improve documentation — typos, clarifications, and examples are always welcome
  • Join discussions on existing issues and PRs

Development Setup

Prerequisites

ToolVersionInstall
Node.jsv22Via nvm
Meteor3.4npx meteor
DockerWith Compose plugindocker compose
TerraformLatesthashicorp.com
tmuxAnyPackage manager

Quick Setup

# Clone the repo
git clone https://github.com/OpenRobOps/oro.git
cd oro

# Generate settings (optionally try with `--plan` first)
./scripts/generate-settings.sh

# Install dependencies
cd app && npm install
cd ../ingest && npm install
cd ..

# Start all services (tmux session with one tab per service)
./scripts/start-local-env.sh

See the Quick Start for detailed instructions.

Coding Standards

  • ESLint with Airbnb configuration (configured for app/; run with npx eslint) — lint before submitting changes
  • Follow existing patterns and conventions in the codebase
  • Keep changes focused — avoid unrelated refactors in the same PR

Testing

Run tests before submitting a pull request:

# Web app tests
cd app && npm test

# Ingest service tests
cd ingest && npm test

The web app uses Mocha with Chai assertions and Sinon for mocking. The ingest service uses the same stack with mongo-unit for database testing.

Pull Request Process

  1. Fork the repository and create a feature branch from main
  2. Make your changes with clear, descriptive commit messages
  3. Run linting and tests to verify nothing is broken
  4. Open a pull request against main with a description of what the change does and why
  5. A maintainer will review your PR — please be responsive to feedback

Reporting Bugs

When filing a bug report, include:

  • Steps to reproduce the issue
  • Expected vs. actual behavior
  • Environment details (OS, Node.js version, browser)
  • Relevant logs or screenshots

Requesting Features

Feature requests are welcome. Open an issue describing:

  • The problem you are trying to solve
  • Your proposed solution or approach
  • Any alternatives you have considered

Code of Conduct

We expect all participants to behave professionally and respectfully. Be constructive in discussions, welcoming to newcomers, and considerate of differing viewpoints.

License

By contributing to OpenRobOps, you agree that your contributions will be licensed under the Apache License 2.0.