2个不稳定版本

使用旧的Rust 2015

0.2.0 2015年8月9日
0.1.0 2015年8月2日

#5 in #downstream

MIT/Apache

1KB

Cargo Crusader

嘿,Rust库作者!Rust作为“史上最可靠的软件平台”声誉的争夺战正在这里展开,没有人能免于责任。亲爱的Rustians,Rust的未来就在你们手中。

加入Cargo Crusade,将负责任的API演化理论带给那些不信者。

Cargo Crusader是一个工具,帮助库作者在API更改发布到crates.io之前评估其对该库下游用户的影响。

如何做?

当您从您已发布的crate的源目录运行cargo-crusader时,Crusader会请求crates.io提供所有反向依赖项 - 依赖您的已发布crate的crate。然后它会下载每个依赖项并构建它们:首先针对当前发布的crate,然后针对您的本地工作版本(即您即将发布的下一个版本)。然后它会报告行为上的差异。

入门指南

重要安全警告:此程序执行从互联网下载的任意不受信任的代码。强烈建议在运行之前采取您自己的沙盒隔离措施。

首先,下载并构建Cargo Crusader,并将cargo-crusader命令放入您的PATH环境变量

$ git clone https://github.com/brson/cargo-crusader
$ cd cargo-crusader
$ cargo build --release
$ export PATH=$PATH:`pwd`/target/release/

现在切换到您的源目录并运行cargo-crusader

$ cargo-crusader
crusader: downloading reverse deps for hyper
crusader: 10 reverse deps
crusader: testing crate aloft
crusader: testing crate austenite
crusader: result 1 of 10, aloft 0.3.1: broken
crusader: testing crate bare
crusader: result 2 of 10, austenite 0.0.1: broken
crusader: testing crate catapult
crusader: result 3 of 10, bare 0.0.1: broken
crusader: testing crate chan
crusader: result 4 of 10, catapult 0.1.2: broken
crusader: testing crate chatbot
crusader: result 5 of 10, chan 0.1.14: passed
crusader: testing crate click_and_load
crusader: result 6 of 10, chatbot 0.2.2: regressed
crusader: testing crate coinbaser
crusader: result 7 of 10, click_and_load 0.0.1: broken
crusader: testing crate doapi
crusader: result 8 of 10, coinbaser 0.1.0: regressed
crusader: testing crate ease
crusader: result 9 of 10, doapi 0.1.0: broken
crusader: result 10 of 10, ease 0.2.1: regressed

passed: 1
regressed: 3
broken: 6
error: 0

full report: ./crusader-report.html

完整的运行将需要相当长的时间。完成后,它会打印一个摘要,并生成一个包含完整结果的HTML文件,包括每个测试的编译器输出。

测试结果有四种可能的状态:'passed',如果反向依赖项在升级前后都构建成功;'regressed',如果它在升级前构建但在升级后没有构建;'broken',如果它甚至在升级前都没有构建;'error',对于Crusader内部错误。

未来的改进

目前,Crusader会覆盖与您的本地修订版不兼容的版本号的反向依赖项。Crusader可能首先验证WIP是否符合semver有效的升级。

同时测试上游 - Crusader可以请求您依赖项的所有WIP分支,然后覆盖您的构建以查看即将到来的更改是否会破坏您的crate。

沙盒。

许可证

MIT/Apache-2.0是Rust项目和Cargo Crusade的官方许可证。

依赖项