leizhiyuan opened a new issue, #1469:
URL: https://github.com/apache/rocketmq-clients/issues/1469

   ### Background
   
   The Rust client declares `rust-version = "1.74"` (the README still says 
1.61). Most of the ecosystem it depends on has moved past that:
   
   | crate (latest) | rust-version | edition |
   |---|---|---|
   | tokio 1.54 | 1.85 | 2021 |
   | tokio-util 0.7.20 | 1.85 | 2021 |
   | hyper-util 0.1.21 | 1.85 | 2024 |
   | indexmap 2.14 | 1.85 | 2024 |
   | hashbrown 0.17 | 1.85 | 2024 |
   | getrandom 0.4 | 1.85 | 2024 |
   | time 0.3.47+ | 1.88 | 2024 |
   
   To stay on 1.74, `Cargo.toml` accumulated upper-bound/exact pins (`tokio 
<1.47`, `tokio-util =0.7.10`, `time <0.3.37`, `indexmap <2.8`, `hyper-util 
<0.1.16`, ...). These pins propagate to downstream projects and make `rocketmq` 
impossible to use together with current tokio/tokio-util. #1468 removes the 
pins and enforces the MSRV through the MSRV-aware resolver instead, but CI 
still has to work around Cargo 1.74 being unable to parse edition-2024 
manifests in the index, and the 1.74 build is tested against increasingly old 
dependency versions.
   
   ### Proposal
   
   Bump the MSRV to **1.85**:
   
   - 1.85 is the first release supporting edition 2024, which is the main thing 
blocking current versions of the dependencies above.
   - It matches tokio's current MSRV, so the most common downstream stack 
builds without downgrades.
   - Released in February 2025, it is well over a year old.
   - 1.88 is not needed: only `time >=0.3.47` requires it, and the MSRV-aware 
resolver falls back to `time 0.3.45`.
   
   Changes:
   
   1. `rust/Cargo.toml`: `rust-version = "1.85"`.
   2. `.github/workflows/rust_build.yml`: MSRV matrix `1.74` -> `1.85` (and 
drop the stable-Cargo lockfile workaround from #1468 if it is no longer needed).
   3. `rust/README.md`: update the documented MSRV.
   
   This is independent of #1468 (relaxing the pins is needed for downstream 
regardless of the MSRV), but it removes the CI workaround and lets CI test 
against current dependency versions.
   
   ### Verification done locally
   
   With `rust-version = "1.85"` and a lockfile resolved by the MSRV-aware 
resolver (tokio 1.54.1, tokio-util 0.7.20, hyper-util 0.1.21, hashbrown 0.17.1, 
time 0.3.45), `cargo +1.85.0 test` passes: 164 passed, 0 failed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to