* First sweep packages + some minor tweaking * Second sweep * Regenerate lockfile + package.json mods * Regenerate lockfile again * Fix CI * Fix CI again * All building properly * unblock * Tweak examples * Comments + readme + fix rotten unit test
sdk-version-bump
Tool to update version numbers across the SDK packages, both Cargo
(wasm/smolmix, wasm/client) and TS (@nymproject/mix-tunnel,
@nymproject/mix-fetch, @nymproject/mix-dns, @nymproject/mix-websocket,
plus the legacy @nymproject/sdk family).
Usage
This tool is expected to be run by CI; the snippets below are for manual use from the repo root.
Full release (Rust + TS in parity)
This is the default. Use it when smolmix-wasm has changed and the TS SDK must publish a matching version.
cargo run -p sdk-version-bump remove-suffix- Build everything and publish to crates.io / npm.
cargo run -p sdk-version-bump bump-version— bumps every package fromX.Y.ZtoX.Y.(Z+1)-rc.0, and rewrites every@nymproject/...dep specifier of the form>=X.Y.Z-rc.W || ^Xaccordingly.
TS-only release
Use this when the TS SDK needs a bump but smolmix-wasm itself hasn't changed.
The Cargo crates are left untouched, and downstream package.json files keep
their existing dep ranges for @nymproject/smolmix-wasm and
@nymproject/nym-client-wasm (so they continue to resolve to the last
published wasm version).
cargo run -p sdk-version-bump remove-suffix --ts-only- Build the TS packages and publish to npm.
cargo run -p sdk-version-bump bump-version --ts-only
Pre-release (rc bump)
To increment just the -rc.X counter (X.Y.Z-rc.W → X.Y.Z-rc.W+1):
cargo run -p sdk-version-bump bump-version --pre-release
Combine with --ts-only if you're rc-bumping the TS layer alone.
What gets touched
| What | Where it's declared | Behaviour under --ts-only |
|---|---|---|
Cargo.toml package.version of each Cargo crate |
register_cargo(...) |
skipped |
package.json version of each TS package |
register_json(...) |
bumped |
@nymproject/... dep ranges in dependencies / peerDependencies / devDependencies / optionalDependencies / bundledDependencies |
register_known_js_dependency(...) |
bumped, except cargo-derived ones |
Cargo-derived JS dep ranges (@nymproject/smolmix-wasm, @nymproject/nym-client-wasm) |
register_cargo_derived_js_dependency(...) |
left alone |
workspace:*, file:.., link:.., npm:.. specifiers |
n/a (skipped at parse time) | always skipped — pnpm rewrites them at publish |
Adding a new package
- If it's a Cargo crate:
packages.register_cargo("relative/path"). - If it's a TS package:
packages.register_json("relative/path"). - If the package is consumed by other packages as a dep, also add its npm
name to either
register_known_js_dependency(TS-driven version) orregister_cargo_derived_js_dependency(wasm-pack-driven version).