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.