mo-lab-livive-net

ModelOps Lab

ModelOps Lab is a lightweight, self-hosted reference implementation of a complete machine learning operations lifecycle. The model is deliberately simple; the product is the operational path from a versioned dataset through training, promotion, serving, monitoring, drift detection, retraining, and rollback.

Current status: W0 scaffold. The repository currently contains the project packaging, validated configuration models, the frozen cross-wave contracts and their JSON Schemas, a CLI command surface, and CI. The lifecycle itself is not implemented yet: every modelops lifecycle command exits with status 2 and names the wave that will implement it. Do not expect data, training, serving, monitoring, or registry behavior in this revision.

Development setup

Requires uv. Python 3.12 is managed by uv.

uv sync
uv run modelops --help
uv run pytest

Lint and formatting:

uv run ruff check .
uv run ruff format --check .

Regenerate the committed contract schemas after an intentional contract change:

uv run python scripts/export_schemas.py

Runtime settings are read from MODELOPS_* environment variables or a local .env file. Copy .env.example to .env for development; the values there are not secrets.

Repository layout

Path Purpose
configs/ Validated YAML for training, promotion, and monitoring
src/modelops_lab/contracts/ Frozen Pydantic contracts and schema exporter
contracts/ Generated JSON Schemas, committed for review
src/modelops_lab/cli.py Typer command surface (stubs until their waves)
tests/unit/ Docker-free tests of config, contracts, schemas, and CLI
tests/integration/ Real Postgres/MLflow tests (later waves)
tests/e2e/ Docker Compose tests (later waves)

Documentation