[tasks.build] command = "cargo" args = ["build"] description = "Build the library" [tasks.clean] command = "cargo" args = ["clean"] description = "Clean generated files" [tasks.lint] command = "cargo" args = ["clippy"] description = "Run Clippy" [tasks.example] command = "cargo" args = ["run", "--example", "example"] description = "Run the example" [tasks.docs] command = "cargo" args = ["doc", "--all-features"] description = "Generate Documentation" [tasks.doc-test] command = "cargo" args = ["test", "--doc"] description = "Run Doctests" [tasks.cov] command = "cargo" install_crate = "cargo-llvm-cov" args = [ "llvm-cov", "nextest", "--all-features", "--lcov", "--output-path", "lcov.info", ] description = "Run Tests with Coverage" [tasks.test] command = "cargo" install_crate = "cargo-nextest" args = ["nextest", "run", "--all-features"] description = "Run all tests" [tasks.mutation] command = "cargo" install_crate = "cargo-mutants" args = ["mutants", "--test-tool=nextest", "--", "--all-features"] description = "Run Mutation Tests" [tasks.mutation-iterate] command = "cargo" install_crate = "cargo-mutants" args = ["mutants", "--test-tool=nextest", "--iterate", "--", "--all-features"] description = "Run only failed Mutation Tests" [tasks.miri-example] command = "cargo" args = ["miri", "run", "--example", "example"] env = { MIRIFLAGS = "-Zmiri-backtrace=full -Zmiri-tree-borrows" } description = "Run Miri on the example executable" [tasks.miri] command = "cargo" args = ["miri", "nextest", "run", "-j", "10"] env = { PROPTEST_DISABLE_FAILURE_PERSISTENCE = "true", MIRIFLAGS = "-Zmiri-env-forward=PROPTEST_DISABLE_FAILURE_PERSISTENCE -Zmiri-backtrace=full -Zmiri-tree-borrows" } description = "Run Miri on all test. WARNING: takes more than 10 hours!" [tasks.last-changelog] script_runner = "@duckscript" description = "Check the version given as command line argument against the latest version in the change log. If they are the same, write the latest changelog entry to 'last_changelog.md'. This is very fragile to whitespaces in the change log!" script = ''' full_changelog = readfile CHANGELOG.md handle = split ${full_changelog} "## Version" last_w = array_get ${handle} 1 last = trim_start ${last_w} version_arr = split ${last} " " version_w = array_get ${version_arr} 0 version = trim ${version_w} args = array ${CARGO_MAKE_TASK_ARGS} exp_version = array_get ${args} 0 echo Checking versions ${exp_version} ?= ${version} if semver_is_equal ${version} ${exp_version} echo Versions OK! text_arr = array "## Version" ${last} text = array_join ${text_arr} "" writefile last_changelog.md ${text} else echo Version mismatch, ERROR! exit 1 end '''