rmtoo

Developer Guide

Complete guide for rmToo developers, contributors, and advanced users.

Getting Started

Development Setup

Planning and Vision

Architecture Overview

Core Components

rmToo follows a plugin-based architecture:

Input Processing

Processing Engine

Output Generation

Plugin Architecture

All plugins are registered through setuptools entry points:

entry_points={
    'rmtoo.input.plugin': [
        'ReqName = rmtoo.inputs.ReqName:ReqName',
        # ...
    ],
    'rmtoo.output.plugin': [
        'html = rmtoo.outputs.html:html',
        # ...
    ],
}

Development Workflow

Setting Up Development Environment

  1. Clone the repository
  2. Create virtual environment
  3. Install in development mode: pip install -e .
  4. Run tests: tox or pytest

Making Changes

  1. Create feature branch
  2. Implement changes with tests
  3. Run full test suite
  4. Submit pull request

Testing

Run tests with: tox (recommended) or pytest

Code Quality

Extending rmToo

Adding Input Plugins

  1. Create class in rmtoo/inputs/ inheriting from appropriate base
  2. Add entry point in setup.py
  3. Implement required methods for tag parsing
  4. Add tests

Adding Output Plugins

  1. Create class in rmtoo/outputs/ inheriting from ExecutorTopicContinuum
  2. Add entry point in setup.py
  3. Implement lifecycle methods for artifact generation
  4. Add tests

Configuration System

Key Development Areas

Quality Assurance

Performance Considerations

Compatibility

Getting Help

Development Resources

Documentation

Contributing

We welcome contributions! Please:

  1. Read the Contributing Guide
  2. Set up your Development Environment
  3. Follow our coding standards
  4. Include tests with your changes
  5. Submit pull requests for review

Ready to contribute? Start with the Contributing Guide!