Maintainer Guide¶
This guide is for manual SDK maintenance: the checks to run, the places to edit, and the small habits that keep IINTS-AF releasable without having to rediscover the project every time.
The Short Version¶
For normal day-to-day work:
tools/dev/sdk_check.sh quick
For edge/Pi/UNO Q changes:
tools/dev/sdk_check.sh edge
For docs/manual changes:
tools/dev/sdk_check.sh docs
Before a release:
tools/dev/sdk_check.sh full
tools/dev/release_audit.sh 1.5.4
Or combine the release check:
IINTS_RELEASE_VERSION=1.5.4 tools/dev/sdk_check.sh release
Maintenance Rhythm¶
Use this rhythm when you work manually:
- Make one focused change.
- Run
tools/dev/sdk_check.sh quick. - If the change touches edge hardware flows, run
tools/dev/sdk_check.sh edge. - If the change touches docs or manuals, run
tools/dev/sdk_check.sh docs. - Commit only the relevant source/docs/test files.
- Leave generated runtime folders, caches, and local demo output untracked.
The common local-only folders are:
.cache/.cache_eucys/.mplt_eucys/iints_uno_q_demo/results/site/build/dist/
Release Checklist¶
When preparing a release, update these files together:
pyproject.tomlsrc/iints/__init__.pydocs/releases/vX.Y.Z.mddocs/releases/INDEX.mdmkdocs.ymldocs/UPDATING.mddocs/manuals/IINTS-AF_SDK_Manual.mddocs/manuals/pandoc.yaml
Then run:
IINTS_RELEASE_VERSION=X.Y.Z tools/dev/sdk_check.sh release
If that passes:
git add <changed files>
git commit -m "Release vX.Y.Z"
git tag vX.Y.Z
git push origin main
git push origin vX.Y.Z
What Each Check Covers¶
quick checks:
- targeted high-risk tests
flake8on source, tests, and toolsmypy src/iints/
edge checks:
- long-study config and resume behavior
- edge workspace scaffolding
- Pi/UNO Q CLI paths
docs checks:
mkdocs build --strict- technical manual PDF rendering
full checks:
- full test suite
- full lint
- full type check
- docs build
- package build
- manual PDF build
release checks:
- everything in
full - version consistency across package metadata, docs, release notes, and manual metadata
High-Value Maintenance Backlog¶
The SDK is healthy, so the best next work is mostly maintainability:
- Split
src/iints/cli/cli.pyinto smaller command modules. - Split
src/iints/live_patient/edge_ops.pyinto deploy, offline bundle, study, and remote helpers. - Add
iints edge study-statusfor long-running Pi studies. - Add disk-space and heartbeat checks to long studies.
- Convert long-study YAML validation into an explicit schema.
- Make package entry point names machine-friendly while keeping display names in UI output.
- Add manual PDF rendering to CI.
- Update GitHub Actions when Node runtime warnings require it.
- Either finish Tidepool support or label it clearly as experimental.
- Keep docs task-oriented: research, edge, data certification, and maintainer paths.
When Something Fails¶
Start with the smallest relevant check. If a docs change fails the full suite, run tools/dev/sdk_check.sh docs first. If an edge change fails, run tools/dev/sdk_check.sh edge.
For release-version mistakes, run:
tools/dev/release_audit.sh X.Y.Z
The audit prints the exact file and expected value when a version reference is missing.