pydevices-examples scripts

August 12, 2026 · View on GitHub

These scripts maintain the examples, utility manifests, documentation, and PyScript/PWA gallery. Product publishing scripts live in sibling pydevices.

GitHub Actions

WorkflowTriggerPurpose
manifests.ymlrelevant source/config paths + manualVerify example, utility, and gallery manifests
tests.ymlexamples, utils, tests, scripts, gallery + manualRun pydevices-examples tests against canonical hardware packages
docs.ymldocs, MkDocs config/helpers + manualVerify the integration docs build
deploy-pyscript.ymlgallery/example paths + manualAssemble and publish the browser showcase

pydevices-examples has no package-release workflow. Tags here do not publish reusable libraries. Core TestPyPI and MIP releases are tagged and published from pydevices; companion repos publish their own prefixed distributions.

Normal maintenance

After adding, removing, or renaming examples or utilities:

./scripts/install_refresh_manifests.sh --audit
./scripts/install_refresh_manifests.sh
python scripts/gallery_generator.py
python scripts/gallery_generator.py --check

install_gen_manifests.py enumerates pydevices-examples applications/utilities and the canonical sibling pydevices/lib/{eventsys,multimer} sources. The gallery mounts them at ./lib/eventsys/... and ./lib/multimer/... (same browser tree as utils/examples). The local server and Pages workflow map those URLs to the product source.

Normal gallery generation captures missing 240×320 thumbnails. Existing web/pyscript/thumbnails/*.png files are preserved; --check never launches examples.

Script groups

PrefixScriptsPurpose
install_install_gen_manifests.py, install_refresh_manifests.shExample/helper manifests and gallery mounts
pyscript_cache/version helpersBuild the deployable PWA
mkdocs_reference/notebook generatorsBuild pydevices-examples integration docs
gen_gen_package_pyi.shGenerate editor stubs from canonical sibling product sources

Package ownership

Generated packages/examples.json and packages/utils.json belong here. The manual Peter Hinch integration manifests also remain here:

  • micropython-micro-gui.json
  • micropython-nano-gui.json
  • micropython-touch.json

Core packages (displaydev, audiodev, events, keys, multimer, and optional eventsys) come from the unprefixed PyDevices MIP index or prefixed TestPyPI distributions. Board configs and drivers come from pydevices. Companion packages (pygraphics, palettes, pdwidgets, and LVGL) come from their own repositories.

Publishing names

TestPyPI distributions use pydevices-*; imports and MIP names stay unprefixed. The gallery URL generator follows the same rule: Pyodide dependencies are rewritten to prefixed wheel names, while MicroPython dependencies use unprefixed MIP names.