如何防止 Cargo 解析不支持当前 Rust 版本的依赖项?

问题描述 投票:0回答:1

我拥有一个 Rust 库,每天都在 github 管道中运行测试。这些测试包括 MSRV 版本(当前为 1.69.0)。当 Cargo 决定将某些包解析为与指定的 Rust 版本不兼容的版本时,这些 MSRV 测试有时会失败。

这是连续两天的最新示例(其间没有代码更改):

  • 第 X 天(构建日志):
    tokio v1.38.1
    。使用 1.69.0 构建良好
  • 第 X+1 天(构建日志):
    tokio v1.39.1
    。尽管
    tokio
    正确指定了
    rust-version = 1.70.0
    ,但仍无法构建(在发布之前此处,在 此处

再次,

tokio v1.39.1
表示它需要
rust-version = 1.70.0
。我自己的
Cargo.toml
指定了一个非常宽松的版本:

#...

[dev-dependencies]
tokio = { version = "1", features = ["full"] }
#...

因为它是一个开发依赖项,我不想定期处理它,只需在各处使用最新的兼容版本即可。

目前我对

tokio
的要求更严格,但过去
dependencies
也发生过同样的问题,这是一个更大的问题,我未能妥善处理(只是由于 dep 解析失败而导致了 MSRV)。

这是一个图书馆,所以

Cargo.lock
不是我可以利用(ref)来处理这个问题的东西。我缺少什么?为什么
cargo
解析器带来的软件包版本会忽略其
rust-version
约束?

rust dependency-management rust-cargo
1个回答
0
投票

货物依赖解析器不支持 MSRV,但正在采取措施支持这一点

© www.soinside.com 2019 - 2024. All rights reserved.