Skip to content

Developer Guide

This page is for people building Machine Lab itself: runtime code, lab scaffolding, docs, tests, examples, and releases.

Audience Boundaries

AudienceStable surfaceKeep out
Studentsgenerated workspace, SDK headers, lab handouts, machinelab testCMake, runtime C++, CI, reference solutions
Instructorslabs, examples, scripts, adoption docs, selected testsaccidental protocol internals
Developerswhole repositoryunclear student-facing copy

Source Map

PathOwnership
runtime/C++ host runtime and devices
runtime/cli/setup, lab catalog, tests, CLI support
sdk/include/lcom/public C headers copied into workspaces
sdk/client/C client linked into student programs
course/labs/templates/starter contracts
course/labs/docs/source lab handouts
docs-site/public website
dev/lab-solutions/reference implementations
dev/lab-tests/predefined lab checks

Test Gate

sh
devenv shell -- machinelab-test
npm run docs:check
git diff --check

Docs Site

The public site uses VitePress:

sh
npm install
npm run docs:dev
npm run docs:build
npm run deploy:docs

Cloudflare Pages deploys from docs-site/.vitepress/dist. Push-to-deploy uses .github/workflows/docs.yml and requires CLOUDFLARE_API_TOKEN plus CLOUDFLARE_ACCOUNT_ID repository secrets.

Course/docs licensed CC BY 4.0. Code licensed MIT.