Skip to content

Latest commit

 

History

History
90 lines (63 loc) · 2.56 KB

File metadata and controls

90 lines (63 loc) · 2.56 KB

Contributing to OMEN

Thank you for your interest in contributing to OMEN (Open Mission Engine). This guide covers contribution processes, standards, and requirements.


Ways to Contribute

  • Bug reports — File issues for defects in non-sensitive components
  • Documentation improvements — Corrections, clarifications, translations
  • Plugin submissions — New mission application plugins following the SDK
  • Adapter submissions — New CAL data adapters for additional protocols
  • Evaluation scenarios — New deterministic test scenarios
  • UX feedback — Accessibility and usability reports

Contribution Requirements

Contributor License Agreement (CLA)

All contributors must sign the DaScient CLA before any pull request is merged. Government employees contributing in their official capacity should indicate this in the PR.

Code Review Standards

  • All PRs require at least one approved review
  • Security-sensitive changes require a security-focused reviewer
  • AI/agentic changes require review against the AI Governance policy
  • Plugin and adapter submissions must pass the SDK test harnesses

Automated Checks

All PRs must pass:

  • Unit and integration tests
  • Linting (ruff for Python, eslint for TypeScript/JavaScript)
  • Type checking (mypy for Python, tsc for TypeScript)
  • Security scan (bandit for Python, semgrep rules)
  • Dependency audit (pip-audit, npm audit)
  • SBOM generation (no new high/critical vulnerabilities)

Security Disclosure

Do not file public GitHub issues for security vulnerabilities.

To report a security issue:

  1. Email security@dascient.com with a description of the vulnerability
  2. Include steps to reproduce, affected versions, and potential impact
  3. Allow 90 days for a fix before public disclosure
  4. You will receive acknowledgment within 48 hours

Code Style

Language Formatter Linter Type Checker
Python ruff format ruff check mypy --strict
TypeScript prettier eslint tsc --noEmit
Go gofmt golangci-lint Built-in
Rust rustfmt clippy Built-in

Development Setup

# Python services
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt

# TypeScript / map-app
cd map-app
npm install

# Run pre-commit checks
pre-commit install
pre-commit run --all-files

Related Documents