When creating a new release:
- Update the version in
library.propertiesto match the release tag - Create the GitHub release with a plain version tag (e.g.
1.2.3, NOTv1.2.3) — Arduino requires this format - The Godot addon build workflow triggers automatically on tag push and attaches
amy-godot-addon.zipto the release
- Local builds use
setup_godot.shwhich generates the SConstruct, C++ source, and GDScript wrapper inline - CI builds use the
godot/directory (SConstruct, src/, etc.) directly via.github/workflows/godot-addon.yml amy_midi.cis excluded from the Godot build because it conflicts with platform stubs. Any new functions added toamy_midi.c(or other excluded files) that are called from core AMY code need stub implementations added in both:godot/src/amy_platform_stubs.c(for CI builds)- The
amy_platform_stubs.csection ofsetup_godot.sh(for local builds)
- macOS builds produce a
.frameworkbundle; thegh authtoken needsworkflowscope to push workflow file changes
The live Python REPL at docs/tutorial.html runs MicroPython in the browser with the amy Python module frozen in. Updating it requires rebuilding MicroPython from the shorepine/tulipcc repo:
- In
tulipcc, update the amy submodule to latest:cd tulipcc && git submodule update --remote amy - Rebuild MicroPython:
cd tulip/amyrepl && make clean && make - Copy the output to amy's docs:
cp build-standard/tulip/obj/micropython.mjs build-standard/tulip/obj/micropython.wasm <amy-repo>/docs/ - If the AMY C code or JS API also changed, rebuild those too:
cd <amy-repo> && make web && make deploy-web
The docs/amy.js file is a concatenation of the Emscripten build (build/amy.js), src/amy_connector.js, and build/amy_api.generated.js. The JS API is auto-generated from amy/__init__.py by scripts/gen_amy_js_api.py.
- The
bwhitmanaccount needsworkflowscope on its token to push changes to.github/workflows/files. Rungh auth refresh -h github.com -s workflowif pushes are rejected. - SSH pushes to
shorepine/amyuse thebrianklaykey by default; use HTTPS withgh auth tokenforbwhitmanaccess.