nvidia/update-project-version
Update the NeMo Relay project version across Cargo, Node, and lockfiles without leaving release surfaces out of sync
npx skills add https://github.com/NVIDIA/NeMo-Relay --skill update-project-version
Use karpathy-guidelines alongside this skill for implementation or review
work. Keep changes scoped, surface assumptions, and define focused validation
before editing.
Use this skill when changing the released NeMo Relay version, including
pre-release or build-metadata variants used during packaging.
Cargo.toml [workspace.package].version is the source of truth for the Rustworkspace and Python build versioning.
Cargo.toml [workspace.dependencies] self-references aligned when theworkspace version changes.
crates/node/package.json carries its own npm package version and must stayaligned with the workspace-root package-lock.json.
integrations/openclaw/package.json carries the OpenClaw npm plugin versionand must stay aligned with the workspace-root package-lock.json.
package-lock.json records Node package versions underpackages["crates/node"].version and
packages["integrations/openclaw"].version. The workspace-root lockfile may
not have a top-level version field.
Cargo.toml and decide the exact targetversion string.
just set-version <version> to update release-version source files:[workspace.package].versionworkspace.dependencies.nemo-relay.versionworkspace.dependencies.nemo-relay-adaptive.versionworkspace.dependencies.nemo-relay-pii-redaction.versionworkspace.dependencies.nemo-relay-ffi.versionworkspace.dependencies.nemo-relay-cli.versioncrates/node/package.json versionintegrations/openclaw/package.json versionpackage-lock.json packages["crates/node"].versionpackage-lock.json packages["integrations/openclaw"].versionintegrations/openclaw/package.json dependencies["nemo-relay-node"]package-lock.jsonpackages["integrations/openclaw"].dependencies["nemo-relay-node"]
set_project_version should call the Cargo, Node, and coding-agent pluginversion helpers for the same target version.
set_cargo_workspace_version should update [workspace.package].versionplus workspace.dependencies.nemo-relay.version,
workspace.dependencies.nemo-relay-adaptive.version,
workspace.dependencies.nemo-relay-pii-redaction.version,
workspace.dependencies.nemo-relay-ffi.version, and
workspace.dependencies.nemo-relay-cli.version.
set_node_package_versions should update crates/node/package.json,integrations/openclaw/package.json, the corresponding package-lock.json
package entries, and the OpenClaw nemo-relay-node dependency entries in
both files.
set_node_package_version remains a compatibility alias.
set_npm_package_version remains the reusable npm JSON helper for Node
packaging recipes.
cargo check --workspace to refresh Cargo.lock if workspace packageentries changed.
regenerate ATTRIBUTIONS-Rust.md with
./scripts/generate_attributions.sh rust.
package-lock.json changed, regenerateATTRIBUTIONS-Node.md with
./scripts/generate_attributions.sh node.
true version pins from examples, generated attribution files, and unrelated
third-party versions.
rg -n '^version =|nemo-relay = \\{ version =|nemo-relay-adaptive = \\{ version =|nemo-relay-pii-redaction = \\{ version =|nemo-relay-ffi = \\{ version =|nemo-relay-cli = \\{ version =' Cargo.tomlrg -n '\"version\"' crates/node/package.json integrations/openclaw/package.json package-lock.jsoncargo check --workspace./scripts/generate_attributions.sh rust
npm install --ignore-scripts fromthe repository root or stronger Node validation through just test-node
just package-node and just package-python may settemporary non-release versions for packaging. Do not commit those temporary
suffixes as the canonical project version unless the release process requires
that exact string.
Cargo.toml or only Node package metadataCargo.lock, ATTRIBUTIONS-Rust.md, or ATTRIBUTIONS-Node.mdafter changing versioned inputs that feed them
generated attribution files
Cargo.tomlCargo.lockpackage.jsonpackage-lock.jsoncrates/node/package.jsonintegrations/openclaw/package.jsonjustfilescripts/licensing/attributions_lockfile_md.pyTake nvidia/update-project-version from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npm.
Without those the skill loads but fails at the first command.