Update Project Version
Use this skill for project release-version changes, including prerelease and build-metadata variants.
Invariants
Cargo.toml[workspace.package].versionis 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:
- Read the current version from
Cargo.tomland choose the exact target. - 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 thatjust set-versionmay need to change. - Run
just set-version <version>. - 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.
- If a project-owned release surface remains on the old version, update the
appropriate helper and rerun
just set-version <version>. Readreferences/version-automation.mdonly when the version topology or helper implementation changes. - 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.tomljustfilereferences/version-automation.md— only for adding, removing, or debugging a versioned surface or version helper