Crate version_sync[][src]

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 that versions numbers are up to date via a regex.

Assert that versions numbers are up to date via substring matching.

Assert that the html_root_url attribute is up to date.

Assert that dependencies on the current package are up to date.

Assert that all versions numbers are up to date via a regex.

Functions

Check that path contain the regular expression given by template.

Check that path contain the substring given by template.

Check version numbers in html_root_url attributes.

Check dependencies in Markdown code blocks.

Check that path only contains matches to the regular expression given by template.