bump-version
Skill202 starsChanged 31 days agoApache-2.0View on GitHub
Bump the ModelExpress workspace, Python, and Helm chart version, and update the pinned source-id hashes. Use for any release version bump, and for the separate public-image tag bump on release branches.
- Installs packages
42 other projects use a version of this.
Adopted by
Most recently taken up by
- nesnilnehc/ai-cortextheir own version, first seen Nov 8, 2026
- OldemarJesus/connectlife-mcp-servertheir own version, first seen Nov 8, 2026
- humanlayer/humanlayertheir own version, first seen Oct 25, 2026
- asta-nguyen/kamehadbtheir own version, first seen Oct 16, 2026
- kostiantyn-matsebora/canopy-examplestheir own version, first seen Oct 11, 2026
- snowzhaozhj/claude-devtools-rstheir own version, first seen Oct 9, 2026
Used with
Projects with it also use oss-pr, pr-automation and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CES-LtdSkilloss-pr
Use when creating a pull request, after committing changes, or when user invokes /oss-pr. Covers branch management, quality checks, commit, push, and PR creation.
Also in 3 projects that use this
CES-LtdSkillpr-automation
PR Automation Orchestrator: poll open PRs, check CI, run review, fix, and merge eligible PRs. Use when: (1) Invoked by daemon via scripts/pr-automation.sh, (2) User says "/pr-automation".
Also in 3 projects that use this
volovelySkillpr-fix
This skill should be used when the user asks to "fix PR comments", "address PR feedback", "resolve PR comments", provides a GitHub PR URL with intent to fix, or says "pr-fix". It reads all review comments on a PR, decides which need code fixes vs. replies, makes the fixes, and posts replies — all with explicit user approval before any GitHub action.
Also in 3 projects that use this
lbednerSkilli18n
Use when a code or template change introduces a new translation message key, in either the framework CLI (aegis/i18n/locales/) or a generated project's CLI (the app/i18n/locales/ template tree). Covers adding the real English string, stubbing the same key into every other locale for parity, and the separate translation PR that later replaces placeholders with reviewed native text.
Also in 4 projects that use this
AnthropicSkillarchitecture
Create or evaluate an architecture decision record (ADR). Use when choosing between technologies (e.g., Kafka vs SQS), documenting a design decision with trade-offs and consequences, reviewing a system design proposal, or designing a new component from requirements and constraints.
Also in 4 projects that use this
NVIDIASkilltesting
Run Python and Rust tests for physicsnemo-curator using uv + pytest with coverage reporting via pytest-cov, and cargo-nextest for Rust tests. Includes benchmark workflows with pytest-benchmark and criterion.
Also in 5 projects that use this
- +2 more from CES-Ltd
Other versions42 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 42
- iOfficeAI/AionUi★ 34ksame name
- Skyvern-AI/skyvern★ 23ksame name
- humanlayer/humanlayer★ 13ksame name
- modelcontextprotocol/csharp-sdk★ 4.6ksame name
- cuthbertLab/music21★ 2.6ksame name
- wandb/weave★ 1.1ksame name
- wesbos/JSON-Alexander★ 944same name
- opentabs-dev/opentabs★ 926same name
- ai-dynamo/aiperf★ 858same name
- termio-sh/termio★ 787same name
32 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- add-cli-argumentSkill
- add-grpc-serviceSkill
- dcoSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 0 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 39 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 42
Do not work from that list alone.
- Very specific: line 50
Search every file type, not just *.rs/*.py/*.toml: the version also lives in Markdown, YAML and the Helm chart.
- Very specific: line 89
If the Rust and Python values ever disagree, stop rather than pinning two numbers — the canonicalizers in metadata/source_id.py and …
- Very specific: line 93
Verify end-to-end before committing.
- Very specific: line 127
After the release tag is set and the container is published on NGC, bump the image-tag references on the release branch (e.g.
“Common” is measured: kept by at least 6 in 10 of the 39 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Bumping the ModelExpress Version
ModelExpress version strings split into two categories with different bump
cadences. Confusing them is the most common mistake — public-image
references on main pointing at a tag that doesn't yet exist sends users
at a broken pull.
On main (e.g. 0.4.0 → 0.5.0)
Bump the workspace/chart version and the protocol-version fixtures. Do not touch any reference to the public release container image.
Files to bump:
Cargo.toml—[workspace.package].versionand the three internalmodelexpress-{common,client,server}path-depversion =entries.Cargo.lock— regenerate withcargo update --workspace(touches only our four crates:modelexpress-{common,client,server}plusmodel-express-workspace-tests).modelexpress_client/python/pyproject.toml—[project].version.modelexpress_client/python/uv.lock— regenerate withuv lock(frommodelexpress_client/python/).helm/Chart.yaml—versionandappVersion(chart version tracks the workspace; chart image tag does not — see below).docs/metadata.md—mx_versionexample values (search the file for the old version literal; expect ~2 hits).modelexpress_server/src/p2p/{source_identity,state,service}.rs,modelexpress_server/src/p2p/backend/{redis,memory}.rsandworkspace-tests/tests/artifact_transfer_contract.rs—mx_versionstrings inmod testsfixtures.redis.rshas two, a fixture and itsassert_eq!.modelexpress_client/python/tests/{test_source_id,test_k8s_service_client, test_vllm_artifacts,test_artifact_transfer}.py—mx_versionstrings in test fixtures.test_vllm_artifacts.pyhas three,test_artifact_transfer.pyhas four.
Do not work from that list alone. It has been incomplete before, and a
missed fixture is silent: backend/memory.rs sat at "0.3.0" through
several bumps because it was not named here. Bump by search, not by list:
grep -rIn --exclude-dir=.git '<old_version>' .Search every file type, not just *.rs/*.py/*.toml: the version also
lives in Markdown, YAML and the Helm chart. Then classify the hits, because
the public-image tag references below are stale on purpose and must not be
swept up by the same pass.
CI reads these version literals. The nightly pipeline
(.github/workflows/nightly-ci.yml, job preflight) parses
[workspace.package].version from Cargo.toml, [project].version from
pyproject.toml, and version: from helm/Chart.yaml to derive the
nightly crate/wheel/chart versions. It requires each to be a single
anchored version = "<x.y.z>" / version: <x.y.z> line and fails fast
otherwise, so keep the literal format when bumping. The nightly only
reads them — it stamps its derived versions into a throwaway checkout
and never commits.
mx_version is part of the SourceIdentity proto, which is hashed into
the mx_source_id. After bumping the version literals, the pinned
source-id assertions break. Capture the new hashes by running the
failing tests:
cd modelexpress_client/python && .venv/bin/python -m pytest \
tests/test_source_id.py -vThere are four pinned assertions per side, not three, carrying three
distinct hash values. Update all four in tests/test_source_id.py and the
four matching ones in modelexpress_server/src/p2p/source_identity.rs so
both sides cross-check on the new hashes:
test_empty_artifact_fields_preserve_existing_id(both sides) — shares the base-identity hash literal. Run the whole file rather than filtering on-k "pinned_hash or case_colliding", which does not select this one and leaves it red on both sides.test_pinned_hash_base_identity/test_python_cross_check_base_identitytest_pinned_hash_with_revision/test_python_cross_check_with_revisiontest_case_colliding_extra_parameters_are_deterministic/test_python_cross_check_case_colliding_extra
If the Rust and Python values ever disagree, stop rather than pinning two
numbers — the canonicalizers in metadata/source_id.py and
p2p/source_identity.rs have diverged and that is the bug.
Verify end-to-end before committing. The Python venv needs the dev extra
(uv pip install -e ".[dev]"); without it tests/test_tracing.py aborts
collection on a missing opentelemetry and pytest runs zero tests while
reporting no failures.
cargo check --workspace --tests
cargo test --workspace
cd modelexpress_client/python && .venv/bin/python -m pytest tests/cargo check --workspace --tests compiles the test targets, it does not run
their assertions, so on its own it cannot tell you a pinned hash is wrong.
cargo test --workspace is the step that actually executes them. Read the
per-test ok lines rather than the exit code alone.
Public-image tag references — separate cadence
These references point at the public release container on NGC. They lag behind the workspace version because the container has to be built and published first:
examples/**/*.yaml—image: nvcr.io/nvidia/ai-dynamo/modelexpress-server:<tag>helm/values*.yaml—image.taghelm/README.md—image.tagrow +docker pullexample- Any CI manifest comment that contrasts against
nvcr.io/<old_tag>for context (e.g.ci/k8s/client/vllm/dynamo/manifest-azure-aggregated.yaml)
Lifecycle:
- Bump the workspace/Python/Helm-chart version on
main(this section's primary procedure). Image-tag references are left untouched. - Cut the
release/<X.Y.Z>branch frommain. The branch inherits the still-stale image-tag references. - After the release tag is set and the container is published on NGC,
bump the image-tag references on the release branch
(e.g.
harrison/bump-examples-<X.Y.Z>againstrelease/<X.Y.Z>). - Cherry-pick that image-tag-bump commit back to
main. This is the only time image-tag refs change onmain, and only ever after the container actually exists on NGC.
Pulling references at a tag that doesn't yet exist on NGC sends users
at a broken docker pull, which is why these never move ahead of the
container publish.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

