Skip to content

Reference ยท Contributor checks

Contributor checks

Repository map

Folder Purpose
src/ Firmware, public SDK, CLI implementation and management server/console
services/ Reusable, independently deployed diagnostics and tools
config/ Chip capabilities and board metadata
examples/ Runnable examples and reference application services
tests/ Automated checks, test fixtures and explicit hardware tests
tools/ Build/release utilities, documentation support and agent skills
docs/ System model, task guides and references

Application source and deployment declarations belong in the project created by micros new, outside this SDK checkout. The product website lives in the separate micros-website repository; the management server and console remain here. build/ is disposable generated output. .micros/ is private operational and recovery state: preserve it.

Set up and test

Install Git, CMake 3.24+, Ninja, C17/C++17 compilers and a Python version supported by pyproject.toml. Run from the repository root:

./micros setup
cmake -S . -B build/host -G Ninja -DCMAKE_BUILD_TYPE=Debug \
  -DPython3_EXECUTABLE="$PWD/build/python/bin/python"
cmake --build build/host
ctest --test-dir build/host --output-on-failure

The host suite needs no board or operator credentials. The host CI workflow defines the tested operating systems and tool versions, and also checks new-application generation, composition and tests. Install Node.js to include the browser-free console checks locally; they need no npm packages or browser. Hardware tests remain explicit operations.

Add -R TEST_NAME to CTest for a focused run. Failure details are in build/host/Testing/Temporary/LastTest.log; the test index locates checks. Console development lives with the server source.

Check documentation

After setup:

build/python/bin/python -m pip install -r tools/docs/requirements.txt
build/python/bin/python -m mkdocs build --strict

The build checks repository entry-point links as well as published pages. Source links resolve to repository files through tools/docs/hooks.py. Published pages cannot link into archived documentation. Check changed journeys, section links, search and a narrow viewport when their presentation changes.

Give each fact one authoritative home. Link to CLI help, validators, and working examples for exact contracts; avoid copying flag/schema catalogs. Keep the homepage's illustrative greenhouse distinct from executable examples. Historical preview evidence stays dated rather than implying current coverage. Locate implementation ownership in the repository map.

Submit a change

Use service.toml contracts and unit TOML. Keep developer-owned services and deployment declarations in independent application projects. Include relevant regression coverage and explain changed behavior, validation and hardware limits. Do not commit generated output, device credentials, private base artifacts or operational history; preserve unrelated changes and existing recovery state.

Report a reproducible issue with SDK revision, OS/Python version, target and sanitized command output. Hardware reports also need base/release identities, expected behavior and observed behavior. Never post tokens or private ELF files.