Crate version_sync

Source
Expand description

version-sync provides macros for keeping version numbers in sync with your crate version.

§Library Overview

When making a release of a Rust project, you typically need to adjust some version numbers in your code and documentation. This crate gives you macros that covers some typical cases where version numbers need updating:

Except for assert_contains_substring, the macros are gated behind individual features, as detailed below.

A typical configuration will use an integration test to verify that all version numbers are in sync. Create a tests/version-numbers.rs file with:

#[test]
fn test_readme_deps_updated() {
    version_sync::assert_markdown_deps_updated!("README.md");
}

#[test]
fn test_readme_mentions_version() {
    version_sync::assert_contains_substring!("README.md", "Version {version}");
}

#[test]
fn test_html_root_url() {
    version_sync::assert_html_root_url_updated!("src/lib.rs");
}

When you run cargo test, your version numbers will be automatically checked.

§Cargo Features

In case you only need some of the macros above, you can disable them individually using Cargo features. The features are:

All of these features are enabled by default. If you disable all of them, you can still use assert_contains_substring to quickly check that a given file contains the current crate version.

Macros§

assert_contains_regex
Assert that versions numbers are up to date via a regex.
assert_contains_substring
Assert that versions numbers are up to date via substring matching.
assert_html_root_url_updated
Assert that the html_root_url attribute is up to date.
assert_markdown_deps_updated
Assert that dependencies on the current package are up to date.
assert_only_contains_regex
Assert that all versions numbers are up to date via a regex.

Functions§

check_contains_regex
Check that path contain the regular expression given by template.
check_contains_substring
Check that path contain the substring given by template.
check_html_root_url
Check version numbers in html_root_url attributes.
check_markdown_deps
Check dependencies in Markdown code blocks.
check_only_contains_regex
Check that path only contains matches to the regular expression given by template.