Bump AIPerf Version
Bump the AIPerf package version everywhere it is hard-coded, then open a PR to main.
The runtime version is read dynamically from package metadata
(importlib.metadata.version("aiperf") in src/aiperf/__init__.py), so
pyproject.toml is the single source of truth. Every other occurrence is a
copy in a doc example or in the mock-server package and must be updated by hand
to stay in sync.
Inputs
- Target version (e.g.
0.11.0). If the user did not provide one, read the current version frompyproject.tomland useAskUserQuestionto confirm the target (default: next minor).
Steps
Confirm you are starting from an up-to-date
main:git fetch origin git checkout main git statusOnly proceed if the working tree is clean (ignore untracked files that are not part of the bump).
Find the current version: Read the
versionfield under[project]inpyproject.toml. Call thisOLD_VERSIONand the requested versionNEW_VERSION.Create the branch: Use the
<username>/chore-update-version-<NEW_VERSION>convention, e.g.git checkout -b harrison/chore-update-version-0.11.0Find every hard-coded occurrence of
OLD_VERSION:grep -rn --include="*.py" --include="*.toml" --include="*.md" \ "<OLD_VERSION>" . | grep -v "/.git/"Review each hit. Update only strings that mean "the AIPerf version". Do NOT touch unrelated version-like strings (dependency pins,
schema_version, sample UUIDs, etc.).The canonical set of files (as of 0.10.0 -> 0.11.0) is:
pyproject.toml—version = "..."under[project]tests/aiperf_mock_server/pyproject.toml—version = "..."under[project]docs/plugins/creating-your-first-plugin.md— theVersion: ...line in thepip showexample outputdocs/server-metrics/server-metrics-json-schema.md— every"aiperf_version": "..."JSON example and the(e.g., "...")description (3 occurrences)
If the grep surfaces a NEW occurrence not in this list, update it too and add it to this skill's canonical list in the same PR.
Do NOT update
uv.lock:uv.lockis gitignored and not tracked, so it is not part of the bump. Tests that need the version importaiperf.__version__rather than hard-coding it; leave those alone.Verify nothing stale remains:
grep -rn "<OLD_VERSION>" pyproject.toml tests/aiperf_mock_server/pyproject.toml \ docs/plugins/creating-your-first-plugin.md \ docs/server-metrics/server-metrics-json-schema.mdThis must return no matches. Then confirm
NEW_VERSIONis present in each.Run pre-commit on the staged files:
pre-commit runFix anything it flags before committing.
Commit the version bump (commit 1): Stage only the version files explicitly (never
git add -A— the working tree may hold unrelated untracked files):git add pyproject.toml tests/aiperf_mock_server/pyproject.toml \ docs/plugins/creating-your-first-plugin.md \ docs/server-metrics/server-metrics-json-schema.md git commit -s -F - <<'EOF' chore: bump aiperf version to <NEW_VERSION> Updates the package and mock-server pyproject.toml versions and refreshes the version strings shown in the plugin tutorial example and the server-metrics JSON schema example output. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> EOFPush the branch:
git push -u origin HEADOpen the PR to
main:gh pr create \ --repo ai-dynamo/aiperf \ --base main \ --head harrison/chore-update-version-<NEW_VERSION> \ --title "chore: bump aiperf version to <NEW_VERSION>" \ --body "$(cat <<'EOF' ## Summary - Bump AIPerf package version from `<OLD_VERSION>` to `<NEW_VERSION>`. - Updates `pyproject.toml`, the mock-server `pyproject.toml`, and the version strings in the plugin tutorial and server-metrics JSON schema docs. The runtime version is read dynamically from package metadata, so `pyproject.toml` is the source of truth; the other files are doc/example copies. ## Test plan - `grep` confirms no `<OLD_VERSION>` strings remain in the bumped files. - Pre-commit hooks pass. EOF )"If
ghis unavailable, print the manual compare URL:https://github.com/ai-dynamo/aiperf/compare/main...harrison/chore-update-version-<NEW_VERSION>Print a summary with the old/new version and the PR link.
Rules
- NEVER manually add a
Signed-off-byline —git commit -sadds it. - NEVER use
--no-verifyorgit commit -n. - NEVER
git add -A/git add .; stage the version files by explicit path so unrelated untracked files stay out of the commit. - NEVER touch
uv.lock(gitignored) or non-AIPerf version-like strings. - Branch from an up-to-date
main; one PR = one concern (just the bump).