#cargo-toml #cargo-version #cargo-subcommand #numbers #sync #keeping #metadata

bin+lib cargo-version-sync

Cargo 子命令,用于保持与 Cargo.toml 中的版本号同步

5 个版本

使用旧的 Rust 2015

0.0.5 2018年11月2日
0.0.4 2018年11月1日
0.0.3 2018年10月31日
0.0.2 2018年10月30日
0.0.1 2018年10月30日

#504Cargo 插件

MIT 许可证

18KB
388

cargo-version-sync

Crates.io Docs.rs Build Status dependency status

Cargo 子命令,用于保持与 Cargo.toml 中的版本号同步

状态

实验性

安装

$ cargo install cargo-version-sync

使用

首先,在 Cargo.toml 中添加字段,指定要重写版本号的文件,通过运行 cargo version-sync

[[package.metadata.version-sync.replacements]]
file = "README.md"
replacers = [
  { type = "builtin", target = "markdown" },
  { type = "regex", search = "https://deps.rs/crate/{{name}}/[a-z0-9\\.-]+", replace = "https://deps.rs/crate/{{name}}/{{version}}" },
]

[[package.metadata.version-sync.replacements]]
file = "src/lib.rs"
replacers = [
  { type = "builtin", target = "html-root-url" },
]

然后运行命令 cargo version-sync 来重写版本号

$ cargo version-sync

使用预设

您可以通过设置 use-preset 键来使用预设替换器。

[package.metadata.version-sync]
use-preset = true

目前,已为以下文件注册了替换器

  • 文件= "README.md"
    • { 类型 = "内建",目标= "markdown" }
    • { 类型 = "正则表达式",搜索= "https://deps.rs/crate/{{name}}/[0-9a-z\\.-]+",替换= "https://deps.rs/crate/{{name}}/{{version}}" }
  • 文件= "src/lib.rs"
    • { 类型 = "内建",目标= "html-root-url" }

集成测试

cargo-version-sync 也可以用作集成测试中使用的库。首先,将依赖添加到 [dev-dependencies] 的成员中

[dev-dependencies]
cargo-version-sync = { version = "0.0.2", default-features = false }

然后,在您的集成测试中添加以下测试用例

extern crate cargo_version_sync;

#[test]
fn test_version_sync() {
    cargo_version_sync::assert_version_sync();
}

当有一些文件未更新版本号时,集成测试将失败,如下所示

$ cargo test
...
running 1 test
test test_version_sync ... FAILED

failures:

---- test_version_sync stdout ----
The version number(s) are not synced in the following files:

  - README.md
...

替代方案

许可证

MIT 许可证

依赖

~3.5–5.5MB
~100K SLoC