如何发布测试版的板条箱进行有限的公共测试?

时间:2017-09-22 20:52:24

标签: rust beta rust-cargo

我想仔细发布一个新版本的箱子,让用户有机会先测试它。如何将其作为" beta"发布到crates.io? (类似于npm如何标记@next标记版本。)

它不应该是一个突破性的变化,所以我不会增加semver-major版本。我不希望用户在{beta}测试期结束前cargo upgrade自动选择它。

  • 我应该使用什么版本的语法进行发布?

  • 发布时是否需要使用任何特殊货物选项?

  • 用户如何使用cargo / Cargo.toml加入测试版?

1 个答案:

答案 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"

为了测试这个,我:

  1. 启动本地crates.io服务器
  2. 使用版本0.1.0
  3. 上传crate
  4. 在二进制项目 app 中使用library = "0.1.0" - 它已解析为0.1.0
  5. 使用版本0.1.1-beta.0
  6. 上传了crate
  7. app 中的cargo update - 版本更改。
  8. 更改为 app 中的library = "0.1.1-beta",运行cargo update - 版本更改。
  9. 使用版本0.1.1-beta.1
  10. 上传了crate
  11. app 中的cargo update - 版本 更改。