Runbook: SDK Publishing & Release to Public Registries (crates.io & npm)
1. Release Architecture & Triggers
SDK publishing is automated via .github/workflows/release.yml.
| Trigger | Workflow Behavior | Target |
|---|---|---|
| Full Release: builds and publishes container images, Helm charts, crates.io crate, and npm package | Production Registries |
| Continuous Integration / Staging images (no SDK publishing) | GHCR ( |
| Manual smoke test: performs dry-runs of | None (Dry Run) |
2. Secrets & Registry Authentication
The automated release workflow requires the following repository secrets configured in GitHub repository settings ():
A. crates.io (vsms-sdk-rust)
Secret Name:
CRATES_IO_TOKENSource: Generate an API token on crates.io/settings/tokens with
publish-update/publish-newpermissions forvsms-sdk-rust.
3. Pre-Release Verification (Local Dry-Run)
Before cutting a release tag, run local verification checks:
1. Rust SDK (vsms-sdk-rust)
# Ensure vendored schema is up to date
cargo xtask sdk-schema-check
# Run crate checks and dry-run packaging
cd sdks/rust/vsms-sdk-rust
cargo check
cargo test
cargo publish --dry-run2. Node.js SDK (@vaam-apps/vsms-node)
The package’s signed transport is sdks/rust/vsms-sdk-wasm compiled to WebAssembly and shipped inside it (wasm/), so the build needs Rust with the wasm32-unknown-unknown target and the wasm-bindgen command-line tool at exactly the version sdks/rust/Cargo.lock pins: just wasm-tools installs both (release.yml’s `publish-node-sdk job runs the same recipe).
cargo xtask sdk-parity-check
just wasm-tools
cd sdks/node/vsms-sdk-node
pnpm install
pnpm run build
pnpm run typecheck
pnpm run test
pnpm pack --dry-run
pnpm publish --dry-run --no-git-checks4. Cutting a Release
To release a new version of the SDKs:
Bump versions in:
sdks/rust/vsms-sdk-rust/Cargo.toml(version = "x.y.z")sdks/node/vsms-sdk-node/package.json("version": "x.y.z")
Commit and merge changes to
main.Create and push a git tag:
bashgit tag v0.1.0 git push upstream v0.1.0Monitor GitHub Actions:
Check the
releaseworkflow execution under the Actions tab.Verify
publish-rust-sdkcompletes and crate is live onhttps://crates.io/crates/vsms-sdk-rust.Verify
publish-node-sdkcompletes and package is live onhttps://www.npmjs.com/package/@vaam-apps/vsms-node.