我想仔细发布一个新版本的箱子,让用户有机会先测试它。如何将其作为" beta"发布到crates.io? (类似于npm如何标记@next
标记版本。)
它不应该是一个突破性的变化,所以我不会增加semver-major版本。我不希望用户在{beta}测试期结束前cargo upgrade
自动选择它。
我应该使用什么版本的语法进行发布?
发布时是否需要使用任何特殊货物选项?
用户如何使用cargo
/ Cargo.toml
加入测试版?
答案 0 :(得分:9)
Semantic versioning定义了pre-release version:
的概念可以通过在补丁版本之后紧跟附加连字符和一系列点分隔标识符来表示预发布版本。标识符必须仅包含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中使用此功能,请发布计划版本号的包,但附加预发布标识符。我建议-beta.0
,如果您需要一秒钟,可以轻松增加:
[package]
name = "library"
version = "0.1.1-beta.0"
要使用此功能,您需要通过将beta
放入版本要求来专门选择它:
[dependencies]
library = "0.1.1-beta"
为了测试这个,我:
library = "0.1.0"
- 它已解析为0.1.0 cargo update
- 版本未更改。library = "0.1.1-beta"
,运行cargo update
- 版本已更改。cargo update
- 版本 更改。