# magazine-bold — build & publish helpers (wasm .bnp workflow) # # The theme compiles to a wasip1 reactor-mode wasm module packed into a .bnp # artifact (`ninja plugin build`). The legacy .so path is retired (WO-WZ-015): # the CMS is wasm-native and can no longer load .so plugins. Distribution is # publish-to-registry -> InstallFromRegistry (hot-load, no restart). # # Usage: # make build # compile wasm + pack magazine-bold-.bnp # make verify # validate the built .bnp (layout/abi/name/size) # make archive-check # prove a clean `git archive HEAD` compiles to wasm # make publish # ninja plugin publish --bnp (to the active registry) # make templ # regenerate templ Go files # make clean # remove build artefacts .PHONY: build verify archive-check publish templ clean help PLUGIN_NAME := magazine-bold NINJA := ninja BNP := $(PLUGIN_NAME)-$(shell grep '^version' plugin.mod | sed 's/.*"\(.*\)"/\1/').bnp # Compile to wasm and pack the .bnp (GOOS=wasip1 GOARCH=wasm, DESCRIBE probe, # tar.zst of plugin.wasm + plugin.mod + manifest.pb + schemas/ + assets/). build: $(NINJA) plugin build --dir . # Validate the built .bnp exactly as the registry/loader will. verify: $(NINJA) plugin verify $(BNP) # Prove a clean `git archive HEAD` (what publish ships) compiles to wasm. archive-check: @T=$$(mktemp -d /tmp/archive-check-$(PLUGIN_NAME).XXXXXX) && \ trap 'rm -rf "$$T"' EXIT && \ git archive HEAD | tar -x -C "$$T" && \ cd "$$T" && GOOS=wasip1 GOARCH=wasm go build -buildmode=c-shared -o "$$T/check.wasm" . && \ echo "archive-check OK" # Publish the prebuilt .bnp to the active registry. # Pass --host https://my.localdev.blockninjacms.com for the dev orchestrator. publish: build $(NINJA) plugin publish --bnp $(BNP) # Regenerate templ Go files locally. templ: templ generate # Remove build artefacts. clean: rm -f $(PLUGIN_NAME)-*.bnp $(PLUGIN_NAME).so plugin.wasm help: @echo "Targets:" @echo " build Compile wasm + pack the .bnp" @echo " verify Validate the built .bnp (loader-identical checks)" @echo " archive-check Prove a clean git archive HEAD compiles to wasm" @echo " publish Publish the .bnp to the active registry" @echo " templ Regenerate templ Go files" @echo " clean Remove build artefacts"