Skip to content

chore(deps)!: update all dependencies; drop async-std for tokio - #232

Merged
harshavardhana merged 1 commit into
minio:masterfrom
HJLebbink:chore/dependency-updates
Aug 7, 2026
Merged

harshavardhana merged 1 commit into
minio:masterfrom
HJLebbink:chore/dependency-updates

Conversation

@HJLebbink

@HJLebbink HJLebbink commented Jul 31, 2026

Copy link
Copy Markdown
Member

Update every direct dependency to its latest version, including reqwest
0.13, rand 0.10, hyper 1.11, the sha1/sha2/hmac digest 0.11 family, and
syn 3 with darling 0.24 in macros. Toolchain moves to 1.95.0.

async-std is discontinued (RUSTSEC-2025-0052); tokio replaces it for
file I/O and the blocking hash offload. bytes 1.12 fixes
RUSTSEC-2026-0007.

Breaking:

  • default-tls now selects rustls, not native-tls, because reqwest 0.13 redefined it. Enable native-tls for an OpenSSL or schannel backend.
  • File-backed ObjectContent and payload signing now require a running tokio runtime; async-std worked under any executor.

Summary by CodeRabbit

  • Compatibility

    • Improved asynchronous runtime consistency across networking, file operations, streaming, and request processing.
    • Updated TLS configuration and refreshed Rust and library compatibility.
  • Bug Fixes

    • Improved handling of optional content-length limits in presigned upload policies.
    • Strengthened request processing, file replacement, temporary-file cleanup, and cryptographic compatibility.
  • Maintenance

    • Updated random-data generation and test utilities while preserving existing behavior.
    • Expanded coverage for file operations and clearer handling of server-side encryption errors.
    • Updated development tooling and documentation for the latest supported Rust and Tokio versions.

@HJLebbink HJLebbink self-assigned this Jul 31, 2026
@HJLebbink HJLebbink added the cleanup-rewrite Used in release doc generation label Jul 31, 2026
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • ✅ Review completed - (🔄 Check again to review again)
📝 Walkthrough

Walkthrough

The workspace migrates from async-std to Tokio and futures-util. S3 hashing and file operations use Tokio APIs. Random-data utilities and integration tests adopt updated rand and compatibility APIs.

Changes

Tokio runtime migration

Layer / File(s) Summary
Dependency and toolchain foundation
Cargo.toml, common/Cargo.toml, macros/Cargo.toml, rust-toolchain.toml, .github/copilot-instructions.md
Workspace dependencies, TLS features, macro dependencies, Tokio compatibility support, repository guidance, and the Rust toolchain are updated.
Random stream compatibility
common/src/rand_reader.rs, common/src/rand_src.rs, common/src/utils.rs, examples/append_object.rs
Random utilities use updated rand traits and initialization. Stream traits use futures-util.
S3 execution and file paths
src/s3/client/mod.rs, src/s3/object_content.rs, src/s3/response/listen_bucket_notification.rs, src/s3/signer.rs, src/s3/builders/get_presigned_policy_form_data.rs
S3 hashing and file operations use Tokio. Stream imports, HMAC initialization, session-token handling, and policy condition matching are updated.
S3 integration test migration
tests/s3/list_objects.rs, tests/s3/object_delete.rs, tests/s3/upload_download_object.rs, tests/s3/update_object_encryption.rs
Tests use futures-util stream extensions and Tokio filesystem and I/O APIs. RandReader uses compatibility adaptation for Tokio I/O. Encryption tests validate structured server errors and license-related rejections.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Poem

I’m a rabbit with a runtime tune,
Tokio hops beneath the moon.
Rand streams flow and files align,
Futures carry bytes in time.
S3 requests now leap along—
A tidy burrow, quick and strong.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the dependency updates and the migration from async-std to Tokio.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

coderabbitai[bot]

This comment was marked as resolved.

@HJLebbink
HJLebbink force-pushed the chore/dependency-updates branch from b517d1f to 6d31191 Compare July 31, 2026 16:00
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 31, 2026
coderabbitai[bot]

This comment was marked as duplicate.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 31, 2026
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 31, 2026
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 31, 2026
coderabbitai[bot]
coderabbitai Bot previously approved these changes Aug 4, 2026
  Update every direct dependency to its latest version, including reqwest
  0.13, rand 0.10, hyper 1.11, the sha1/sha2/hmac digest 0.11 family, and
  syn 3 with darling 0.24 in macros. Toolchain moves to 1.95.0.

  async-std is discontinued (RUSTSEC-2025-0052); tokio replaces it for
  file I/O and the blocking hash offload. bytes 1.12 fixes
  RUSTSEC-2026-0007.

  reqwest 0.13 redefines its own default-tls feature as rustls, which
  rejects the self-signed CA certificates MinIO certgen issues. This
  crate's default-tls now maps to reqwest/native-tls to keep the previous
  backend.

  Breaking: file-backed ObjectContent and payload signing now require a
  running tokio runtime; async-std worked under any executor.
@HJLebbink
HJLebbink force-pushed the chore/dependency-updates branch from 2cc7d60 to c1a26a7 Compare August 4, 2026 20:31
@harshavardhana
harshavardhana merged commit c2334b9 into minio:master Aug 7, 2026
9 checks passed
@HJLebbink
HJLebbink deleted the chore/dependency-updates branch August 7, 2026 08:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup-rewrite Used in release doc generation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants