4.43
- s3: stop unrouted bucket subresources from being answered with a listing by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10814
- S3: stamp the gateway's own uid/gid on PutObject and copy entries by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10844
- s3: place multipart part chunks by the destination object's storage rule by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10845
- s3: allow-unordered is a listing parameter, not an unimplemented subresource by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10846
- filer: use bind variables for request-controlled values in the arangodb store by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10795
- filer: close the empty-folder race by checking after each mutation by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10799
- filer: stop remote.unmount from deleting the remote objects by @Koalk in https://github.com/seaweedfs/seaweedfs/pull/10811
- fix(filer): bound aggregated metadata reads by peer watermarks by @kisow in https://github.com/seaweedfs/seaweedfs/pull/10803
- Recover from a dead volume server on the mount read path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10798
- mount: drop consumed entries when reading a directory through by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10802
- mount: reuse the listed entry's path instead of rebuilding it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10817
- mount: fold an inode's single link into its entry by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10818
- mount: move the inode table when a rename arrives from the cluster by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10822
- mount: index directory state by path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10827
- mount: discard a path-cache insert that raced a purge by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10842
- Re-look-up a chunk's locations as soon as they all fail by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10800
- Give the WebDav chunk reader a bounded, invalidatable location cache by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10801
- Guard the gcs credential path in FetchAndWriteNeedle like the other backends by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10796
- volume: forward fsync=true to replicas in ReplicatedWrite by @sunchao6106 in https://github.com/seaweedfs/seaweedfs/pull/10805
- topology: refresh oversized mark on every heartbeat by @sunchao6106 in https://github.com/seaweedfs/seaweedfs/pull/10829
- rust: honor fsync on the volume server write path by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10816
- rust: stop writing when a durable write's index flush fails by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10825
- Lance catalog, and a Rust plugin worker to maintain it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10841
- seaweed-worker: serve health, readiness and metrics by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10848
- metrics: graph the plugin workers by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10849
- mini: state the format of a -tableBucket, do not infer it by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10851
- Give the local Unix socket gRPC transport room to breathe by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10824
- Add monitoring label to filer servicemonitor by @slimes28 in https://github.com/seaweedfs/seaweedfs/pull/10835
- Fix what the Go 1.26 language bump breaks by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10794
- go 1.26 by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10797
- fix(test/s3/versioning): dropped test error by @alrs in https://github.com/seaweedfs/seaweedfs/pull/10813
- test(s3/versioning): read the whole version body instead of one Read by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10815
- test: drive the Lance namespace with LanceDB by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10850
- ci: fall through to another Ubuntu mirror when one is unreachable by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10828
- ci: install the runner's own packages through the mirror fallback too by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10831
- ci: build protoc into the crate instead of installing it per job by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10830
- ci: call the apt helper from the workflow's working directory by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10832
- ci: stop installing FUSE headers nothing links against by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10840
- readme: fold RustFS into the MinIO comparison by @chrislusf in https://github.com/seaweedfs/seaweedfs/pull/10788
- build(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10786
- build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.43.4 to 1.43.5 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10787
- build(deps): bump google.golang.org/api from 0.289.0 to 0.293.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10792
- build(deps): bump golang.org/x/net from 0.57.0 to 0.58.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10790
- build(deps): bump github.com/rabbitmq/amqp091-go from 1.11.0 to 1.13.0 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10791
- build(deps): bump go.etcd.io/etcd/client/v3 from 3.6.12 to 3.7.1 by @dependabot[bot] in https://github.com/seaweedfs/seaweedfs/pull/10789
- @Koalk made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10811
- @sunchao6106 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10805
- @slimes28 made their first contribution in https://github.com/seaweedfs/seaweedfs/pull/10835
Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.42...4.43
v0.8.0-pre.7
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.7/turso_cli-installer.sh | sh
powershell -ExecutionPolicy Bypass -c "irm https://github.com/tursodatabase/turso/releases/download/v0.8.0-pre.7/turso_cli-installer.ps1 | iex"
| File | Platform | Checksum |
|---|---|---|
| turso_cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| turso_cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| turso_cli-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| turso_cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| turso_cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| turso_cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo tursodatabase/turso
You can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
RustFS 1.0.0-rc.3 (rc)
- fix(site-replication): lift a rejoined site's restarted edit counter over stale marks by @reatang in https://github.com/rustfs/rustfs/pull/6119
- fix(ci): pin Docker images to release source by @overtrue in https://github.com/rustfs/rustfs/pull/6121
- test(utils): allow ephemeral port reuse by @overtrue in https://github.com/rustfs/rustfs/pull/6122
- fix(scanner): add context to corrupt metadata logs by @marshawcoco in https://github.com/rustfs/rustfs/pull/6099
- feat(ecstore): report inline early-stop miss reasons by @houseme in https://github.com/rustfs/rustfs/pull/6134
- feat(table-catalog): finalize Iceberg REST behavior by @marshawcoco in https://github.com/rustfs/rustfs/pull/6072
- fix(admin): serialize replication metrics in minio-go wire shapes by @reatang in https://github.com/rustfs/rustfs/pull/6127
- fix(site-replication): merge incoming ILM expiry documents instead of overwriting by @reatang in https://github.com/rustfs/rustfs/pull/6130
- fix(admin): stream madmin ReplicationMRF documents from /v3/replication/mrf by @reatang in https://github.com/rustfs/rustfs/pull/6126
- fix(replication): transport and persist LWW timestamps for tag, retention, and legal hold by @reatang in https://github.com/rustfs/rustfs/pull/6129
- perf(ecstore): defer pending inline data shards by @houseme in https://github.com/rustfs/rustfs/pull/6137
- fix(ecstore): classify remote inline early-stop misses by @overtrue in https://github.com/rustfs/rustfs/pull/6136
- fix(ecstore): overlap metacache reader deadlines by @marshawcoco in https://github.com/rustfs/rustfs/pull/6098
- fix(heal): preserve timeout budget across retries by @marshawcoco in https://github.com/rustfs/rustfs/pull/6101
- fix(ecstore): mint bucket-target ARNs in the madmin arn:minio partition by @reatang in https://github.com/rustfs/rustfs/pull/6128
- chore(ecstore): drop the client dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6138
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/6142
- fix(storage): skip table guards for multipart parts by @overtrue in https://github.com/rustfs/rustfs/pull/6143
- perf(ecstore): enable inline data read early-stop by default by @houseme in https://github.com/rustfs/rustfs/pull/6140
- chore(ecstore): drop the disk dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6139
- chore(ecstore): drop the set_disk dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6141
- chore(ecstore): drop the bucket dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6147
- test(interop): let the MinIO fixture lab build from registry mirrors by @overtrue in https://github.com/rustfs/rustfs/pull/6148
- chore: drop the remaining product-code dead_code blankets by @overtrue in https://github.com/rustfs/rustfs/pull/6149
- fix(ecstore): silence two dead_code warnings left on main by @overtrue in https://github.com/rustfs/rustfs/pull/6153
- chore(ecstore): annotate the two dead fns the blanket removals missed by @overtrue in https://github.com/rustfs/rustfs/pull/6152
- test(tier): pin the compressed transitioned read against its stored bytes by @overtrue in https://github.com/rustfs/rustfs/pull/6151
- test(ecstore): add metadata slow-tail fault hook by @houseme in https://github.com/rustfs/rustfs/pull/6150
- feat(ecstore): default bounded metadata fanout by @houseme in https://github.com/rustfs/rustfs/pull/6156
- fix(table-catalog): assign fresh schema IDs on create by @marshawcoco in https://github.com/rustfs/rustfs/pull/6146
- fix(scanner): canonicalize temp_dir for drive field assertion on macOS by @overtrue in https://github.com/rustfs/rustfs/pull/6159
- chore(protocols): drop 43 no-op dead_code allows from swift by @overtrue in https://github.com/rustfs/rustfs/pull/6157
- refactor(rustfs): move module switches below the layer boundary by @overtrue in https://github.com/rustfs/rustfs/pull/6154
- fix(ecstore): resolve nine unused bindings in set_disk write and heal paths by @overtrue in https://github.com/rustfs/rustfs/pull/6158
- fix(table-catalog): prevent object catalog lock reentry by @marshawcoco in https://github.com/rustfs/rustfs/pull/6144
- ci(arch): ratchet ecstore module-level lint blankets by @overtrue in https://github.com/rustfs/rustfs/pull/6155
- perf(io-metrics): avoid get handoff label allocations by @houseme in https://github.com/rustfs/rustfs/pull/6160
- perf(get): avoid memory body stream wrapper by @houseme in https://github.com/rustfs/rustfs/pull/6163
- chore(obs): adjudicate 19 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6162
- chore: adjudicate 19 bare dead_code allows across six leaf crates by @overtrue in https://github.com/rustfs/rustfs/pull/6161
- feat(site-replication): drain the retry queue from the reconcile tick by @reatang in https://github.com/rustfs/rustfs/pull/6131
- fix(kms): resolve Vault auth from the environment at startup and add Kubernetes auth by @reatang in https://github.com/rustfs/rustfs/pull/6095
- feat(ecstore): pin bitrot algorithms with a startup self-test (HS-11) by @houseme in https://github.com/rustfs/rustfs/pull/6165
- feat(madmin): add a SigV4-signed admin client for heal and scanner APIs (HS-05) by @houseme in https://github.com/rustfs/rustfs/pull/6166
- docs(ecstore): fix bitrot comment typo by @houseme in https://github.com/rustfs/rustfs/pull/6168
- fix(site-replication): admit only verifiable peer-edit fences by @reatang in https://github.com/rustfs/rustfs/pull/6123
- feat(scanner): expose prefix-level bucket usage via admin API (HS-08) by @houseme in https://github.com/rustfs/rustfs/pull/6171
- feat(helm): add TLSRoute passthrough support for gateway api by @majinghe in https://github.com/rustfs/rustfs/pull/6169
- chore(ecstore): adjudicate 32 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6173
- feat(heal): add progress and trace observability by @houseme in https://github.com/rustfs/rustfs/pull/6179
- feat(scanner): emit excess alerts as S3 notification events (HS-04) by @houseme in https://github.com/rustfs/rustfs/pull/6176
- fix(ecstore): describe peer bucket RPC failures with no details by @overtrue in https://github.com/rustfs/rustfs/pull/6190
- test(heal): lock heal vs delete/overwrite race invariants (HS-12) by @houseme in https://github.com/rustfs/rustfs/pull/6183
- chore(deps): refresh cargo dependencies by @houseme in https://github.com/rustfs/rustfs/pull/6198
- feat(storage): add default-off PUT admission gate by @houseme in https://github.com/rustfs/rustfs/pull/6197
- refactor(admin): route kms management auth through shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6194
- chore(storage): drop dead io-schedule metrics and helpers by @overtrue in https://github.com/rustfs/rustfs/pull/6199
- feat(heal): wire MRF intents with durable repair journal (HS-01) by @houseme in https://github.com/rustfs/rustfs/pull/6189
- chore: adjudicate 26 bare dead_code allows across five crates by @overtrue in https://github.com/rustfs/rustfs/pull/6187
- chore(storage): drop dead backpressure and lock-optimizer wrappers by @overtrue in https://github.com/rustfs/rustfs/pull/6195
- fix(ecstore): give peer REST failures op and bucket context by @overtrue in https://github.com/rustfs/rustfs/pull/6200
- ci(package): auto-trigger DEB/RPM packaging on releases and upload to GitHub release assets by @majinghe in https://github.com/rustfs/rustfs/pull/6202
- refactor: import x-amz-checksum header names from the shared constants by @overtrue in https://github.com/rustfs/rustfs/pull/6193
- fix(admin): classify missing kms config by error variant by @overtrue in https://github.com/rustfs/rustfs/pull/6196
- fix(ecstore): resume remote shard reads once by @cxymds in https://github.com/rustfs/rustfs/pull/6091
- fix(lock): reap expired local lease guards by @cxymds in https://github.com/rustfs/rustfs/pull/6094
- fix(ecstore): single-flight remote disk recovery by @cxymds in https://github.com/rustfs/rustfs/pull/6096
- feat(heal): incremental status cursors and typed overlap policy (HS-06) by @houseme in https://github.com/rustfs/rustfs/pull/6206
- chore(io-core): drop eight zero-consumer modules by @overtrue in https://github.com/rustfs/rustfs/pull/6201
- fix(deps): record heal's bytes and crc-fast in the lockfile by @overtrue in https://github.com/rustfs/rustfs/pull/6211
- test(e2e): drop 187 no-op serial markers from the three densest e2e suites by @overtrue in https://github.com/rustfs/rustfs/pull/6209
- feat(ecstore): instrument rename sync tail metrics by @houseme in https://github.com/rustfs/rustfs/pull/6205
- chore(zip): trim the unused extract and create surface by @overtrue in https://github.com/rustfs/rustfs/pull/6210
- test(lifecycle,scanner): drop 47 no-op #[serial] markers (backlog#1846 T1) by @overtrue in https://github.com/rustfs/rustfs/pull/6213
- test(admin): replace a source-text guard with a behavior test by @overtrue in https://github.com/rustfs/rustfs/pull/6212
- feat(app): add opt-in small GET body once path by @houseme in https://github.com/rustfs/rustfs/pull/6216
- test(io-metrics): assert record helper emissions; fix census heuristic by @overtrue in https://github.com/rustfs/rustfs/pull/6217
- feat(replication): split oversized hot-path functions, proxy unreplicated reads, and fail SSE-C passthrough closed by @reatang in https://github.com/rustfs/rustfs/pull/6170
- test(kms): move the Vault KV2 doc guard into check_fips_wording.sh by @overtrue in https://github.com/rustfs/rustfs/pull/6215
- test(e2e): pin bounded physical reads for compressed multipart range GETs by @reatang in https://github.com/rustfs/rustfs/pull/6167
- chore(deps): update s3s to upstream main by @GatewayJ in https://github.com/rustfs/rustfs/pull/6203
- perf(ecstore): validate local IO paths with openat2 by @houseme in https://github.com/rustfs/rustfs/pull/6221
- fix(e2e): import serial test attribute by @houseme in https://github.com/rustfs/rustfs/pull/6222
- fix(package): declare /etc/default/rustfs as a deb conffile by @majinghe in https://github.com/rustfs/rustfs/pull/6220
- perf(get): emit accept-ranges with static header by @houseme in https://github.com/rustfs/rustfs/pull/6225
- fix(e2e): add missing serial_test import in replication_extension_test by @overtrue in https://github.com/rustfs/rustfs/pull/6224
- feat(ecstore): add default-off dst dir fsync group commit by @houseme in https://github.com/rustfs/rustfs/pull/6226
- docs(architecture): describe io-core by its surviving surface by @overtrue in https://github.com/rustfs/rustfs/pull/6227
- fix(ecstore): group inline dst dir fsync by @houseme in https://github.com/rustfs/rustfs/pull/6228
- fix(sse): read objects that MinIO encrypted by @overtrue in https://github.com/rustfs/rustfs/pull/6191
- fix(ecstore): make the data-usage cache load actually retry by @overtrue in https://github.com/rustfs/rustfs/pull/6229
- test(heal): cover privileged mount readiness by @houseme in https://github.com/rustfs/rustfs/pull/6231
- perf(server): skip output layer work on common GET paths by @houseme in https://github.com/rustfs/rustfs/pull/6232
- test(e2e): fold eleven post-object accept cases into one table-driven test by @overtrue in https://github.com/rustfs/rustfs/pull/6207
- fix(ecstore): classify a missing data-usage cache by the error that arrives by @overtrue in https://github.com/rustfs/rustfs/pull/6233
- fix(package): write release checksum entries with GitHub asset names by @majinghe in https://github.com/rustfs/rustfs/pull/6234
- test(io-metrics): assert what the remaining smoke tests only called by @overtrue in https://github.com/rustfs/rustfs/pull/6238
- refactor(data-usage): own SizeSummary once, with the scanner's semantics by @overtrue in https://github.com/rustfs/rustfs/pull/6237
- test(crypto): replace the one-file key scan with a repo-wide guard by @overtrue in https://github.com/rustfs/rustfs/pull/6246
- test(io-schedule): drop 24 no-op serial markers from the IO scheduler unit tests by @overtrue in https://github.com/rustfs/rustfs/pull/6243
- test(ecstore): assert the error conversions, and stop the census over-reporting by @overtrue in https://github.com/rustfs/rustfs/pull/6241
- test(e2e): drop 79 no-op serial markers from six more suites by @overtrue in https://github.com/rustfs/rustfs/pull/6239
- fix(admin): report refreshed lock lease TTLs by @cxymds in https://github.com/rustfs/rustfs/pull/6230
- refactor(app): resolve the bucket default SSE in one place by @overtrue in https://github.com/rustfs/rustfs/pull/6236
- fix(site-replication): clear pending_remove on join, surface failures by @reatang in https://github.com/rustfs/rustfs/pull/6244
- test(audit,heal): assert three more smoke tests by @overtrue in https://github.com/rustfs/rustfs/pull/6248
- docs(scanner): record heal/scanner MinIO parity decisions (backlog#1878 HS-14/16/18) by @houseme in https://github.com/rustfs/rustfs/pull/6250
- test(crypto): replace the one-file key scan with a repo-wide guard by @overtrue in https://github.com/rustfs/rustfs/pull/6255
- chore(rustfs): adjudicate all 73 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6254
- refactor(heal,scanner): clean up dead heal/scanner code, flags, and metrics (HS-09/10/19/20) by @houseme in https://github.com/rustfs/rustfs/pull/6256
- refactor(admin): route plugin handler auth through authorize_admin_request by @overtrue in https://github.com/rustfs/rustfs/pull/6247
- docs(operations): land the heal/scanner MinIO audit baseline with closure results (backlog#1862) by @houseme in https://github.com/rustfs/rustfs/pull/6258
- test(lifecycle): cover noncurrent marker cleanup cascade by @cxymds in https://github.com/rustfs/rustfs/pull/6252
- docs(operations): add an English counterpart of the heal/scanner audit baseline by @houseme in https://github.com/rustfs/rustfs/pull/6261
- feat(ecstore): expose rename sync tail metrics by @houseme in https://github.com/rustfs/rustfs/pull/6257
- chore(rustfs): adjudicate the remaining 36 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6259
- refactor(sse): keep one bucket-default algorithm mapping for every writer by @overtrue in https://github.com/rustfs/rustfs/pull/6251
- feat(io-metrics): attribute ReadVersion RPC stages by @houseme in https://github.com/rustfs/rustfs/pull/6262
- fix(lock): reject stale lease snapshots by @cxymds in https://github.com/rustfs/rustfs/pull/6249
- docs(operations): restore the truncated tail of the English audit baseline by @houseme in https://github.com/rustfs/rustfs/pull/6268
- feat(helm): add istio gateway class support by @majinghe in https://github.com/rustfs/rustfs/pull/6264
- fix(metrics): remove duplicate scanner counter producers by @marshawcoco in https://github.com/rustfs/rustfs/pull/6245
- docs(admin): pin two authorization semantics against a dedup rewrite by @overtrue in https://github.com/rustfs/rustfs/pull/6279
- chore(protocols): narrow the SessionDiag blanket to its one unread field by @overtrue in https://github.com/rustfs/rustfs/pull/6266
- refactor(heal): remove the dead MRF heal-type path by @houseme in https://github.com/rustfs/rustfs/pull/6275
- fix(scripts): stop the assertless-test census truncating bodies at string braces by @overtrue in https://github.com/rustfs/rustfs/pull/6280
- fix(admin): pass the real RemoteAddr so aws:SourceIp reaches policy evaluation by @overtrue in https://github.com/rustfs/rustfs/pull/6273
- fix(madmin): send background-heal status over POST by @houseme in https://github.com/rustfs/rustfs/pull/6270
- chore(common): drop dead rule helpers and the s3s dependency by @houseme in https://github.com/rustfs/rustfs/pull/6271
- fix(heal): stop O(window) memmove in the heal result window by @houseme in https://github.com/rustfs/rustfs/pull/6272
- perf(scanner): cut per-object allocations in the scan hot path by @houseme in https://github.com/rustfs/rustfs/pull/6274
- refactor(admin): route observability handler auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6263
- fix(ecstore): classify decommission stage failures by type, not by message by @overtrue in https://github.com/rustfs/rustfs/pull/6269
- feat(heal,scanner): best-effort repaired notices from the MRF consumer by @houseme in https://github.com/rustfs/rustfs/pull/6283
- perf(heal,scanner): single-flight MRF producers per detection event by @houseme in https://github.com/rustfs/rustfs/pull/6282
- chore: adjudicate the last 18 bare dead_code allows in the library crates by @overtrue in https://github.com/rustfs/rustfs/pull/6265
- feat(connect): add device identity store and registration proof by @overtrue in https://github.com/rustfs/rustfs/pull/6267
- fix(get): name the failing object on mid-stream GET body failures by @reatang in https://github.com/rustfs/rustfs/pull/6284
- refactor(scanner): split remote_scanner.rs into stream child module by @houseme in https://github.com/rustfs/rustfs/pull/6289
- refactor(heal): split resume.rs into focused child modules by @houseme in https://github.com/rustfs/rustfs/pull/6290
- refactor(scanner): split scanner_io.rs into child modules by @houseme in https://github.com/rustfs/rustfs/pull/6294
- refactor(scanner): split data_usage_define persistence and tests by @houseme in https://github.com/rustfs/rustfs/pull/6292
- chore(deps): bump datafusion to 55.0.0 by @houseme in https://github.com/rustfs/rustfs/pull/6288
- refactor(heal): split task.rs per heal kind by @houseme in https://github.com/rustfs/rustfs/pull/6293
- feat(ecstore): batch small file fdatasync commits by @houseme in https://github.com/rustfs/rustfs/pull/6297
- fix(tier): recover multi-committed mutation intents by @cxymds in https://github.com/rustfs/rustfs/pull/6296
- feat(ecstore): expose fdatasync group wait metrics by @houseme in https://github.com/rustfs/rustfs/pull/6299
- fix(lifecycle): safely expire all object versions by @cxymds in https://github.com/rustfs/rustfs/pull/6291
- test(ecstore): pin rename quorum tail visibility by @houseme in https://github.com/rustfs/rustfs/pull/6301
- refactor(scanner): split scanner_folder item actions and ledger by @houseme in https://github.com/rustfs/rustfs/pull/6302
- refactor(heal): split manager.rs queue/scheduler/scan children by @houseme in https://github.com/rustfs/rustfs/pull/6303
- perf(server): cache HTTP metric handles by @houseme in https://github.com/rustfs/rustfs/pull/6304
- refactor(scanner): split scanner.rs cycle/leadership/persist children by @houseme in https://github.com/rustfs/rustfs/pull/6305
- feat(ecstore): add default-off rename early ack probe by @houseme in https://github.com/rustfs/rustfs/pull/6306
- perf(heal): trim scanner and heal queue hot paths by @houseme in https://github.com/rustfs/rustfs/pull/6307
- fix(heal): emit MRF repair notices on completion by @houseme in https://github.com/rustfs/rustfs/pull/6309
- perf(heal): reduce scheduler skip heap churn by @houseme in https://github.com/rustfs/rustfs/pull/6311
- feat(ecstore): observe put commit lock wait by @houseme in https://github.com/rustfs/rustfs/pull/6310
- chore(release): prepare 1.0.0-rc.3 by @overtrue in https://github.com/rustfs/rustfs/pull/6308
- feat(obs): complete metric dimension coverage by @houseme in https://github.com/rustfs/rustfs/pull/6314
- refactor(heal): prune statistics label helpers by @houseme in https://github.com/rustfs/rustfs/pull/6312
- feat(ecstore): bound put commit lock admission by @houseme in https://github.com/rustfs/rustfs/pull/6315
- fix(scanner): honor explicit cycle cadence by @marshawcoco in https://github.com/rustfs/rustfs/pull/6313
- fix(webdav): allow bucket-scoped root listings by @GatewayJ in https://github.com/rustfs/rustfs/pull/6298
- test(obs): add metric dimension smoke harness by @houseme in https://github.com/rustfs/rustfs/pull/6316
- perf(io-metrics): cache read version metric handles by @houseme in https://github.com/rustfs/rustfs/pull/6317
- perf(scanner): reduce per-object allocation churn by @houseme in https://github.com/rustfs/rustfs/pull/6318
- fix: resolve release-blocking integration failures by @overtrue in https://github.com/rustfs/rustfs/pull/6320
- test: stabilize release-blocking full E2E checks by @overtrue in https://github.com/rustfs/rustfs/pull/6322
- feat(ecstore): observe PUT commit lock admission by @houseme in https://github.com/rustfs/rustfs/pull/6319
- docs(agents): run adversarial review before pre-pr by @cxymds in https://github.com/rustfs/rustfs/pull/6325
- fix(lifecycle): honor bucket default retention by @marshawcoco in https://github.com/rustfs/rustfs/pull/6324
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.2...1.0.0-rc.3
RustFS 1.0.0-rc.3-preview.2 (preview)
- fix(site-replication): lift a rejoined site's restarted edit counter over stale marks by @reatang in https://github.com/rustfs/rustfs/pull/6119
- fix(ci): pin Docker images to release source by @overtrue in https://github.com/rustfs/rustfs/pull/6121
- test(utils): allow ephemeral port reuse by @overtrue in https://github.com/rustfs/rustfs/pull/6122
- fix(scanner): add context to corrupt metadata logs by @marshawcoco in https://github.com/rustfs/rustfs/pull/6099
- feat(ecstore): report inline early-stop miss reasons by @houseme in https://github.com/rustfs/rustfs/pull/6134
- feat(table-catalog): finalize Iceberg REST behavior by @marshawcoco in https://github.com/rustfs/rustfs/pull/6072
- fix(admin): serialize replication metrics in minio-go wire shapes by @reatang in https://github.com/rustfs/rustfs/pull/6127
- fix(site-replication): merge incoming ILM expiry documents instead of overwriting by @reatang in https://github.com/rustfs/rustfs/pull/6130
- fix(admin): stream madmin ReplicationMRF documents from /v3/replication/mrf by @reatang in https://github.com/rustfs/rustfs/pull/6126
- fix(replication): transport and persist LWW timestamps for tag, retention, and legal hold by @reatang in https://github.com/rustfs/rustfs/pull/6129
- perf(ecstore): defer pending inline data shards by @houseme in https://github.com/rustfs/rustfs/pull/6137
- fix(ecstore): classify remote inline early-stop misses by @overtrue in https://github.com/rustfs/rustfs/pull/6136
- fix(ecstore): overlap metacache reader deadlines by @marshawcoco in https://github.com/rustfs/rustfs/pull/6098
- fix(heal): preserve timeout budget across retries by @marshawcoco in https://github.com/rustfs/rustfs/pull/6101
- fix(ecstore): mint bucket-target ARNs in the madmin arn:minio partition by @reatang in https://github.com/rustfs/rustfs/pull/6128
- chore(ecstore): drop the client dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6138
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/6142
- fix(storage): skip table guards for multipart parts by @overtrue in https://github.com/rustfs/rustfs/pull/6143
- perf(ecstore): enable inline data read early-stop by default by @houseme in https://github.com/rustfs/rustfs/pull/6140
- chore(ecstore): drop the disk dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6139
- chore(ecstore): drop the set_disk dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6141
- chore(ecstore): drop the bucket dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6147
- test(interop): let the MinIO fixture lab build from registry mirrors by @overtrue in https://github.com/rustfs/rustfs/pull/6148
- chore: drop the remaining product-code dead_code blankets by @overtrue in https://github.com/rustfs/rustfs/pull/6149
- fix(ecstore): silence two dead_code warnings left on main by @overtrue in https://github.com/rustfs/rustfs/pull/6153
- chore(ecstore): annotate the two dead fns the blanket removals missed by @overtrue in https://github.com/rustfs/rustfs/pull/6152
- test(tier): pin the compressed transitioned read against its stored bytes by @overtrue in https://github.com/rustfs/rustfs/pull/6151
- test(ecstore): add metadata slow-tail fault hook by @houseme in https://github.com/rustfs/rustfs/pull/6150
- feat(ecstore): default bounded metadata fanout by @houseme in https://github.com/rustfs/rustfs/pull/6156
- fix(table-catalog): assign fresh schema IDs on create by @marshawcoco in https://github.com/rustfs/rustfs/pull/6146
- fix(scanner): canonicalize temp_dir for drive field assertion on macOS by @overtrue in https://github.com/rustfs/rustfs/pull/6159
- chore(protocols): drop 43 no-op dead_code allows from swift by @overtrue in https://github.com/rustfs/rustfs/pull/6157
- refactor(rustfs): move module switches below the layer boundary by @overtrue in https://github.com/rustfs/rustfs/pull/6154
- fix(ecstore): resolve nine unused bindings in set_disk write and heal paths by @overtrue in https://github.com/rustfs/rustfs/pull/6158
- fix(table-catalog): prevent object catalog lock reentry by @marshawcoco in https://github.com/rustfs/rustfs/pull/6144
- ci(arch): ratchet ecstore module-level lint blankets by @overtrue in https://github.com/rustfs/rustfs/pull/6155
- perf(io-metrics): avoid get handoff label allocations by @houseme in https://github.com/rustfs/rustfs/pull/6160
- perf(get): avoid memory body stream wrapper by @houseme in https://github.com/rustfs/rustfs/pull/6163
- chore(obs): adjudicate 19 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6162
- chore: adjudicate 19 bare dead_code allows across six leaf crates by @overtrue in https://github.com/rustfs/rustfs/pull/6161
- feat(site-replication): drain the retry queue from the reconcile tick by @reatang in https://github.com/rustfs/rustfs/pull/6131
- fix(kms): resolve Vault auth from the environment at startup and add Kubernetes auth by @reatang in https://github.com/rustfs/rustfs/pull/6095
- feat(ecstore): pin bitrot algorithms with a startup self-test (HS-11) by @houseme in https://github.com/rustfs/rustfs/pull/6165
- feat(madmin): add a SigV4-signed admin client for heal and scanner APIs (HS-05) by @houseme in https://github.com/rustfs/rustfs/pull/6166
- docs(ecstore): fix bitrot comment typo by @houseme in https://github.com/rustfs/rustfs/pull/6168
- fix(site-replication): admit only verifiable peer-edit fences by @reatang in https://github.com/rustfs/rustfs/pull/6123
- feat(scanner): expose prefix-level bucket usage via admin API (HS-08) by @houseme in https://github.com/rustfs/rustfs/pull/6171
- feat(helm): add TLSRoute passthrough support for gateway api by @majinghe in https://github.com/rustfs/rustfs/pull/6169
- chore(ecstore): adjudicate 32 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6173
- feat(heal): add progress and trace observability by @houseme in https://github.com/rustfs/rustfs/pull/6179
- feat(scanner): emit excess alerts as S3 notification events (HS-04) by @houseme in https://github.com/rustfs/rustfs/pull/6176
- fix(ecstore): describe peer bucket RPC failures with no details by @overtrue in https://github.com/rustfs/rustfs/pull/6190
- test(heal): lock heal vs delete/overwrite race invariants (HS-12) by @houseme in https://github.com/rustfs/rustfs/pull/6183
- chore(deps): refresh cargo dependencies by @houseme in https://github.com/rustfs/rustfs/pull/6198
- feat(storage): add default-off PUT admission gate by @houseme in https://github.com/rustfs/rustfs/pull/6197
- refactor(admin): route kms management auth through shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6194
- chore(storage): drop dead io-schedule metrics and helpers by @overtrue in https://github.com/rustfs/rustfs/pull/6199
- feat(heal): wire MRF intents with durable repair journal (HS-01) by @houseme in https://github.com/rustfs/rustfs/pull/6189
- chore: adjudicate 26 bare dead_code allows across five crates by @overtrue in https://github.com/rustfs/rustfs/pull/6187
- chore(storage): drop dead backpressure and lock-optimizer wrappers by @overtrue in https://github.com/rustfs/rustfs/pull/6195
- fix(ecstore): give peer REST failures op and bucket context by @overtrue in https://github.com/rustfs/rustfs/pull/6200
- ci(package): auto-trigger DEB/RPM packaging on releases and upload to GitHub release assets by @majinghe in https://github.com/rustfs/rustfs/pull/6202
- refactor: import x-amz-checksum header names from the shared constants by @overtrue in https://github.com/rustfs/rustfs/pull/6193
- fix(admin): classify missing kms config by error variant by @overtrue in https://github.com/rustfs/rustfs/pull/6196
- fix(ecstore): resume remote shard reads once by @cxymds in https://github.com/rustfs/rustfs/pull/6091
- fix(lock): reap expired local lease guards by @cxymds in https://github.com/rustfs/rustfs/pull/6094
- fix(ecstore): single-flight remote disk recovery by @cxymds in https://github.com/rustfs/rustfs/pull/6096
- feat(heal): incremental status cursors and typed overlap policy (HS-06) by @houseme in https://github.com/rustfs/rustfs/pull/6206
- chore(io-core): drop eight zero-consumer modules by @overtrue in https://github.com/rustfs/rustfs/pull/6201
- fix(deps): record heal's bytes and crc-fast in the lockfile by @overtrue in https://github.com/rustfs/rustfs/pull/6211
- test(e2e): drop 187 no-op serial markers from the three densest e2e suites by @overtrue in https://github.com/rustfs/rustfs/pull/6209
- feat(ecstore): instrument rename sync tail metrics by @houseme in https://github.com/rustfs/rustfs/pull/6205
- chore(zip): trim the unused extract and create surface by @overtrue in https://github.com/rustfs/rustfs/pull/6210
- test(lifecycle,scanner): drop 47 no-op #[serial] markers (backlog#1846 T1) by @overtrue in https://github.com/rustfs/rustfs/pull/6213
- test(admin): replace a source-text guard with a behavior test by @overtrue in https://github.com/rustfs/rustfs/pull/6212
- feat(app): add opt-in small GET body once path by @houseme in https://github.com/rustfs/rustfs/pull/6216
- test(io-metrics): assert record helper emissions; fix census heuristic by @overtrue in https://github.com/rustfs/rustfs/pull/6217
- feat(replication): split oversized hot-path functions, proxy unreplicated reads, and fail SSE-C passthrough closed by @reatang in https://github.com/rustfs/rustfs/pull/6170
- test(kms): move the Vault KV2 doc guard into check_fips_wording.sh by @overtrue in https://github.com/rustfs/rustfs/pull/6215
- test(e2e): pin bounded physical reads for compressed multipart range GETs by @reatang in https://github.com/rustfs/rustfs/pull/6167
- chore(deps): update s3s to upstream main by @GatewayJ in https://github.com/rustfs/rustfs/pull/6203
- perf(ecstore): validate local IO paths with openat2 by @houseme in https://github.com/rustfs/rustfs/pull/6221
- fix(e2e): import serial test attribute by @houseme in https://github.com/rustfs/rustfs/pull/6222
- fix(package): declare /etc/default/rustfs as a deb conffile by @majinghe in https://github.com/rustfs/rustfs/pull/6220
- perf(get): emit accept-ranges with static header by @houseme in https://github.com/rustfs/rustfs/pull/6225
- fix(e2e): add missing serial_test import in replication_extension_test by @overtrue in https://github.com/rustfs/rustfs/pull/6224
- feat(ecstore): add default-off dst dir fsync group commit by @houseme in https://github.com/rustfs/rustfs/pull/6226
- docs(architecture): describe io-core by its surviving surface by @overtrue in https://github.com/rustfs/rustfs/pull/6227
- fix(ecstore): group inline dst dir fsync by @houseme in https://github.com/rustfs/rustfs/pull/6228
- fix(sse): read objects that MinIO encrypted by @overtrue in https://github.com/rustfs/rustfs/pull/6191
- fix(ecstore): make the data-usage cache load actually retry by @overtrue in https://github.com/rustfs/rustfs/pull/6229
- test(heal): cover privileged mount readiness by @houseme in https://github.com/rustfs/rustfs/pull/6231
- perf(server): skip output layer work on common GET paths by @houseme in https://github.com/rustfs/rustfs/pull/6232
- test(e2e): fold eleven post-object accept cases into one table-driven test by @overtrue in https://github.com/rustfs/rustfs/pull/6207
- fix(ecstore): classify a missing data-usage cache by the error that arrives by @overtrue in https://github.com/rustfs/rustfs/pull/6233
- fix(package): write release checksum entries with GitHub asset names by @majinghe in https://github.com/rustfs/rustfs/pull/6234
- test(io-metrics): assert what the remaining smoke tests only called by @overtrue in https://github.com/rustfs/rustfs/pull/6238
- refactor(data-usage): own SizeSummary once, with the scanner's semantics by @overtrue in https://github.com/rustfs/rustfs/pull/6237
- test(crypto): replace the one-file key scan with a repo-wide guard by @overtrue in https://github.com/rustfs/rustfs/pull/6246
- test(io-schedule): drop 24 no-op serial markers from the IO scheduler unit tests by @overtrue in https://github.com/rustfs/rustfs/pull/6243
- test(ecstore): assert the error conversions, and stop the census over-reporting by @overtrue in https://github.com/rustfs/rustfs/pull/6241
- test(e2e): drop 79 no-op serial markers from six more suites by @overtrue in https://github.com/rustfs/rustfs/pull/6239
- fix(admin): report refreshed lock lease TTLs by @cxymds in https://github.com/rustfs/rustfs/pull/6230
- refactor(app): resolve the bucket default SSE in one place by @overtrue in https://github.com/rustfs/rustfs/pull/6236
- fix(site-replication): clear pending_remove on join, surface failures by @reatang in https://github.com/rustfs/rustfs/pull/6244
- test(audit,heal): assert three more smoke tests by @overtrue in https://github.com/rustfs/rustfs/pull/6248
- docs(scanner): record heal/scanner MinIO parity decisions (backlog#1878 HS-14/16/18) by @houseme in https://github.com/rustfs/rustfs/pull/6250
- test(crypto): replace the one-file key scan with a repo-wide guard by @overtrue in https://github.com/rustfs/rustfs/pull/6255
- chore(rustfs): adjudicate all 73 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6254
- refactor(heal,scanner): clean up dead heal/scanner code, flags, and metrics (HS-09/10/19/20) by @houseme in https://github.com/rustfs/rustfs/pull/6256
- refactor(admin): route plugin handler auth through authorize_admin_request by @overtrue in https://github.com/rustfs/rustfs/pull/6247
- docs(operations): land the heal/scanner MinIO audit baseline with closure results (backlog#1862) by @houseme in https://github.com/rustfs/rustfs/pull/6258
- test(lifecycle): cover noncurrent marker cleanup cascade by @cxymds in https://github.com/rustfs/rustfs/pull/6252
- docs(operations): add an English counterpart of the heal/scanner audit baseline by @houseme in https://github.com/rustfs/rustfs/pull/6261
- feat(ecstore): expose rename sync tail metrics by @houseme in https://github.com/rustfs/rustfs/pull/6257
- chore(rustfs): adjudicate the remaining 36 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6259
- refactor(sse): keep one bucket-default algorithm mapping for every writer by @overtrue in https://github.com/rustfs/rustfs/pull/6251
- feat(io-metrics): attribute ReadVersion RPC stages by @houseme in https://github.com/rustfs/rustfs/pull/6262
- fix(lock): reject stale lease snapshots by @cxymds in https://github.com/rustfs/rustfs/pull/6249
- docs(operations): restore the truncated tail of the English audit baseline by @houseme in https://github.com/rustfs/rustfs/pull/6268
- feat(helm): add istio gateway class support by @majinghe in https://github.com/rustfs/rustfs/pull/6264
- fix(metrics): remove duplicate scanner counter producers by @marshawcoco in https://github.com/rustfs/rustfs/pull/6245
- docs(admin): pin two authorization semantics against a dedup rewrite by @overtrue in https://github.com/rustfs/rustfs/pull/6279
- chore(protocols): narrow the SessionDiag blanket to its one unread field by @overtrue in https://github.com/rustfs/rustfs/pull/6266
- refactor(heal): remove the dead MRF heal-type path by @houseme in https://github.com/rustfs/rustfs/pull/6275
- fix(scripts): stop the assertless-test census truncating bodies at string braces by @overtrue in https://github.com/rustfs/rustfs/pull/6280
- fix(admin): pass the real RemoteAddr so aws:SourceIp reaches policy evaluation by @overtrue in https://github.com/rustfs/rustfs/pull/6273
- fix(madmin): send background-heal status over POST by @houseme in https://github.com/rustfs/rustfs/pull/6270
- chore(common): drop dead rule helpers and the s3s dependency by @houseme in https://github.com/rustfs/rustfs/pull/6271
- fix(heal): stop O(window) memmove in the heal result window by @houseme in https://github.com/rustfs/rustfs/pull/6272
- perf(scanner): cut per-object allocations in the scan hot path by @houseme in https://github.com/rustfs/rustfs/pull/6274
- refactor(admin): route observability handler auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6263
- fix(ecstore): classify decommission stage failures by type, not by message by @overtrue in https://github.com/rustfs/rustfs/pull/6269
- feat(heal,scanner): best-effort repaired notices from the MRF consumer by @houseme in https://github.com/rustfs/rustfs/pull/6283
- perf(heal,scanner): single-flight MRF producers per detection event by @houseme in https://github.com/rustfs/rustfs/pull/6282
- chore: adjudicate the last 18 bare dead_code allows in the library crates by @overtrue in https://github.com/rustfs/rustfs/pull/6265
- feat(connect): add device identity store and registration proof by @overtrue in https://github.com/rustfs/rustfs/pull/6267
- fix(get): name the failing object on mid-stream GET body failures by @reatang in https://github.com/rustfs/rustfs/pull/6284
- refactor(scanner): split remote_scanner.rs into stream child module by @houseme in https://github.com/rustfs/rustfs/pull/6289
- refactor(heal): split resume.rs into focused child modules by @houseme in https://github.com/rustfs/rustfs/pull/6290
- refactor(scanner): split scanner_io.rs into child modules by @houseme in https://github.com/rustfs/rustfs/pull/6294
- refactor(scanner): split data_usage_define persistence and tests by @houseme in https://github.com/rustfs/rustfs/pull/6292
- chore(deps): bump datafusion to 55.0.0 by @houseme in https://github.com/rustfs/rustfs/pull/6288
- refactor(heal): split task.rs per heal kind by @houseme in https://github.com/rustfs/rustfs/pull/6293
- feat(ecstore): batch small file fdatasync commits by @houseme in https://github.com/rustfs/rustfs/pull/6297
- fix(tier): recover multi-committed mutation intents by @cxymds in https://github.com/rustfs/rustfs/pull/6296
- feat(ecstore): expose fdatasync group wait metrics by @houseme in https://github.com/rustfs/rustfs/pull/6299
- fix(lifecycle): safely expire all object versions by @cxymds in https://github.com/rustfs/rustfs/pull/6291
- test(ecstore): pin rename quorum tail visibility by @houseme in https://github.com/rustfs/rustfs/pull/6301
- refactor(scanner): split scanner_folder item actions and ledger by @houseme in https://github.com/rustfs/rustfs/pull/6302
- refactor(heal): split manager.rs queue/scheduler/scan children by @houseme in https://github.com/rustfs/rustfs/pull/6303
- perf(server): cache HTTP metric handles by @houseme in https://github.com/rustfs/rustfs/pull/6304
- refactor(scanner): split scanner.rs cycle/leadership/persist children by @houseme in https://github.com/rustfs/rustfs/pull/6305
- feat(ecstore): add default-off rename early ack probe by @houseme in https://github.com/rustfs/rustfs/pull/6306
- perf(heal): trim scanner and heal queue hot paths by @houseme in https://github.com/rustfs/rustfs/pull/6307
- fix(heal): emit MRF repair notices on completion by @houseme in https://github.com/rustfs/rustfs/pull/6309
- perf(heal): reduce scheduler skip heap churn by @houseme in https://github.com/rustfs/rustfs/pull/6311
- feat(ecstore): observe put commit lock wait by @houseme in https://github.com/rustfs/rustfs/pull/6310
- chore(release): prepare 1.0.0-rc.3 by @overtrue in https://github.com/rustfs/rustfs/pull/6308
- feat(obs): complete metric dimension coverage by @houseme in https://github.com/rustfs/rustfs/pull/6314
- refactor(heal): prune statistics label helpers by @houseme in https://github.com/rustfs/rustfs/pull/6312
- feat(ecstore): bound put commit lock admission by @houseme in https://github.com/rustfs/rustfs/pull/6315
- fix(scanner): honor explicit cycle cadence by @marshawcoco in https://github.com/rustfs/rustfs/pull/6313
- fix(webdav): allow bucket-scoped root listings by @GatewayJ in https://github.com/rustfs/rustfs/pull/6298
- test(obs): add metric dimension smoke harness by @houseme in https://github.com/rustfs/rustfs/pull/6316
- perf(io-metrics): cache read version metric handles by @houseme in https://github.com/rustfs/rustfs/pull/6317
- perf(scanner): reduce per-object allocation churn by @houseme in https://github.com/rustfs/rustfs/pull/6318
- fix: resolve release-blocking integration failures by @overtrue in https://github.com/rustfs/rustfs/pull/6320
- test: stabilize release-blocking full E2E checks by @overtrue in https://github.com/rustfs/rustfs/pull/6322
- feat(ecstore): observe PUT commit lock admission by @houseme in https://github.com/rustfs/rustfs/pull/6319
- docs(agents): run adversarial review before pre-pr by @cxymds in https://github.com/rustfs/rustfs/pull/6325
- fix(lifecycle): honor bucket default retention by @marshawcoco in https://github.com/rustfs/rustfs/pull/6324
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.2...1.0.0-rc.3-preview.2
5.0.3
- Fix WebMvc PerserveHostHeader so it matches Webflux by @ryanjbaxter in https://github.com/spring-cloud/spring-cloud-gateway/pull/4213
- GH-3791: Document AdaptCachedBody filter for Spring Cloud Gateway WebMVC by @won-seoop in https://github.com/spring-cloud/spring-cloud-gateway/pull/4197
- GH-3885: Document Spring Security integration for WebFlux and WebMVC gateways by @won-seoop in https://github.com/spring-cloud/spring-cloud-gateway/pull/4198
- GH-1949: Document that overriding discovery locator filters replaces defaults by @won-seoop in https://github.com/spring-cloud/spring-cloud-gateway/pull/4199
- GH-4024: Add documentation for the Version Route Predicate Factory by @won-seoop in https://github.com/spring-cloud/spring-cloud-gateway/pull/4205
- GH-3168: Document that @LoadBalanced RestClient must not be used in Gateway MVC by @won-seoop in https://github.com/spring-cloud/spring-cloud-gateway/pull/4200
- docs: update gateway grafana dashboard by @imanabr77 in https://github.com/spring-cloud/spring-cloud-gateway/pull/4215
- Bump actions/checkout from 6 to 7 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4219
- Bump antora from 3.2.0-alpha.12 to 3.2.0-rc.2 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4221
- Add MVC retry backoff support by @goutamadwant in https://github.com/spring-cloud/spring-cloud-gateway/pull/4225
- Bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4241
- Exclude release-train workflows from Dependabot updates by @ryanjbaxter in https://github.com/spring-cloud/spring-cloud-gateway/pull/4252
- Bump @springio/antora-extensions from 1.14.12 to 1.14.13 in /docs by @dependabot[bot] in https://github.com/spring-cloud/spring-cloud-gateway/pull/4253
- Fix ordering in test by @ryanjbaxter in https://github.com/spring-cloud/spring-cloud-gateway/pull/4255
- Add missing test scope to spring-boot-resttestclient by @timpeeters in https://github.com/spring-cloud/spring-cloud-gateway/pull/4257
- Add warn logging when WebSocket message receive fails by @fru1tworld in https://github.com/spring-cloud/spring-cloud-gateway/pull/4134
- Avoid draining failed streaming proxy responses by @goutamadwant in https://github.com/spring-cloud/spring-cloud-gateway/pull/4217
- @won-seoop made their first contribution in https://github.com/spring-cloud/spring-cloud-gateway/pull/4197
- @imanabr77 made their first contribution in https://github.com/spring-cloud/spring-cloud-gateway/pull/4215
- @goutamadwant made their first contribution in https://github.com/spring-cloud/spring-cloud-gateway/pull/4225
- @timpeeters made their first contribution in https://github.com/spring-cloud/spring-cloud-gateway/pull/4257
Full Changelog: https://github.com/spring-cloud/spring-cloud-gateway/compare/v5.0.2...v5.0.3
RustFS 1.0.0-rc.3-preview.1 (preview)
- fix(site-replication): lift a rejoined site's restarted edit counter over stale marks by @reatang in https://github.com/rustfs/rustfs/pull/6119
- fix(ci): pin Docker images to release source by @overtrue in https://github.com/rustfs/rustfs/pull/6121
- test(utils): allow ephemeral port reuse by @overtrue in https://github.com/rustfs/rustfs/pull/6122
- fix(scanner): add context to corrupt metadata logs by @marshawcoco in https://github.com/rustfs/rustfs/pull/6099
- feat(ecstore): report inline early-stop miss reasons by @houseme in https://github.com/rustfs/rustfs/pull/6134
- feat(table-catalog): finalize Iceberg REST behavior by @marshawcoco in https://github.com/rustfs/rustfs/pull/6072
- fix(admin): serialize replication metrics in minio-go wire shapes by @reatang in https://github.com/rustfs/rustfs/pull/6127
- fix(site-replication): merge incoming ILM expiry documents instead of overwriting by @reatang in https://github.com/rustfs/rustfs/pull/6130
- fix(admin): stream madmin ReplicationMRF documents from /v3/replication/mrf by @reatang in https://github.com/rustfs/rustfs/pull/6126
- fix(replication): transport and persist LWW timestamps for tag, retention, and legal hold by @reatang in https://github.com/rustfs/rustfs/pull/6129
- perf(ecstore): defer pending inline data shards by @houseme in https://github.com/rustfs/rustfs/pull/6137
- fix(ecstore): classify remote inline early-stop misses by @overtrue in https://github.com/rustfs/rustfs/pull/6136
- fix(ecstore): overlap metacache reader deadlines by @marshawcoco in https://github.com/rustfs/rustfs/pull/6098
- fix(heal): preserve timeout budget across retries by @marshawcoco in https://github.com/rustfs/rustfs/pull/6101
- fix(ecstore): mint bucket-target ARNs in the madmin arn:minio partition by @reatang in https://github.com/rustfs/rustfs/pull/6128
- chore(ecstore): drop the client dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6138
- chore(deps): update flake.lock by @houseme in https://github.com/rustfs/rustfs/pull/6142
- fix(storage): skip table guards for multipart parts by @overtrue in https://github.com/rustfs/rustfs/pull/6143
- perf(ecstore): enable inline data read early-stop by default by @houseme in https://github.com/rustfs/rustfs/pull/6140
- chore(ecstore): drop the disk dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6139
- chore(ecstore): drop the set_disk dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6141
- chore(ecstore): drop the bucket dead_code blanket by @overtrue in https://github.com/rustfs/rustfs/pull/6147
- test(interop): let the MinIO fixture lab build from registry mirrors by @overtrue in https://github.com/rustfs/rustfs/pull/6148
- chore: drop the remaining product-code dead_code blankets by @overtrue in https://github.com/rustfs/rustfs/pull/6149
- fix(ecstore): silence two dead_code warnings left on main by @overtrue in https://github.com/rustfs/rustfs/pull/6153
- chore(ecstore): annotate the two dead fns the blanket removals missed by @overtrue in https://github.com/rustfs/rustfs/pull/6152
- test(tier): pin the compressed transitioned read against its stored bytes by @overtrue in https://github.com/rustfs/rustfs/pull/6151
- test(ecstore): add metadata slow-tail fault hook by @houseme in https://github.com/rustfs/rustfs/pull/6150
- feat(ecstore): default bounded metadata fanout by @houseme in https://github.com/rustfs/rustfs/pull/6156
- fix(table-catalog): assign fresh schema IDs on create by @marshawcoco in https://github.com/rustfs/rustfs/pull/6146
- fix(scanner): canonicalize temp_dir for drive field assertion on macOS by @overtrue in https://github.com/rustfs/rustfs/pull/6159
- chore(protocols): drop 43 no-op dead_code allows from swift by @overtrue in https://github.com/rustfs/rustfs/pull/6157
- refactor(rustfs): move module switches below the layer boundary by @overtrue in https://github.com/rustfs/rustfs/pull/6154
- fix(ecstore): resolve nine unused bindings in set_disk write and heal paths by @overtrue in https://github.com/rustfs/rustfs/pull/6158
- fix(table-catalog): prevent object catalog lock reentry by @marshawcoco in https://github.com/rustfs/rustfs/pull/6144
- ci(arch): ratchet ecstore module-level lint blankets by @overtrue in https://github.com/rustfs/rustfs/pull/6155
- perf(io-metrics): avoid get handoff label allocations by @houseme in https://github.com/rustfs/rustfs/pull/6160
- perf(get): avoid memory body stream wrapper by @houseme in https://github.com/rustfs/rustfs/pull/6163
- chore(obs): adjudicate 19 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6162
- chore: adjudicate 19 bare dead_code allows across six leaf crates by @overtrue in https://github.com/rustfs/rustfs/pull/6161
- feat(site-replication): drain the retry queue from the reconcile tick by @reatang in https://github.com/rustfs/rustfs/pull/6131
- fix(kms): resolve Vault auth from the environment at startup and add Kubernetes auth by @reatang in https://github.com/rustfs/rustfs/pull/6095
- feat(ecstore): pin bitrot algorithms with a startup self-test (HS-11) by @houseme in https://github.com/rustfs/rustfs/pull/6165
- feat(madmin): add a SigV4-signed admin client for heal and scanner APIs (HS-05) by @houseme in https://github.com/rustfs/rustfs/pull/6166
- docs(ecstore): fix bitrot comment typo by @houseme in https://github.com/rustfs/rustfs/pull/6168
- fix(site-replication): admit only verifiable peer-edit fences by @reatang in https://github.com/rustfs/rustfs/pull/6123
- feat(scanner): expose prefix-level bucket usage via admin API (HS-08) by @houseme in https://github.com/rustfs/rustfs/pull/6171
- feat(helm): add TLSRoute passthrough support for gateway api by @majinghe in https://github.com/rustfs/rustfs/pull/6169
- chore(ecstore): adjudicate 32 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6173
- feat(heal): add progress and trace observability by @houseme in https://github.com/rustfs/rustfs/pull/6179
- feat(scanner): emit excess alerts as S3 notification events (HS-04) by @houseme in https://github.com/rustfs/rustfs/pull/6176
- fix(ecstore): describe peer bucket RPC failures with no details by @overtrue in https://github.com/rustfs/rustfs/pull/6190
- test(heal): lock heal vs delete/overwrite race invariants (HS-12) by @houseme in https://github.com/rustfs/rustfs/pull/6183
- chore(deps): refresh cargo dependencies by @houseme in https://github.com/rustfs/rustfs/pull/6198
- feat(storage): add default-off PUT admission gate by @houseme in https://github.com/rustfs/rustfs/pull/6197
- refactor(admin): route kms management auth through shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6194
- chore(storage): drop dead io-schedule metrics and helpers by @overtrue in https://github.com/rustfs/rustfs/pull/6199
- feat(heal): wire MRF intents with durable repair journal (HS-01) by @houseme in https://github.com/rustfs/rustfs/pull/6189
- chore: adjudicate 26 bare dead_code allows across five crates by @overtrue in https://github.com/rustfs/rustfs/pull/6187
- chore(storage): drop dead backpressure and lock-optimizer wrappers by @overtrue in https://github.com/rustfs/rustfs/pull/6195
- fix(ecstore): give peer REST failures op and bucket context by @overtrue in https://github.com/rustfs/rustfs/pull/6200
- ci(package): auto-trigger DEB/RPM packaging on releases and upload to GitHub release assets by @majinghe in https://github.com/rustfs/rustfs/pull/6202
- refactor: import x-amz-checksum header names from the shared constants by @overtrue in https://github.com/rustfs/rustfs/pull/6193
- fix(admin): classify missing kms config by error variant by @overtrue in https://github.com/rustfs/rustfs/pull/6196
- fix(ecstore): resume remote shard reads once by @cxymds in https://github.com/rustfs/rustfs/pull/6091
- fix(lock): reap expired local lease guards by @cxymds in https://github.com/rustfs/rustfs/pull/6094
- fix(ecstore): single-flight remote disk recovery by @cxymds in https://github.com/rustfs/rustfs/pull/6096
- feat(heal): incremental status cursors and typed overlap policy (HS-06) by @houseme in https://github.com/rustfs/rustfs/pull/6206
- chore(io-core): drop eight zero-consumer modules by @overtrue in https://github.com/rustfs/rustfs/pull/6201
- fix(deps): record heal's bytes and crc-fast in the lockfile by @overtrue in https://github.com/rustfs/rustfs/pull/6211
- test(e2e): drop 187 no-op serial markers from the three densest e2e suites by @overtrue in https://github.com/rustfs/rustfs/pull/6209
- feat(ecstore): instrument rename sync tail metrics by @houseme in https://github.com/rustfs/rustfs/pull/6205
- chore(zip): trim the unused extract and create surface by @overtrue in https://github.com/rustfs/rustfs/pull/6210
- test(lifecycle,scanner): drop 47 no-op #[serial] markers (backlog#1846 T1) by @overtrue in https://github.com/rustfs/rustfs/pull/6213
- test(admin): replace a source-text guard with a behavior test by @overtrue in https://github.com/rustfs/rustfs/pull/6212
- feat(app): add opt-in small GET body once path by @houseme in https://github.com/rustfs/rustfs/pull/6216
- test(io-metrics): assert record helper emissions; fix census heuristic by @overtrue in https://github.com/rustfs/rustfs/pull/6217
- feat(replication): split oversized hot-path functions, proxy unreplicated reads, and fail SSE-C passthrough closed by @reatang in https://github.com/rustfs/rustfs/pull/6170
- test(kms): move the Vault KV2 doc guard into check_fips_wording.sh by @overtrue in https://github.com/rustfs/rustfs/pull/6215
- test(e2e): pin bounded physical reads for compressed multipart range GETs by @reatang in https://github.com/rustfs/rustfs/pull/6167
- chore(deps): update s3s to upstream main by @GatewayJ in https://github.com/rustfs/rustfs/pull/6203
- perf(ecstore): validate local IO paths with openat2 by @houseme in https://github.com/rustfs/rustfs/pull/6221
- fix(e2e): import serial test attribute by @houseme in https://github.com/rustfs/rustfs/pull/6222
- fix(package): declare /etc/default/rustfs as a deb conffile by @majinghe in https://github.com/rustfs/rustfs/pull/6220
- perf(get): emit accept-ranges with static header by @houseme in https://github.com/rustfs/rustfs/pull/6225
- fix(e2e): add missing serial_test import in replication_extension_test by @overtrue in https://github.com/rustfs/rustfs/pull/6224
- feat(ecstore): add default-off dst dir fsync group commit by @houseme in https://github.com/rustfs/rustfs/pull/6226
- docs(architecture): describe io-core by its surviving surface by @overtrue in https://github.com/rustfs/rustfs/pull/6227
- fix(ecstore): group inline dst dir fsync by @houseme in https://github.com/rustfs/rustfs/pull/6228
- fix(sse): read objects that MinIO encrypted by @overtrue in https://github.com/rustfs/rustfs/pull/6191
- fix(ecstore): make the data-usage cache load actually retry by @overtrue in https://github.com/rustfs/rustfs/pull/6229
- test(heal): cover privileged mount readiness by @houseme in https://github.com/rustfs/rustfs/pull/6231
- perf(server): skip output layer work on common GET paths by @houseme in https://github.com/rustfs/rustfs/pull/6232
- test(e2e): fold eleven post-object accept cases into one table-driven test by @overtrue in https://github.com/rustfs/rustfs/pull/6207
- fix(ecstore): classify a missing data-usage cache by the error that arrives by @overtrue in https://github.com/rustfs/rustfs/pull/6233
- fix(package): write release checksum entries with GitHub asset names by @majinghe in https://github.com/rustfs/rustfs/pull/6234
- test(io-metrics): assert what the remaining smoke tests only called by @overtrue in https://github.com/rustfs/rustfs/pull/6238
- refactor(data-usage): own SizeSummary once, with the scanner's semantics by @overtrue in https://github.com/rustfs/rustfs/pull/6237
- test(crypto): replace the one-file key scan with a repo-wide guard by @overtrue in https://github.com/rustfs/rustfs/pull/6246
- test(io-schedule): drop 24 no-op serial markers from the IO scheduler unit tests by @overtrue in https://github.com/rustfs/rustfs/pull/6243
- test(ecstore): assert the error conversions, and stop the census over-reporting by @overtrue in https://github.com/rustfs/rustfs/pull/6241
- test(e2e): drop 79 no-op serial markers from six more suites by @overtrue in https://github.com/rustfs/rustfs/pull/6239
- fix(admin): report refreshed lock lease TTLs by @cxymds in https://github.com/rustfs/rustfs/pull/6230
- refactor(app): resolve the bucket default SSE in one place by @overtrue in https://github.com/rustfs/rustfs/pull/6236
- fix(site-replication): clear pending_remove on join, surface failures by @reatang in https://github.com/rustfs/rustfs/pull/6244
- test(audit,heal): assert three more smoke tests by @overtrue in https://github.com/rustfs/rustfs/pull/6248
- docs(scanner): record heal/scanner MinIO parity decisions (backlog#1878 HS-14/16/18) by @houseme in https://github.com/rustfs/rustfs/pull/6250
- test(crypto): replace the one-file key scan with a repo-wide guard by @overtrue in https://github.com/rustfs/rustfs/pull/6255
- chore(rustfs): adjudicate all 73 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6254
- refactor(heal,scanner): clean up dead heal/scanner code, flags, and metrics (HS-09/10/19/20) by @houseme in https://github.com/rustfs/rustfs/pull/6256
- refactor(admin): route plugin handler auth through authorize_admin_request by @overtrue in https://github.com/rustfs/rustfs/pull/6247
- docs(operations): land the heal/scanner MinIO audit baseline with closure results (backlog#1862) by @houseme in https://github.com/rustfs/rustfs/pull/6258
- test(lifecycle): cover noncurrent marker cleanup cascade by @cxymds in https://github.com/rustfs/rustfs/pull/6252
- docs(operations): add an English counterpart of the heal/scanner audit baseline by @houseme in https://github.com/rustfs/rustfs/pull/6261
- feat(ecstore): expose rename sync tail metrics by @houseme in https://github.com/rustfs/rustfs/pull/6257
- chore(rustfs): adjudicate the remaining 36 bare dead_code allows by @overtrue in https://github.com/rustfs/rustfs/pull/6259
- refactor(sse): keep one bucket-default algorithm mapping for every writer by @overtrue in https://github.com/rustfs/rustfs/pull/6251
- feat(io-metrics): attribute ReadVersion RPC stages by @houseme in https://github.com/rustfs/rustfs/pull/6262
- fix(lock): reject stale lease snapshots by @cxymds in https://github.com/rustfs/rustfs/pull/6249
- docs(operations): restore the truncated tail of the English audit baseline by @houseme in https://github.com/rustfs/rustfs/pull/6268
- feat(helm): add istio gateway class support by @majinghe in https://github.com/rustfs/rustfs/pull/6264
- fix(metrics): remove duplicate scanner counter producers by @marshawcoco in https://github.com/rustfs/rustfs/pull/6245
- docs(admin): pin two authorization semantics against a dedup rewrite by @overtrue in https://github.com/rustfs/rustfs/pull/6279
- chore(protocols): narrow the SessionDiag blanket to its one unread field by @overtrue in https://github.com/rustfs/rustfs/pull/6266
- refactor(heal): remove the dead MRF heal-type path by @houseme in https://github.com/rustfs/rustfs/pull/6275
- fix(scripts): stop the assertless-test census truncating bodies at string braces by @overtrue in https://github.com/rustfs/rustfs/pull/6280
- fix(admin): pass the real RemoteAddr so aws:SourceIp reaches policy evaluation by @overtrue in https://github.com/rustfs/rustfs/pull/6273
- fix(madmin): send background-heal status over POST by @houseme in https://github.com/rustfs/rustfs/pull/6270
- chore(common): drop dead rule helpers and the s3s dependency by @houseme in https://github.com/rustfs/rustfs/pull/6271
- fix(heal): stop O(window) memmove in the heal result window by @houseme in https://github.com/rustfs/rustfs/pull/6272
- perf(scanner): cut per-object allocations in the scan hot path by @houseme in https://github.com/rustfs/rustfs/pull/6274
- refactor(admin): route observability handler auth through the shared gate by @overtrue in https://github.com/rustfs/rustfs/pull/6263
- fix(ecstore): classify decommission stage failures by type, not by message by @overtrue in https://github.com/rustfs/rustfs/pull/6269
- feat(heal,scanner): best-effort repaired notices from the MRF consumer by @houseme in https://github.com/rustfs/rustfs/pull/6283
- perf(heal,scanner): single-flight MRF producers per detection event by @houseme in https://github.com/rustfs/rustfs/pull/6282
- chore: adjudicate the last 18 bare dead_code allows in the library crates by @overtrue in https://github.com/rustfs/rustfs/pull/6265
- feat(connect): add device identity store and registration proof by @overtrue in https://github.com/rustfs/rustfs/pull/6267
- fix(get): name the failing object on mid-stream GET body failures by @reatang in https://github.com/rustfs/rustfs/pull/6284
- refactor(scanner): split remote_scanner.rs into stream child module by @houseme in https://github.com/rustfs/rustfs/pull/6289
- refactor(heal): split resume.rs into focused child modules by @houseme in https://github.com/rustfs/rustfs/pull/6290
- refactor(scanner): split scanner_io.rs into child modules by @houseme in https://github.com/rustfs/rustfs/pull/6294
- refactor(scanner): split data_usage_define persistence and tests by @houseme in https://github.com/rustfs/rustfs/pull/6292
- chore(deps): bump datafusion to 55.0.0 by @houseme in https://github.com/rustfs/rustfs/pull/6288
- refactor(heal): split task.rs per heal kind by @houseme in https://github.com/rustfs/rustfs/pull/6293
- feat(ecstore): batch small file fdatasync commits by @houseme in https://github.com/rustfs/rustfs/pull/6297
- fix(tier): recover multi-committed mutation intents by @cxymds in https://github.com/rustfs/rustfs/pull/6296
- feat(ecstore): expose fdatasync group wait metrics by @houseme in https://github.com/rustfs/rustfs/pull/6299
- fix(lifecycle): safely expire all object versions by @cxymds in https://github.com/rustfs/rustfs/pull/6291
- test(ecstore): pin rename quorum tail visibility by @houseme in https://github.com/rustfs/rustfs/pull/6301
- refactor(scanner): split scanner_folder item actions and ledger by @houseme in https://github.com/rustfs/rustfs/pull/6302
- refactor(heal): split manager.rs queue/scheduler/scan children by @houseme in https://github.com/rustfs/rustfs/pull/6303
- perf(server): cache HTTP metric handles by @houseme in https://github.com/rustfs/rustfs/pull/6304
- refactor(scanner): split scanner.rs cycle/leadership/persist children by @houseme in https://github.com/rustfs/rustfs/pull/6305
- feat(ecstore): add default-off rename early ack probe by @houseme in https://github.com/rustfs/rustfs/pull/6306
- perf(heal): trim scanner and heal queue hot paths by @houseme in https://github.com/rustfs/rustfs/pull/6307
- fix(heal): emit MRF repair notices on completion by @houseme in https://github.com/rustfs/rustfs/pull/6309
- perf(heal): reduce scheduler skip heap churn by @houseme in https://github.com/rustfs/rustfs/pull/6311
- feat(ecstore): observe put commit lock wait by @houseme in https://github.com/rustfs/rustfs/pull/6310
- chore(release): prepare 1.0.0-rc.3 by @overtrue in https://github.com/rustfs/rustfs/pull/6308
Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-rc.2...1.0.0-rc.3-preview.1