Lifecycle interface

Core lifecycle for modular robotics systems

Configure · Activate · Run · Transition · Shutdown

Contributing

Scope

This repository is in early development. Contributions should remain small, explicit, and easy to review.

Environment

The project uses uv for workspace dependency management. ROS 2 Jazzy and rclpy are expected to come from the system installation.

Set up a local environment with development tooling:

uv sync --extra dev

If you also want the documentation toolchain:

uv sync --extra dev --group docs

Validation

Run the standard checks before proposing changes:

uv run ruff check .
uv run ruff format --check .
uv run pyright
uv run pytest

If you touch documentation pages or docstrings, also build the docs:

uv run --group docs python -m sphinx -b html docs docs/_build/html

Repository Rules

Keep these design constraints in mind when contributing:

  • preserve native ROS 2 lifecycle semantics

  • do not add a parallel hidden state machine

  • create topic resources during configure

  • gate runtime behavior with activation state

  • release topic resources during cleanup

  • preserve typing and keep public APIs stable unless a change is explicitly intended

Documentation

Use concise Google-style docstrings for Python APIs. For broader documentation, prefer adding or updating Sphinx pages under docs/ instead of overloading the README.