Skip to content

Latest commit

 

History

History
379 lines (245 loc) · 6.43 KB

maskfile.md

File metadata and controls

379 lines (245 loc) · 6.43 KB

Tasks

Development tasks for rustic.

You can run this file with mask.

Install mask with cargo install mask.

check

Checks the library for syntax and HIR errors.

Bash:

cargo check --no-default-features \
    && cargo check --all-features

PowerShell:

[Diagnostics.Process]::Start("cargo", "check --no-default-features").WaitForExit()
[Diagnostics.Process]::Start("cargo", "cargo check --all-features").WaitForExit()

ci

Continually runs the development routines.

Bash:

mask loop dev

PowerShell:

[Diagnostics.Process]::Start("mask", "loop dev").WaitForExit()

clean

Removes all build artifacts.

Bash:

cargo clean

PowerShell:

[Diagnostics.Process]::Start("cargo", "clean").WaitForExit()

completions

Runs the completion generator and tests

completions regenerate

Regenerates the completion fixtures for all shells

IMPORTANT: Only run on Bash for test compatibility.

cargo run -- completions powershell > tests/completions-fixtures/powershell.txt \
    && cargo run -- completions bash > tests/completions-fixtures/bash.txt \
    && cargo run -- completions fish > tests/completions-fixtures/fish.txt \
    && cargo run -- completions zsh > tests/completions-fixtures/zsh.txt

completions test

Test the completions for breaking changes

cargo test -r --all-targets --all-features --workspace -- --ignored

dev

Runs the development routines

Bash:

$MASK format \
    && $MASK lint \
    && $MASK test \
    && $MASK doc

PowerShell:

[Diagnostics.Process]::Start("mask", "format").WaitForExit()
[Diagnostics.Process]::Start("mask", "lint").WaitForExit()
[Diagnostics.Process]::Start("mask", "test").WaitForExit()
[Diagnostics.Process]::Start("mask", "doc").WaitForExit()

doc (crate)

Opens the crate documentation

Bash:

cargo doc --all-features --no-deps --open $crate

PowerShell:

[Diagnostics.Process]::Start("cargo", "doc --all-features --no-deps --open $crate").WaitForExit()

format

Run formatters on the repository.

format cargo

Runs the formatter on all Rust files.

Bash:

cargo fmt --all

PowerShell:

[Diagnostics.Process]::Start("cargo", "fmt --all").WaitForExit()

format dprint

Runs the formatter on md, json, and toml files

Bash:

dprint fmt

PowerShell:

[Diagnostics.Process]::Start("dprint", "fmt").WaitForExit()

format all

Runs all the formatters.

Bash:

$MASK format cargo \
    && $MASK format dprint

PowerShell:

[Diagnostics.Process]::Start("mask", "format cargo").WaitForExit()
[Diagnostics.Process]::Start("mask", "format dprint").WaitForExit()

inverse-deps (crate)

Lists all crates that depend on the given crate

Bash:

cargo tree -e features -i $crate

PowerShell:

[Diagnostics.Process]::Start("cargo", "tree -e features -i $crate").WaitForExit()

lint

Runs the linter

Bash:

$MASK check \
    && cargo clippy --no-default-features -- -D warnings \
    && cargo clippy --all-features -- -D warnings

PowerShell:

[Diagnostics.Process]::Start("mask", "check").WaitForExit()
[Diagnostics.Process]::Start("cargo", "clippy --no-default-features -- -D warnings").WaitForExit()
[Diagnostics.Process]::Start("cargo", "clippy --all-features -- -D warnings").WaitForExit()

loop (action)

Continually runs some recipe from this file.

Bash:

watchexec -w src -- "$MASK $action"

PowerShell:

[Diagnostics.Process]::Start("watchexec", "-w src -- $MASK $action).WaitForExit()

miri (tests)

Looks for undefined behavior in the (non-doc) test suite.

NOTE: This requires the nightly toolchain.

Bash:

cargo +nightly miri test --all-features -q --lib --tests $tests

PowerShell:

[Diagnostics.Process]::Start("cargo", "+nightly miri test --all-features -q --lib --tests $tests").WaitForExit()

nextest

Runs the whole test suite with nextest.

nextest ignored

Runs the whole test suite with nextest on the workspace, including ignored tests.

Bash:

cargo nextest run -r --all-features --workspace -- --ignored

PowerShell:

[Diagnostics.Process]::Start("cargo", "nextest run -r --all-features --workspace -- --ignored").WaitForExit()

nextest ws

Runs the whole test suite with nextest on the workspace.

Bash:

cargo nextest run -r --all-features --workspace

PowerShell:

[Diagnostics.Process]::Start("cargo", "nextest run -r --all-features --workspace").WaitForExit()

nextest test

Runs a single test with nextest.

  • test
    • flags: -t, --test
    • type: string
    • desc: Only run the specified test target
    • required

Bash:

cargo nextest run -r --all-features -E "test($test)"

PowerShell:

[Diagnostics.Process]::Start("cargo", "nextest run -r --all-features -E 'test($test)'").WaitForExit()

pr

Prepare a Contribution/Pull request and run necessary checks and lints

Bash:

$MASK fmt \
    && $MASK test \
    && $MASK lint

PowerShell:

[Diagnostics.Process]::Start("mask", "fmt").WaitForExit()
[Diagnostics.Process]::Start("mask", "test").WaitForExit()
[Diagnostics.Process]::Start("mask", "lint").WaitForExit()

public-api

Runs a test to check if the public api of rustic_core has been changed

public-api regenerate

Regenerates the fixtures for the public api test

Bash:

UPDATE_EXPECT=1; cargo test --test public_api -p rustic_core -- --ignored

PowerShell:

$env:UPDATE_EXPECT=1; [Diagnostics.Process]::Start("cargo", "test --test public_api -p rustic_core -- --ignored").WaitForExit()

public-api test

Runs the public api test

Bash:

cargo test --test public_api -p rustic_core -- --ignored

PowerShell:

[Diagnostics.Process]::Start("cargo", "test --test public_api -p rustic_core -- --ignored").WaitForExit()

test

Runs the test suites.

Bash:

$MASK check \
    && $MASK lint
    && cargo test --all-features

PowerShell:

[Diagnostics.Process]::Start("mask", "check").WaitForExit()
[Diagnostics.Process]::Start("mask", "lint").WaitForExit()
[Diagnostics.Process]::Start("cargo", "test --all-features").WaitForExit()