set minimum-version := '1.55.0'
set default-list

alias update := update-min

all:
	just all-max
	just all-min
all-min: update-min build lint test example doc format
all-max: update-max build lint test example doc format

update-min:
    cargo +nightly update -Z minimal-versions
    cargo update -p is_terminal_polyfill --precise 1.48.2

update-max:
    cargo update

build:
    cargo hack --feature-powerset build

lint:
    cargo hack --feature-powerset clippy -- -D warnings
    cargo hack --feature-powerset clippy --tests -- -D warnings

test:
    cargo hack --feature-powerset test
    cargo +1.85 hack --feature-powerset test
    cargo +nightly hack --feature-powerset miri test

example:
    # cargo run --example=<example> --features=<req_features>

doc *args:
    RUSTDOCFLAGS="--cfg docsrs -D warnings" cargo +nightly doc --all-features {{ args }}

format:
    cargo fmt --check

install:
    cargo install --path crates/lint-policy-cli
