chore(release): prepare 1.0.0-beta.4 (#3032)

* chore(release): prepare 1.0.0-beta.4

* docs(skill): refine rustfs spec changelog rule

* docs(skill): optimize rustfs release bump workflow
This commit is contained in:
houseme
2026-05-20 21:56:43 +08:00
committed by GitHub
parent 375482a4b6
commit b2dfdf85de
8 changed files with 171 additions and 146 deletions
@@ -1,22 +1,33 @@
--- ---
name: rustfs-release-version-bump name: rustfs-release-version-bump
description: Prepare a RustFS release branch like PR #2957 by bumping versioned files, aligning release assets, running required verification, and finishing with commit, push, and gh PR creation. Use when publishing a new RustFS alpha, beta, or stable release. description: 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.
--- ---
# RustFS Release Version Bump # 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`. 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`).
## Read first Validated baseline: release pattern used in PR `#2957`.
- Read `AGENTS.md`. ## Required inputs
- 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 - 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`).
The `1.0.0-beta.3` release branch updated these files: If target version is missing or ambiguous, stop and ask before 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.toml` - `Cargo.toml`
- `Cargo.lock` - `Cargo.lock`
@@ -26,78 +37,89 @@ The `1.0.0-beta.3` release branch updated these files:
- `helm/rustfs/Chart.yaml` - `helm/rustfs/Chart.yaml`
- `rustfs.spec` - `rustfs.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. Only drop a file when the current repository release process clearly no longer requires it.
## Workflow ## Hard release policy
1. Confirm release intent - Docker doc tags use `<version>` (for example `rustfs/rustfs:1.0.0-beta.4`), not `v<version>`.
- Identify the target version string exactly, for example `1.0.0-beta.4`. - Helm chart version mapping follows `beta.N -> 0.N.0`.
- Check whether the user wants only local commit preparation or the full `commit + push + PR` flow. - `rustfs.spec` `Release` uses prerelease suffix only (for example `beta.4`).
- Compare the branch against `origin/main` and isolate only release-related edits. - Do not change these rules without explicit confirmation.
- If the target version is not explicit, stop and ask for it before editing.
2. Update core Rust workspace versions ## Step-by-step workflow
- Bump the workspace version in `Cargo.toml`.
- Bump all internal workspace crate versions in `Cargo.toml`.
- Ensure `Cargo.lock` reflects the same release version for workspace packages.
- Re-read the diff and verify there are no partial version leftovers.
3. Align release assets 1. Confirm intent and isolate scope
- Update versioned Docker examples in `README.md` and `README_ZH.md` using the `<version>` tag form, for example `rustfs/rustfs:1.0.0-beta.4`. - Confirm target version string exactly.
- Update `flake.nix` package version. - Confirm whether user requested local-only or full GitHub flow.
- Update `helm/rustfs/Chart.yaml` `appVersion`. - Inspect current branch and ensure only release-related files are touched for this task.
- Update `helm/rustfs/Chart.yaml` `version` using the release-chart rule:
2. Update workspace versions
- Bump `[workspace.package].version` in `Cargo.toml`.
- Bump internal workspace crate dependency versions in `Cargo.toml`.
- Update `Cargo.lock` so workspace package versions match target version.
- Re-scan for partial leftovers.
3. Update release assets
- `README.md` and `README_ZH.md`: update versioned Docker examples to target version.
- `flake.nix`: update package version to target version.
- `helm/rustfs/Chart.yaml`:
- `appVersion` = target version.
- `version` follows chart mapping rule, for example:
- `1.0.0-beta.3` -> `0.3.0` - `1.0.0-beta.3` -> `0.3.0`
- `1.0.0-beta.4` -> `0.4.0` - `1.0.0-beta.4` -> `0.4.0`
- Follow the same pattern for later beta releases unless the repository rule changes. - `rustfs.spec`:
- Update `rustfs.spec` release metadata and changelog entry. - Set `Release` to prerelease suffix (example `beta.4`).
- Set `rustfs.spec` `Release` to the prerelease suffix without the base version, for example `beta.3` for `1.0.0-beta.3`. - Add/update top changelog entry with exact format:
- Keep the release asset changes in a separate commit from the core Rust workspace version bump when the branch contains both. - `* 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.name`
- `git config --get user.email`
- `date '+%a %b %d %Y'`
- Changelog version text must match target release version exactly.
4. Stop and discuss before changing release policy 4. Verify before shipping
- Ask before changing the established Docker tag style away from `<version>`. - Run:
- Ask before changing the established Helm chart version mapping away from `beta.N -> 0.N.0`. - `cargo fmt --all`
- Ask before changing the established `rustfs.spec` `Release` rule away from the release suffix form such as `beta.N`. - `cargo fmt --all --check`
- Ask before widening the release scope beyond the files already validated in PR `#2957`. - `make pre-commit`
- If verification passes, run `cargo clean`.
- If `make pre-commit` fails, return `BLOCKED` with root cause and do not silently widen scope to fix unrelated issues unless user asks.
5. Verify before shipping 5. Commit strategy
- Run `make pre-commit`. - Preferred split when both parts changed:
- If verification succeeds, run `cargo clean` to remove generated build artifacts before wrapping up. - `chore(release): prepare <version>` for `Cargo.toml` and `Cargo.lock`.
- If `make pre-commit` fails, stop and return `BLOCKED`. - `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.
6. Commit structure 6. Push and PR
- Prefer two commits when the change naturally splits: - Push branch:
- `chore(release): prepare <version>` for `Cargo.toml` and `Cargo.lock` - `git push -u origin <branch>` (first push), or `git push` (tracking already exists).
- `chore(release): align release assets for <version>` for docs and packaging metadata - Create PR with template headings unchanged:
- If the user asks for a single commit, follow that request. - `gh pr create --base main --head <branch> --title ... --body-file ...`
- PR title/body must be English.
- Use `N/A` for non-applicable template sections.
- Include verification commands and any `BLOCKED` reason clearly.
7. Push and PR ## Recommended check commands
- Push the release branch with `git push -u origin <branch>` or `git push` if 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.md` headings exactly.
## Ready-to-check commands
- `git status --short --branch`
- `git diff --name-only origin/main...HEAD` - `git diff --name-only origin/main...HEAD`
- `git diff --stat origin/main...HEAD` - `git diff --stat origin/main...HEAD`
- `rg -n "<old_version>|<new_version>" Cargo.toml Cargo.lock README.md README_ZH.md flake.nix helm/rustfs/Chart.yaml rustfs.spec`
- `cargo fmt --all`
- `cargo fmt --all --check`
- `make pre-commit` - `make pre-commit`
- `cargo clean` - `cargo clean`
- `git status --short --branch`
## Output expectations ## Output contract
When using this skill, return: When using this skill, always report:
- The files changed for the release bump - Target version.
- Any uncertainty that needs user confirmation before editing - Files changed.
- Verification status - Any assumptions or uncertainties requiring confirmation.
- Commit messages used - Verification result (`PASSED` or `BLOCKED`) with key evidence.
- Push status and PR URL when the GitHub flow was requested - Commit message(s) used.
- Push status and PR URL when GitHub flow is requested.
## Established release policy
- Docs use Docker tags in `<version>` form, not `v<version>`.
- `helm/rustfs/Chart.yaml` `version` follows `beta.N -> 0.N.0` based on the current release policy.
- `rustfs.spec` `Release` follows the release suffix form, for example `beta.3`.
- If any of these rules need to change in the future, pause and confirm before editing.
Generated
+37 -37
View File
@@ -3672,7 +3672,7 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
[[package]] [[package]]
name = "e2e_test" name = "e2e_test"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"astral-tokio-tar", "astral-tokio-tar",
@@ -9269,7 +9269,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs" name = "rustfs"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"aes-gcm 0.11.0-rc.3", "aes-gcm 0.11.0-rc.3",
"anyhow", "anyhow",
@@ -9385,7 +9385,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-audit" name = "rustfs-audit"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"chrono", "chrono",
@@ -9409,7 +9409,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-checksums" name = "rustfs-checksums"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"base64-simd", "base64-simd",
"bytes", "bytes",
@@ -9423,7 +9423,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-common" name = "rustfs-common"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"chrono", "chrono",
"metrics", "metrics",
@@ -9438,7 +9438,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-concurrency" name = "rustfs-concurrency"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"rustfs-io-core", "rustfs-io-core",
"rustfs-io-metrics", "rustfs-io-metrics",
@@ -9450,14 +9450,14 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-config" name = "rustfs-config"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"const-str", "const-str",
] ]
[[package]] [[package]]
name = "rustfs-credentials" name = "rustfs-credentials"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"base64-simd", "base64-simd",
"rand 0.10.1", "rand 0.10.1",
@@ -9468,7 +9468,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-crypto" name = "rustfs-crypto"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"aes-gcm 0.11.0-rc.3", "aes-gcm 0.11.0-rc.3",
"argon2 0.6.0-rc.8", "argon2 0.6.0-rc.8",
@@ -9488,7 +9488,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-data-usage" name = "rustfs-data-usage"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"path-clean", "path-clean",
@@ -9499,7 +9499,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-ecstore" name = "rustfs-ecstore"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"aes-gcm 0.11.0-rc.3", "aes-gcm 0.11.0-rc.3",
"async-channel", "async-channel",
@@ -9602,7 +9602,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-filemeta" name = "rustfs-filemeta"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"arc-swap", "arc-swap",
"byteorder", "byteorder",
@@ -9626,7 +9626,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-heal" name = "rustfs-heal"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"async-trait", "async-trait",
@@ -9654,7 +9654,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-iam" name = "rustfs-iam"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"arc-swap", "arc-swap",
"async-trait", "async-trait",
@@ -9689,7 +9689,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-io-core" name = "rustfs-io-core"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"bytes", "bytes",
"memmap2 0.9.10", "memmap2 0.9.10",
@@ -9700,7 +9700,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-io-metrics" name = "rustfs-io-metrics"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"criterion", "criterion",
"metrics", "metrics",
@@ -9762,7 +9762,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-keystone" name = "rustfs-keystone"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"bytes", "bytes",
"futures", "futures",
@@ -9787,7 +9787,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-kms" name = "rustfs-kms"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"aes-gcm 0.11.0-rc.3", "aes-gcm 0.11.0-rc.3",
"arc-swap", "arc-swap",
@@ -9816,7 +9816,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-lock" name = "rustfs-lock"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"crossbeam-queue", "crossbeam-queue",
@@ -9837,7 +9837,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-madmin" name = "rustfs-madmin"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"chrono", "chrono",
"humantime", "humantime",
@@ -9850,7 +9850,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-notify" name = "rustfs-notify"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"arc-swap", "arc-swap",
"async-trait", "async-trait",
@@ -9884,7 +9884,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-object-capacity" name = "rustfs-object-capacity"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"criterion", "criterion",
"futures", "futures",
@@ -9902,7 +9902,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-obs" name = "rustfs-obs"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"chrono", "chrono",
"crossbeam-channel", "crossbeam-channel",
@@ -9948,7 +9948,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-policy" name = "rustfs-policy"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"base64-simd", "base64-simd",
@@ -9976,7 +9976,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-protocols" name = "rustfs-protocols"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"astral-tokio-tar", "astral-tokio-tar",
"async-compression", "async-compression",
@@ -10034,7 +10034,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-protos" name = "rustfs-protos"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"flatbuffers", "flatbuffers",
"prost 0.14.3", "prost 0.14.3",
@@ -10050,7 +10050,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-rio" name = "rustfs-rio"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"aes-gcm 0.11.0-rc.3", "aes-gcm 0.11.0-rc.3",
"axum", "axum",
@@ -10084,14 +10084,14 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-s3-ops" name = "rustfs-s3-ops"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"rustfs-s3-types", "rustfs-s3-types",
] ]
[[package]] [[package]]
name = "rustfs-s3-types" name = "rustfs-s3-types"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"serde", "serde",
"serde_json", "serde_json",
@@ -10099,7 +10099,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-s3select-api" name = "rustfs-s3select-api"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
@@ -10126,7 +10126,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-s3select-query" name = "rustfs-s3select-query"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-recursion", "async-recursion",
"async-trait", "async-trait",
@@ -10143,7 +10143,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-scanner" name = "rustfs-scanner"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"chrono", "chrono",
@@ -10175,7 +10175,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-signer" name = "rustfs-signer"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"base64-simd", "base64-simd",
"bytes", "bytes",
@@ -10191,7 +10191,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-targets" name = "rustfs-targets"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-nats", "async-nats",
"async-trait", "async-trait",
@@ -10233,7 +10233,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-trusted-proxies" name = "rustfs-trusted-proxies"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"axum", "axum",
@@ -10257,7 +10257,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-utils" name = "rustfs-utils"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"base64-simd", "base64-simd",
"blake2 0.11.0-rc.6", "blake2 0.11.0-rc.6",
@@ -10302,7 +10302,7 @@ dependencies = [
[[package]] [[package]]
name = "rustfs-zip" name = "rustfs-zip"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
dependencies = [ dependencies = [
"astral-tokio-tar", "astral-tokio-tar",
"async-compression", "async-compression",
+37 -37
View File
@@ -59,7 +59,7 @@ edition = "2024"
license = "Apache-2.0" license = "Apache-2.0"
repository = "https://github.com/rustfs/rustfs" repository = "https://github.com/rustfs/rustfs"
rust-version = "1.95.0" rust-version = "1.95.0"
version = "1.0.0-beta.3" version = "1.0.0-beta.4"
homepage = "https://rustfs.com" homepage = "https://rustfs.com"
description = "RustFS is a high-performance distributed object storage software built using Rust, one of the most popular languages worldwide. " description = "RustFS is a high-performance distributed object storage software built using Rust, one of the most popular languages worldwide. "
keywords = ["RustFS", "Minio", "object-storage", "filesystem", "s3"] keywords = ["RustFS", "Minio", "object-storage", "filesystem", "s3"]
@@ -76,42 +76,42 @@ redundant_clone = "warn"
[workspace.dependencies] [workspace.dependencies]
# RustFS Internal Crates # RustFS Internal Crates
rustfs = { path = "./rustfs", version = "1.0.0-beta.3" } rustfs = { path = "./rustfs", version = "1.0.0-beta.4" }
rustfs-heal = { path = "crates/heal", version = "1.0.0-beta.3" } rustfs-heal = { path = "crates/heal", version = "1.0.0-beta.4" }
rustfs-audit = { path = "crates/audit", version = "1.0.0-beta.3" } rustfs-audit = { path = "crates/audit", version = "1.0.0-beta.4" }
rustfs-checksums = { path = "crates/checksums", version = "1.0.0-beta.3" } rustfs-checksums = { path = "crates/checksums", version = "1.0.0-beta.4" }
rustfs-common = { path = "crates/common", version = "1.0.0-beta.3" } rustfs-common = { path = "crates/common", version = "1.0.0-beta.4" }
rustfs-data-usage = { path = "crates/data-usage", version = "1.0.0-beta.3" } rustfs-data-usage = { path = "crates/data-usage", version = "1.0.0-beta.4" }
rustfs-config = { path = "./crates/config", version = "1.0.0-beta.3" } rustfs-config = { path = "./crates/config", version = "1.0.0-beta.4" }
rustfs-concurrency = { path = "./crates/concurrency", version = "1.0.0-beta.3" } rustfs-concurrency = { path = "./crates/concurrency", version = "1.0.0-beta.4" }
rustfs-credentials = { path = "crates/credentials", version = "1.0.0-beta.3" } rustfs-credentials = { path = "crates/credentials", version = "1.0.0-beta.4" }
rustfs-crypto = { path = "crates/crypto", version = "1.0.0-beta.3" } rustfs-crypto = { path = "crates/crypto", version = "1.0.0-beta.4" }
rustfs-ecstore = { path = "crates/ecstore", version = "1.0.0-beta.3" } rustfs-ecstore = { path = "crates/ecstore", version = "1.0.0-beta.4" }
rustfs-filemeta = { path = "crates/filemeta", version = "1.0.0-beta.3" } rustfs-filemeta = { path = "crates/filemeta", version = "1.0.0-beta.4" }
rustfs-iam = { path = "crates/iam", version = "1.0.0-beta.3" } rustfs-iam = { path = "crates/iam", version = "1.0.0-beta.4" }
rustfs-keystone = { path = "crates/keystone", version = "1.0.0-beta.3" } rustfs-keystone = { path = "crates/keystone", version = "1.0.0-beta.4" }
rustfs-kms = { path = "crates/kms", version = "1.0.0-beta.3" } rustfs-kms = { path = "crates/kms", version = "1.0.0-beta.4" }
rustfs-lock = { path = "crates/lock", version = "1.0.0-beta.3" } rustfs-lock = { path = "crates/lock", version = "1.0.0-beta.4" }
rustfs-madmin = { path = "crates/madmin", version = "1.0.0-beta.3" } rustfs-madmin = { path = "crates/madmin", version = "1.0.0-beta.4" }
rustfs-notify = { path = "crates/notify", version = "1.0.0-beta.3" } rustfs-notify = { path = "crates/notify", version = "1.0.0-beta.4" }
rustfs-io-metrics = { path = "crates/io-metrics", version = "1.0.0-beta.3" } rustfs-io-metrics = { path = "crates/io-metrics", version = "1.0.0-beta.4" }
rustfs-io-core = { path = "crates/io-core", version = "1.0.0-beta.3" } rustfs-io-core = { path = "crates/io-core", version = "1.0.0-beta.4" }
rustfs-object-capacity = { path = "crates/object-capacity", version = "1.0.0-beta.3" } rustfs-object-capacity = { path = "crates/object-capacity", version = "1.0.0-beta.4" }
rustfs-obs = { path = "crates/obs", version = "1.0.0-beta.3" } rustfs-obs = { path = "crates/obs", version = "1.0.0-beta.4" }
rustfs-policy = { path = "crates/policy", version = "1.0.0-beta.3" } rustfs-policy = { path = "crates/policy", version = "1.0.0-beta.4" }
rustfs-protos = { path = "crates/protos", version = "1.0.0-beta.3" } rustfs-protos = { path = "crates/protos", version = "1.0.0-beta.4" }
rustfs-protocols = { path = "crates/protocols", version = "1.0.0-beta.3" } rustfs-protocols = { path = "crates/protocols", version = "1.0.0-beta.4" }
rustfs-rio = { path = "crates/rio", version = "1.0.0-beta.3" } rustfs-rio = { path = "crates/rio", version = "1.0.0-beta.4" }
rustfs-s3-types = { path = "crates/s3-types", version = "1.0.0-beta.3" } rustfs-s3-types = { path = "crates/s3-types", version = "1.0.0-beta.4" }
rustfs-s3-ops = { path = "crates/s3-ops", version = "1.0.0-beta.3" } rustfs-s3-ops = { path = "crates/s3-ops", version = "1.0.0-beta.4" }
rustfs-s3select-api = { path = "crates/s3select-api", version = "1.0.0-beta.3" } rustfs-s3select-api = { path = "crates/s3select-api", version = "1.0.0-beta.4" }
rustfs-s3select-query = { path = "crates/s3select-query", version = "1.0.0-beta.3" } rustfs-s3select-query = { path = "crates/s3select-query", version = "1.0.0-beta.4" }
rustfs-scanner = { path = "crates/scanner", version = "1.0.0-beta.3" } rustfs-scanner = { path = "crates/scanner", version = "1.0.0-beta.4" }
rustfs-signer = { path = "crates/signer", version = "1.0.0-beta.3" } rustfs-signer = { path = "crates/signer", version = "1.0.0-beta.4" }
rustfs-trusted-proxies = { path = "crates/trusted-proxies", version = "1.0.0-beta.3" } rustfs-trusted-proxies = { path = "crates/trusted-proxies", version = "1.0.0-beta.4" }
rustfs-targets = { path = "crates/targets", version = "1.0.0-beta.3" } rustfs-targets = { path = "crates/targets", version = "1.0.0-beta.4" }
rustfs-utils = { path = "crates/utils", version = "1.0.0-beta.3" } rustfs-utils = { path = "crates/utils", version = "1.0.0-beta.4" }
rustfs-zip = { path = "./crates/zip", version = "1.0.0-beta.3" } rustfs-zip = { path = "./crates/zip", version = "1.0.0-beta.4" }
# Async Runtime and Networking # Async Runtime and Networking
async-channel = "2.5.0" async-channel = "2.5.0"
+1 -1
View File
@@ -115,7 +115,7 @@ chown -R 10001:10001 data logs
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
# Using specific version # Using specific version
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-beta.3 docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-beta.4
``` ```
If you use [podman](https://github.com/containers/podman) instead of docker, you can install the RustFS with the below command If you use [podman](https://github.com/containers/podman) instead of docker, you can install the RustFS with the below command
+1 -1
View File
@@ -113,7 +113,7 @@ RustFS 容器以非 root 用户 `rustfs` (UID `10001`) 运行。如果您使用
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:latest
# 使用指定版本运行 # 使用指定版本运行
docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-beta.3 docker run -d -p 9000:9000 -p 9001:9001 -v $(pwd)/data:/data -v $(pwd)/logs:/logs rustfs/rustfs:1.0.0-beta.4
``` ```
您也可以使用 Docker Compose。使用根目录下的 `docker-compose.yml` 文件: 您也可以使用 Docker Compose。使用根目录下的 `docker-compose.yml` 文件:
+1 -1
View File
@@ -60,7 +60,7 @@
{ {
default = rustPlatform.buildRustPackage { default = rustPlatform.buildRustPackage {
pname = "rustfs"; pname = "rustfs";
version = "1.0.0-beta.3"; version = "1.0.0-beta.4";
src = ./.; src = ./.;
+2 -2
View File
@@ -2,8 +2,8 @@ apiVersion: v2
name: rustfs name: rustfs
description: RustFS helm chart to deploy RustFS on kubernetes cluster. description: RustFS helm chart to deploy RustFS on kubernetes cluster.
type: application type: application
version: "0.3.0" version: "0.4.0"
appVersion: "1.0.0-beta.3" appVersion: "1.0.0-beta.4"
home: https://rustfs.com home: https://rustfs.com
icon: https://media.sys.truenas.net/apps/rustfs/icons/icon.svg icon: https://media.sys.truenas.net/apps/rustfs/icons/icon.svg
maintainers: maintainers:
+4 -1
View File
@@ -2,7 +2,7 @@
%global _empty_manifest_terminate_build 0 %global _empty_manifest_terminate_build 0
Name: rustfs Name: rustfs
Version: 1.0.0 Version: 1.0.0
Release: beta.3 Release: beta.4
Summary: High-performance distributed object storage for MinIO alternative Summary: High-performance distributed object storage for MinIO alternative
License: Apache-2.0 License: Apache-2.0
@@ -57,6 +57,9 @@ install %_builddir/%{name}-%{version}-%{release}/target/%_arch/%_arch-unknown-li
%_bindir/rustfs %_bindir/rustfs
%changelog %changelog
* Thu May 20 2026 houseme <housemecn@gmail.com>
- Update RPM package to RustFS 1.0.0-beta.4
* Thu May 14 2026 houseme <housemecn@gmail.com> * Thu May 14 2026 houseme <housemecn@gmail.com>
- Update RPM package to RustFS 1.0.0-beta.3 - Update RPM package to RustFS 1.0.0-beta.3