Publishing a module
Modules are code, so the apps only run them if they are signed. The full rules are in Signing and the store's layout in Bleep Store; this page is the practical path.
1. Build the .wasm files
scripts/build/build-web.sh --docker --modules-only
This compiles every module with Emscripten (in Docker, so no local SDK is needed). Later builds recompile only the modules whose files changed. BLEEP_WEB_ONLY=oscillator,filter builds just those.
2. Package
scripts/release/package-module.py
One reproducible .bleepmod per module, in build/store/modules. The packager checks each .wasm against the Module ABI and adds your licence and provenance information.
3. Get a developer key and a token
A publisher needs two things from the store's admin: a signing kit (your private key and a certificate issued under the store's root) and a release token for your publisher name. Module ids outside the store's own team carry your publisher namespace. Keep both private; the token is never a command-line argument.
4. Release
scripts/release/release.py --modules --level patch \
--registry https://<store address> \
--token-file ~/.bleep-release-token --kit ~/.bleep-signing-kit.json
--modules releases only the modules whose package content changed since their newest published version. --dry-run checks everything, including your kit, without publishing. Versions are immutable: a fix is a new version.
Compatibility
Your package states the module ABI it was built for (requires.engineAbi in module.json). A host that does not support it refuses the module with a message instead of crashing, and the store tells the user which app version is needed.