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

Update Project Version

Use this skill for project release-version changes, including prerelease and build-metadata variants.

Invariants

  • Cargo.toml [workspace.package].version is the Rust source of truth.
  • just set-version <version> is the single repository entrypoint for updating normal project-version surfaces. Do not hand-edit its existing targets.
  • Every new package or plugin that participates in the unified NeMo Relay release, plus its project-version dependencies and lockfile entries, must be covered by the version automation. If a value does not derive automatically, update the automation in the same change that introduces it.
  • Python surfaces use PEP 440 translations where required; Cargo, npm, and plugin manifests use the repository SemVer form.

Workflow

Use this sequence:

  1. Read the current version from Cargo.toml and choose the exact target.
  2. Compare project-owned package/workspace members and plugin manifests with the helpers called by set_project_version, paying particular attention to recent or in-scope additions. A new manifest, publishable package, internal dependency pinned to the project version, or lockfile package entry is a signal that just set-version may need to change.
  3. Run just set-version <version>.
  4. Review the diff, then search tracked Cargo, Python, npm, lockfile, and plugin manifests for the exact old version. Classify matches rather than replacing them blindly: third-party pins and examples can legitimately match.
  5. If a project-owned release surface remains on the old version, update the appropriate helper and rerun just set-version <version>. Read references/version-automation.md only when the version topology or helper implementation changes.
  6. Refresh lockfiles or attribution files only when their versioned inputs changed. Do not run language suites for a metadata-only bump.

Verification

Before handoff, verify:

  • Confirm every project-owned manifest version and internal dependency resolves to the target SemVer or its expected PEP 440 translation, and that unrelated versions did not change.
  • Rerun just set-version <version> when automation changed; it should be idempotent and report no missing expected fields.
  • Use focused checks for edited helper code and targeted packaging or generated output checks only for surfaces affected by the bump.

Temporary versions produced by packaging recipes are not the canonical project version unless the release workflow explicitly requires that exact suffix.

References

  • Cargo.toml
  • justfile
  • references/version-automation.md — only for adding, removing, or debugging a versioned surface or version helper

More skills from nvidia