daymo 0.1.0

Digital art and design tools
Documentation
# Install: `cargo install cargo-make`
# Help: https://sagiegurari.github.io/cargo-make/

[env]
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true

[config]
default_to_workspace = true
skip_core_tasks = true
skip_crate_env_info = true
skip_git_env_info = true
skip_rust_env_info = true

# -----------------------------------------------------------------------------
# Build and test
# -----------------------------------------------------------------------------

[tasks.clean]
command = "cargo"
args = ["clean"]

[tasks.build]
command = "cargo"
args = ["build"]
dependencies = ["clean"]

[tasks.test]
command = "cargo"
args = ["nextest", "run", "--all", "--no-fail-fast"]
env = { RUSTFLAGS = "-Dwarnings" }

[tasks.testdocs]
command = "cargo"
args = ["test", "doc"]
env = { RUSTFLAGS = "-Dwarnings" }

# -----------------------------------------------------------------------------
# Basic hygiene
# -----------------------------------------------------------------------------

[tasks.fmt]
command = "cargo"
args = ["fmt", "--all"]
install_crate = "rustfmt"

[tasks.lint]
command = "cargo"
args = ["clippy"]
install_crate = { rustup_component_name = "clippy" }

[tasks.update]
command = "cargo"
args = ["update"]

[tasks.upgrade]
command = "cargo"
args = ["upgrade"]
install_crate = "cargo-edit"

[tasks.audit]
command = "cargo"
args = ["audit"]

[tasks.unused]
command = "cargo"
args = ["machete", "--skip-target-dir"]
install_crate = "cargo-machete"

[tasks.outdated]
command = "cargo"
args = ["outdated", "--workspace", "--exit-code", "1"]
install_crate = "cargo-outdated"

[tasks.check]
dependencies = ["audit", "fmt", "lint", "outdated", "unused"]

# -----------------------------------------------------------------------------
# Publishing
# -----------------------------------------------------------------------------

[tasks.semver]
command = "cargo"
args = ["semver-checks"]
install_crate = "cargo-semver-checks"

[tasks.prepub]
command = "cargo"
args = ["publish", "--allow-dirty", "--dry-run"]

# args: one of `release`, `major`, `minor`, `patch`, `alpha`, `beta`, `rc`
[tasks.dryrun]
command = "cargo"
args = ["release", "${@}"]
install_crate = "cargo-release"

[tasks.release]
command = "cargo"
args = ["release", "${@}", "--execute"]
install_crate = "cargo-release"

# -----------------------------------------------------------------------------
# Books
# -----------------------------------------------------------------------------

[tasks.marketing-doc]
command = "mdbook"
args = ["build", "./docs/marketing", "--open"]
install_crate = "mdbook"