Skip to content

7 打包与发布

7.1 发布构建,软件版本号遵循业界通用的语义化版本(SemVer)规范。始终显式指定依赖项为固定版本号,

发布构建软件版本号遵循业界通用的语义化版本(SemVer)版本规范;始终显式指定依赖项版本,依赖软件社区有正式版本的,不使用非正式发布版本号。

反例:

Rust
[dependencies]  
foo = "1.1.0-beta"         //社区有1.1.0正式版,不应使用1.1.0-beta版本

正例:

Rust
[dependencies]  
foo = "1.1.0"

7.2 发布crate包之前运行cargo publish --dry-run命令,确保在发布之前没有警告或错误

cargo publish --dry-run命令能在不上传包的情况下执行所有检查,建议在正式发布(publish)crate包之前运行该命令,消除相关告警或者错误。

7.3 打包前检查crate内容,打包出的crate大小不大于10MB

打包前检查crate内容,确保crate包不包含测试数据、网站文档或自动生成的代码等非必要内容;打包出的crate大小不得大于10MB。

在打包过程中,Cargo 会自动忽略版本控制系统(如git)中的忽略文件,但是如果要指定要额外的忽略文件集(黑名单),则可以使用清单中的exclude字段:

Rust
[package]
# ...
exclude = [
"public/assets/*",
"videos/*",
]

如果希望使用白名单,而不是黑名单,Cargo也支持include字段,如果设置,则会覆盖exclude字 段:

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

在打包前,可通过cargo package --list命令查看打出的包中所包含的文件以进行确认。