如何发布用于有限 public 测试的 crate 测试版?
How to release a beta version of a crate for limited public testing?
我想谨慎发布一个新版本的箱子,让用户有机会先测试它。我怎样才能将它作为 "beta" 发布到 crates.io? (类似于 npm 如何 @next
标记发布)。
这不应该是重大更改,所以我不会增加 semver-major 版本。在 Beta 测试期结束之前,我不希望当用户 cargo upgrade
时自动选择它。
该版本应该使用什么版本语法?
放行时需要使用特殊的cargo选项吗?
用户如何使用 cargo
/Cargo.toml
选择加入测试版?
Semantic versioning defines the concept of a pre-release version:
A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version. Examples: 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"
为了测试这个,我:
- 启动本地 crates.io 服务器
- 上传了 crate library 版本 0.1.0
- 在二进制项目中使用
library = "0.1.0"
app — 它解析为 0.1.0
- 上传了 crate library 版本 0.1.1-beta.0
- 运行
cargo update
在 app — 版本 没有 改变。
- 在 app 中更改为
library = "0.1.1-beta"
,运行 cargo update
— 版本 did 更改.
- 上传了 crate library 版本 0.1.1-beta.1
- 运行
cargo update
在 app — 版本 did 改变了。
我想谨慎发布一个新版本的箱子,让用户有机会先测试它。我怎样才能将它作为 "beta" 发布到 crates.io? (类似于 npm 如何 @next
标记发布)。
这不应该是重大更改,所以我不会增加 semver-major 版本。在 Beta 测试期结束之前,我不希望当用户 cargo upgrade
时自动选择它。
该版本应该使用什么版本语法?
放行时需要使用特殊的cargo选项吗?
用户如何使用
cargo
/Cargo.toml
选择加入测试版?
Semantic versioning defines the concept of a pre-release version:
A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version. Examples: 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"
为了测试这个,我:
- 启动本地 crates.io 服务器
- 上传了 crate library 版本 0.1.0
- 在二进制项目中使用
library = "0.1.0"
app — 它解析为 0.1.0 - 上传了 crate library 版本 0.1.1-beta.0
- 运行
cargo update
在 app — 版本 没有 改变。 - 在 app 中更改为
library = "0.1.1-beta"
,运行cargo update
— 版本 did 更改. - 上传了 crate library 版本 0.1.1-beta.1
- 运行
cargo update
在 app — 版本 did 改变了。