Forwarded from Rust 视界
「社区」我的Rust程序发布checklist
关键字: [fd, release, checklist]
该文是fd库的作者总结出来的release清单,可以给社区提供一个借鉴。
按以下顺序做发布检查,非常重要:
一、 检查和更新依赖。
- 检查deps.rs是否有过期的依赖
- 运行cargo update去更新最新的兼容(minor)版本的依赖性
- 如果需要,可以手动更新到最新的主(major)版本
对于主版本更新还需要查看上游更改,仔细评估是否真的需要更新为新版本。
二、获取自上次发布以来的更新列表
通过
[示例](https://github.com/sharkdp/fd/compare/v7.1.0...master)
三、更新文档
- 检查并更新 -h和—help文本
- 更新Readme(程序的用法、新功能介绍、最低要求的Rust版本)
- 更新man页面
四、在本地安装主分支并且测试新功能
- 使用`cargo install -f `来安装
- 手动测试新功能
- 运行基准测试避免性能回退
理想情况下,为新的功能编写了测试,并且也使用了CI,是没有什么可担心的了。但实际上,总有一些事需要手工审查。尤其是对终端环境依赖的CLI项目更是需要如此。
五、清理代码库。
- 运行
- 运行 `cargo fmt`自动格式化代码
- 运行
最后两步通常包含在CI中。
六、更新版本信息
- 在Cargo.toml中更新项目版本
- 运行`cargo build`更新Cargo.lock
- 在项目仓库中搜索旧的版本号将其更新为新版本(比如在Readme、安装说明、构建脚本中等等)
七、使用Dry run模拟发布
八、Commit、Push并等待CI成功
九、写release notes。
十、 为最新的提交打上tag,并且开始部署。
十二、验证部署。确保已经上传了所有的二进制文件。
十三、发布到crates.io。
[Read More](https://dev.to/sharkdp/my-release-checklist-for-rust-programs-1m33)
关键字: [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)
GitHub
sharkdp/fd
A simple, fast and user-friendly alternative to 'find' - sharkdp/fd