当需要使用 nightly rust 工具链构建时,如何为货物发布准备一个 crate?

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

我已经将一些功能提取到一个箱子中,我认为这些功能对其他人也有用,所以我想将其发布在 crates.io 上。然而,我的代码使用了一些不稳定的功能。如何正确包装这个箱子?

我想明确说明要包含哪些文件,如 https://doc.rust-lang.org/cargo/reference/publishing.html 中所述:

[package]
# ...
include = [
    "**/*.rs",
    "Cargo.toml",
]

我应该将

rust-toolchain.toml
文件添加到包含中吗?看起来像这样:

[toolchain]
channel = "nightly"

或者有更好的方法,例如准确指定板条箱需要夜间的哪些功能?毕竟,未来的某些夜间版本可能不再支持这些功能。

或者也许

#![feature(...)]
中的
src/lib.rs
)注释已经足够了?

或者也许应该使用 Cargo.toml 清单中的

rust-version
字段来实现此目的?

所有这些不确定性都归结为标题中的问题:当需要使用 nightly rust 工具链构建时,如何为

cargo publish
准备一个板条箱?

rust rust-cargo rust-crates
1个回答
0
投票

据我所知,对于夜间板条箱没有特殊考虑,也没有标准化的方法来表明它依赖于不稳定的功能。

  • rust-toolchain.toml
    不是已发布包的一部分
  • 您可以在 Cargo.toml 中指定
    rust-version
    ,但指定夜间版本要么不起作用,要么被忽略

发布 Nightly crate 的最佳方法是在自述文件中明确说明它依赖于 nightly 编译器。即使这样,尝试在稳定版本上使用它的用户也会看到“

#![feature]
可能无法在稳定版本通道上使用”错误 - 希望这一点足够清楚。

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