自定义程序
1 subscriber
73 photos
15 videos
5 files
251 links
自定义程序丰富生活
Download Telegram
Channel created
Forwarded from Rust 视界
「社区」我的Rust程序发布checklist

关键字: [fd, release, checklist]

该文是fd库的作者总结出来的release清单,可以给社区提供一个借鉴。

按以下顺序做发布检查,非常重要:

一、 检查和更新依赖。

- 检查deps.rs是否有过期的依赖
- 运行cargo update去更新最新的兼容(minor)版本的依赖性
- 如果需要,可以手动更新到最新的主(major)版本

对于主版本更新还需要查看上游更改,仔细评估是否真的需要更新为新版本。

二、获取自上次发布以来的更新列表

通过 GitHub -> Release -> "XX commits to master since this release" 就能获取此更新列表。

[示例](https://github.com/sharkdp/fd/compare/v7.1.0...master)

三、更新文档

- 检查并更新 -h和—help文本
- 更新Readme(程序的用法、新功能介绍、最低要求的Rust版本)
- 更新man页面

四、在本地安装主分支并且测试新功能

- 使用`cargo install -f `来安装
- 手动测试新功能
- 运行基准测试避免性能回退

理想情况下,为新的功能编写了测试,并且也使用了CI,是没有什么可担心的了。但实际上,总有一些事需要手工审查。尤其是对终端环境依赖的CLI项目更是需要如此。

五、清理代码库。

- 运行 cargo clippy 并查看修改建议 [可选]
- 运行 `cargo fmt`自动格式化代码
- 运行 cargo text 确保所有测试通过

最后两步通常包含在CI中。

六、更新版本信息

- 在Cargo.toml中更新项目版本
- 运行`cargo build`更新Cargo.lock
- 在项目仓库中搜索旧的版本号将其更新为新版本(比如在Readme、安装说明、构建脚本中等等)

七、使用Dry run模拟发布

cargo publish --dry-run --allow-dirty

通过这次模拟来发现上传包到crates.io中的问题,提前检查修改

八、Commit、Push并等待CI成功

九、写release notes。

十、 为最新的提交打上tag,并且开始部署。

git tag vX.Y.Z; git push --tags

十一、在GitHub上创建实际的发布版本。

十二、验证部署。确保已经上传了所有的二进制文件。

十三、发布到crates.io。

cargo publish

十四、通知软件包维护者有关的更新信息。

[Read More](https://dev.to/sharkdp/my-release-checklist-for-rust-programs-1m33)