我希望谨慎地发布一个新版的 crate,以便用户有机会进行测试。我该如何将其作为“beta”版本发布到 crates.io 上?(类似于 npm 有标记为 @next
的版本发布)。
这不应该是一个破坏性变更,因此我不会增加 Semver 主版本号。在 beta 测试期结束之前,我不希望它被用户自动选择升级到。
发布时应该使用什么版本语法?
发布时是否需要使用特殊的 cargo 选项?
用户如何使用
cargo
/Cargo.toml
选择使用 beta 版本?
我希望谨慎地发布一个新版的 crate,以便用户有机会进行测试。我该如何将其作为“beta”版本发布到 crates.io 上?(类似于 npm 有标记为 @next
的版本发布)。
这不应该是一个破坏性变更,因此我不会增加 Semver 主版本号。在 beta 测试期结束之前,我不希望它被用户自动选择升级到。
发布时应该使用什么版本语法?
发布时是否需要使用特殊的 cargo 选项?
用户如何使用 cargo
/Cargo.toml
选择使用 beta 版本?
可以通过在补丁版本后面附加一系列用点分隔的标识符来表示预发布版本。标识符必须仅包含ASCII字母数字和连字符 [0-9A-Za-z-],不能留空。数值标识符不能包含前导零。预发布版本优先级低于相关普通版本。预发布版本表明该版本不稳定,可能无法满足其相关普通版本所表示的兼容性要求。例如:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。
在 Cargo 中使用时,应发布计划中的版本号的 crate,但是附加一个预发布标识符。我建议使用 -beta.0
,这样您就可以轻松增加它以获取第二个版本:
[package]
name = "library"
version = "0.1.1-beta.0"
要使用此功能,您需要通过将 beta
放入版本需求中来明确选择它:
[dependencies]
library = "0.1.1-beta"
为了测试这个,我:
library = "0.1.0"
— 它解析为0.1.0cargo update
— 版本没有发生变化。library = "0.1.1-beta"
,运行 cargo update
— 版本发生了变化。cargo update
— 版本发生了变化。