Skip to main content
Cloudrustfs

rustfs-release-version-bump

Publish a RustFS alpha/beta/stable release with an auditable flow: confirm target version and scope, update workspace and release assets (including strict rustfs.spec changelog identity/date/version format), run required verification, and finish with commit, push, and GitHub PR creation.

Stars
28,174
Source
rustfs/rustfs
Updated
2026-05-31
Slug
rustfs--rustfs--rustfs-release-version-bump
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/rustfs/rustfs/HEAD/.agents/skills/rustfs-release-version-bump/SKILL.md -o .claude/skills/rustfs-release-version-bump.md

Drops the SKILL.md into .claude/skills/rustfs-release-version-bump.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Release Version Files

Require an exact target; ask if missing or ambiguous. Reject targets containing -preview: those are tag-only. Infer post-release only from an explicit request or parent workflow; otherwise use prepare. Delivery defaults to local edit/verify; commit, push, PR, and merge follow existing authorization and Git rules.

Stage Files and constraints
prepare Only Cargo.toml and Cargo.lock: workspace package, internal dependency, and workspace member versions become <target>. External dependencies stay unchanged.
post-release Only README.md, README_ZH.md, flake.nix, helm/rustfs/Chart.yaml, and rustfs.spec. Cargo may already target the next release; leave it untouched.

Before installation edits, verify the exact non-preview Release, downloadable assets/source archive, pullable rustfs/rustfs:<target> image manifest, and published Helm chart. Block on missing artifacts. Do not downgrade defaults if a newer deliverable superseded the target. Preview preparation retains the previous published installation references; follow-up commits never replace either validated tag.

Packaging policy:

  • Docker image tags have no v prefix. Derive chart/app versions with scripts/helm_chart_version.sh <target> (beta.N -> 0.N.0; other versions unchanged). Helm CI derives versions from the final tag, so no early chart bump is required.
  • RPM Version is numeric; Release is the prerelease suffix or 1 for stable. Expanded Source0 and the unpack directory must resolve to the exact target including its suffix. Add the changelog entry using current git identity, date, and target; never copy an example identity/date.
  • Changing these mappings requires explicit confirmation.

Verification follows root tiers: prepare validates Cargo metadata with the updated lockfile and checks every workspace/internal version with no unrelated lockfile updates. post-release renders Helm with the verified image, runs scripts/test_helm_chart_version.sh for chart version edits, and checks README, Nix, and RPM references. Run git diff --check; report unresolved required checks as BLOCKED without unrelated fixes.

For authorized commits, keep stages separate: chore(release): prepare <target> or chore(release): align installation references for <target>. Report target/stage, changed files, verification, material uncertainty, and actual commit/push/PR state.