mirror of
https://github.com/rustic-rs/rustic.git
synced 2025-10-26 11:18:51 +00:00
122 lines
3.4 KiB
Makefile
122 lines
3.4 KiB
Makefile
################################################################################
|
|
# Justfile #
|
|
# #
|
|
# Set of routines to execute for development work. #
|
|
# #
|
|
# To make use of this file install: https://crates.io/crates/just #
|
|
# #
|
|
################################################################################
|
|
|
|
# 'Just' Configuration
|
|
|
|
# Loads .env file for variables to be used in
|
|
# in this just file
|
|
# set dotenv-load
|
|
|
|
# Ignore recipes that are commented out
|
|
set ignore-comments := true
|
|
|
|
# Set shell for Windows OSs:
|
|
# If you have PowerShell Core installed and want to use it,
|
|
# use `pwsh.exe` instead of `powershell.exe`
|
|
set windows-shell := ["powershell.exe", "-NoLogo", "-Command"]
|
|
|
|
# Set shell for non-Windows OSs:
|
|
set shell := ["bash", "-uc"]
|
|
|
|
# Runs the benchmark suite
|
|
# bench *ARGS:
|
|
# cargo +nightly bench {{ARGS}}
|
|
|
|
# Builds the library.
|
|
# build:
|
|
# cargo build --no-default-features
|
|
# cargo build --all-features
|
|
# @cargo build --all-features --example sieve
|
|
# @cargo build --all-features --example tour
|
|
|
|
# Checks the library for syntax and HIR errors.
|
|
check:
|
|
cargo check --no-default-features
|
|
cargo check --all-features
|
|
|
|
# Runs all of the recipes necessary for pre-publish.
|
|
# checkout: format check lint build doc test package
|
|
|
|
# Continually runs the development routines.
|
|
ci:
|
|
just loop dev
|
|
|
|
# Removes all build artifacts.
|
|
clean:
|
|
cargo clean
|
|
|
|
# Runs the development routines.
|
|
dev: format lint doc test
|
|
|
|
# Opens the crate documentation.
|
|
# @cargo +nightly doc --all-features {{ARGS}}
|
|
doc *ARGS:
|
|
@cargo doc --all-features --no-deps --open {{ARGS}}
|
|
|
|
# Runs the formatter on all Rust files.
|
|
format:
|
|
@cargo +nightly fmt --all
|
|
|
|
# Runs the linter.
|
|
lint: check
|
|
cargo clippy --no-default-features
|
|
cargo clippy --all-features
|
|
|
|
# Continually runs some recipe from this file.
|
|
loop action:
|
|
watchexec -w src -- "just {{action}}"
|
|
|
|
# Looks for undefined behavior in the (non-doc) test suite.
|
|
miri *ARGS:
|
|
cargo +nightly miri test --all-features -q --lib --tests {{ARGS}}
|
|
|
|
# Packages the crate in preparation for publishing on crates.io
|
|
# package:
|
|
# cargo package --allow-dirty
|
|
|
|
# Publishes the crate to crates.io
|
|
# publish: checkout
|
|
# cargo publish
|
|
|
|
# Runs the test suites.
|
|
test: check lint
|
|
cargo test --all-features
|
|
|
|
# Runs the whole test suite with nextest.
|
|
ntest:
|
|
cargo nextest run -r --all-features --workspace
|
|
|
|
# Runs only the ignored tests with nextest.
|
|
nitest:
|
|
cargo nextest run -r --all-features --workspace -- --ignored
|
|
|
|
# Runs a test defined by an expression with nextest.
|
|
# e.g. `just ntest completions` => test completions
|
|
natest *ARGS:
|
|
cargo nextest run -r --all-features -E 'test({{ARGS}})'
|
|
|
|
# Runs a test to check if the public api of rustic_core
|
|
# has been changed
|
|
#
|
|
# updating the public API files for each platform works
|
|
# by setting the environment variable `UPDATE_EXPECT=1`
|
|
tpa:
|
|
cargo test --test public_api -p rustic_core -- --ignored
|
|
|
|
# Generate code coverage report
|
|
# install needed dependencies with:
|
|
# `cargo xtask install-deps`
|
|
coverage:
|
|
cargo xtask coverage -w
|
|
|
|
# list the inverse dependencies
|
|
# as in which feature enables a given crate
|
|
inv-ft *ARGS:
|
|
cargo tree -e features -i {{ARGS}}
|