mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-31 09:18:28 +00:00
4.5 KiB
4.5 KiB
name, description
| name | description |
|---|---|
| rustfs-release-version-bump | Prepare a RustFS release branch like PR |
RustFS Release Version Bump
Use this skill when the task is to prepare a new RustFS version release branch following the pattern validated in PR #2957.
Read first
- Read
AGENTS.md. - Read
.github/pull_request_template.md. - Inspect the current branch diff against
origin/main. - Do not assume every release file should change in the same way every time.
Scope validated by PR #2957
The 1.0.0-beta.3 release branch updated these files:
Cargo.tomlCargo.lockREADME.mdREADME_ZH.mdflake.nixhelm/rustfs/Chart.yamlrustfs.spec
Treat this file list as the default checklist for future release bumps. Only drop a file if the repository's current release pattern clearly says it is no longer part of the publish flow.
Workflow
- Confirm release intent
- Identify the target version string exactly, for example
1.0.0-beta.4. - Check whether the user wants only local commit preparation or the full
commit + push + PRflow. - Compare the branch against
origin/mainand isolate only release-related edits. - If the target version is not explicit, stop and ask for it before editing.
- Update core Rust workspace versions
- Bump the workspace version in
Cargo.toml. - Bump all internal workspace crate versions in
Cargo.toml. - Ensure
Cargo.lockreflects the same release version for workspace packages. - Re-read the diff and verify there are no partial version leftovers.
- Align release assets
- Update versioned Docker examples in
README.mdandREADME_ZH.mdusing the<version>tag form, for examplerustfs/rustfs:1.0.0-beta.4. - Update
flake.nixpackage version. - Update
helm/rustfs/Chart.yamlappVersion. - Update
helm/rustfs/Chart.yamlversionusing the release-chart rule: 1.0.0-beta.3->0.3.01.0.0-beta.4->0.4.0- Follow the same pattern for later beta releases unless the repository rule changes.
- Update
rustfs.specrelease metadata and changelog entry. - Set
rustfs.specReleaseto the prerelease suffix without the base version, for examplebeta.3for1.0.0-beta.3. - Keep the release asset changes in a separate commit from the core Rust workspace version bump when the branch contains both.
- Stop and discuss before changing release policy
- Ask before changing the established Docker tag style away from
<version>. - Ask before changing the established Helm chart version mapping away from
beta.N -> 0.N.0. - Ask before changing the established
rustfs.specReleaserule away from the release suffix form such asbeta.N. - Ask before widening the release scope beyond the files already validated in PR
#2957.
- Verify before shipping
- Run
make pre-commit. - If verification succeeds, run
cargo cleanto remove generated build artifacts before wrapping up. - If
make pre-commitfails, stop and returnBLOCKED.
- Commit structure
- Prefer two commits when the change naturally splits:
chore(release): prepare <version>forCargo.tomlandCargo.lockchore(release): align release assets for <version>for docs and packaging metadata- If the user asks for a single commit, follow that request.
- Push and PR
- Push the release branch with
git push -u origin <branch>orgit pushif upstream already exists. - Create the PR with
gh pr create --base main --head <branch> --title ... --body-file .... - Keep the PR title and body in English.
- Keep the
.github/pull_request_template.mdheadings exactly.
Ready-to-check commands
git diff --name-only origin/main...HEADgit diff --stat origin/main...HEADmake pre-commitcargo cleangit status --short --branch
Output expectations
When using this skill, return:
- The files changed for the release bump
- Any uncertainty that needs user confirmation before editing
- Verification status
- Commit messages used
- Push status and PR URL when the GitHub flow was requested
Established release policy
- Docs use Docker tags in
<version>form, notv<version>. helm/rustfs/Chart.yamlversionfollowsbeta.N -> 0.N.0based on the current release policy.rustfs.specReleasefollows the release suffix form, for examplebeta.3.- If any of these rules need to change in the future, pause and confirm before editing.