rustfs-release-version-bump
GitHub用于为 RustFS 项目执行精确的版本号升级,涵盖 Cargo、Helm、文档等多文件同步修改,支持本地验证或完整 Git/PR 发布流程。
Trigger Scenarios
Install
npx skills add rustfs/rustfs --skill rustfs-release-version-bump -g -y
SKILL.md
Frontmatter
{
"name": "rustfs-release-version-bump",
"description": "Prepare the version-file and release-asset bump for an exact RustFS alpha\/beta\/stable target, with verification and optional commit\/push\/PR delivery. Use for an explicit version bump or when invoked by the release-publish workflow."
}
RustFS Release Version Bump
Use this skill to publish a RustFS release (alpha, beta, or stable) with a minimal, auditable diff and a complete ship flow (edit -> verify -> commit -> push -> PR).
Validated baseline: release pattern used in PR #2957.
Required inputs
- Exact target version, for example
1.0.0-beta.4. - Delivery scope:
- Local only (
edit/verify). - Local + git (
commit/push). - Full GitHub flow (
commit/push/PR).
If target version is missing or ambiguous, stop and ask before editing.
Reject any target version containing -preview: preview identifiers are tag-only (see rustfs-release-publish) and must never be written into version files. If asked for one, stop and point to the release pipeline instead of editing.
Read before editing
AGENTS.md(root and nearest path-specific files)..github/pull_request_template.md.- Current branch status and diff against
origin/main.
Default release file scope
Treat the following file list as the default checklist for each release bump:
Cargo.tomlCargo.lockREADME.mdREADME_ZH.mdflake.nixhelm/rustfs/Chart.yamlrustfs.spec
Only drop a file when the current repository release process clearly no longer requires it.
Hard release policy
- Docker doc tags use
<version>(for examplerustfs/rustfs:1.0.0-beta.4), notv<version>. - Helm chart version mapping follows
beta.N -> 0.N.0. rustfs.specReleaseuses prerelease suffix only (for examplebeta.4).- Do not change these rules without explicit confirmation.
Step-by-step workflow
- Confirm intent and isolate scope
- Confirm target version string exactly.
- Confirm whether user requested local-only or full GitHub flow.
- Inspect current branch and ensure only release-related files are touched for this task.
- Update workspace versions
- Bump
[workspace.package].versioninCargo.toml. - Bump internal workspace crate dependency versions in
Cargo.toml. - Update
Cargo.lockso workspace package versions match target version. - Re-scan for partial leftovers.
- Update release assets
README.mdandREADME_ZH.md: update versioned Docker examples to target version.flake.nix: update package version to target version.helm/rustfs/Chart.yaml:appVersion= target version.versionfollows chart mapping rule, for example:1.0.0-beta.3->0.3.01.0.0-beta.4->0.4.0rustfs.spec:- Set
Releaseto prerelease suffix (examplebeta.4). - Add/update top changelog entry with exact format:
* Thu May 20 2026 houseme <housemecn@gmail.com>- Update RPM package to RustFS 1.0.0-beta.4- Changelog identity and time must come from current environment:
git config --get user.namegit config --get user.emaildate '+%a %b %d %Y'- Changelog version text must match target release version exactly.
- Verify before shipping
- Run:
make pre-commit- If
make pre-commitfails, returnBLOCKEDwith root cause and do not silently widen scope to fix unrelated issues unless user asks.
- Commit strategy
- Preferred split when both parts changed:
chore(release): prepare <version>forCargo.tomlandCargo.lock.chore(release): align release assets for <version>for docs and packaging files.- If user asks for one commit, use one commit.
- Stage only intended release files; do not include unrelated working tree changes.
- Push and PR
- Push branch:
git push -u origin <branch>(first push), orgit push(tracking already exists).- Create PR with template headings unchanged:
gh pr create --base main --head <branch> --title ... --body-file ...- PR title/body must be English.
- Use
N/Afor non-applicable template sections. - Include verification commands and any
BLOCKEDreason clearly.
Recommended check commands
git status --short --branchgit diff --name-only origin/main...HEADgit diff --stat origin/main...HEADrg -n "<old_version>|<new_version>" Cargo.toml Cargo.lock README.md README_ZH.md flake.nix helm/rustfs/Chart.yaml rustfs.specmake pre-commit
Output contract
When using this skill, always report:
- Target version.
- Files changed.
- Any assumptions or uncertainties requiring confirmation.
- Verification result (
PASSEDorBLOCKED) with key evidence. - Commit message(s) used.
- Push status and PR URL when GitHub flow is requested.
Version History
- 0fe41da Current 2026-08-29 02:10
- 0d129ec 2026-08-20 14:32


