PY_DIR := bindings/acdp-py
NODE_DIR := bindings/acdp-node
WASM_DIR := bindings/acdp-wasm
INTEROP := bindings/interop
.PHONY: help test sdk-py sdk-node sdk-wasm interop sdk-all clean-bindings ci-bindings audit-bindings
help:
@echo "Targets:"
@echo " test - cargo test --all-features on the root crate"
@echo " sdk-py - maturin develop + pytest in $(PY_DIR)"
@echo " sdk-node - npm install (honors the committed package-lock.json) +"
@echo " napi build:debug + node --test in $(NODE_DIR)"
@echo " sdk-wasm - wasm-pack build --target web --out-dir pkg in $(WASM_DIR)"
@echo " (optional: enables the wasm parity checks in \`make interop\`;"
@echo " not required for interop/CI otherwise)"
@echo " sdk-all - build both SDKs (no tests)"
@echo " interop - sdk-py + sdk-node + pytest $(INTEROP)"
@echo " audit-bindings - cargo-deny advisories ($(PY_DIR), $(NODE_DIR), $(WASM_DIR)) + npm audit"
@echo " ci-bindings - what bindings.yml runs locally"
@echo " clean-bindings - rm bindings/**/target node_modules and built artifacts"
test:
cargo test --all-features
sdk-py:
cd $(PY_DIR) && maturin develop
cd $(PY_DIR) && pytest tests/
sdk-node:
cd $(NODE_DIR) && npm install
cd $(NODE_DIR) && npm run build:debug
cd $(NODE_DIR) && node --test tests/*.mjs
sdk-wasm:
cd $(WASM_DIR) && wasm-pack build --target web --out-dir pkg
sdk-all: sdk-py-build sdk-node-build
sdk-py-build:
cd $(PY_DIR) && maturin develop
sdk-node-build:
cd $(NODE_DIR) && npm install && npm run build:debug
interop: sdk-py-build sdk-node-build
cd $(INTEROP) && pytest
audit-bindings:
cargo deny --manifest-path $(PY_DIR)/Cargo.toml check --config deny.toml advisories
cargo deny --manifest-path $(NODE_DIR)/Cargo.toml check --config deny.toml advisories
cargo deny --manifest-path $(WASM_DIR)/Cargo.toml check --config deny.toml advisories
cd $(NODE_DIR) && npm install && npm audit
ci-bindings: test sdk-py sdk-node interop audit-bindings
clean-bindings:
rm -rf $(PY_DIR)/target $(NODE_DIR)/target $(NODE_DIR)/node_modules
rm -f $(NODE_DIR)/index.js $(NODE_DIR)/index.d.ts $(NODE_DIR)/acdp.*.node