Files
Andreas Bigger 465b234543 parallelization ♻️
2025-12-29 14:27:23 -05:00

159 lines
4.5 KiB
Makefile

set positional-arguments
alias t := test
alias f := fix
alias b := build
alias c := clean
default:
@just --list
# ============================================================
# CI
# ============================================================
# Run the full CI suite
ci: fix check lychee check-udeps
# Run all checks
check: check-format check-clippy test
# Check links in documentation
lychee:
@command -v lychee >/dev/null 2>&1 || cargo install lychee
lychee --config ./lychee.toml .
# ============================================================
# Formatting
# ============================================================
# Check code formatting
check-format:
cargo +nightly fmt --all -- --check
# Format code
format-fix:
cargo fix --allow-dirty --allow-staged
cargo +nightly fmt --all
# ============================================================
# Linting
# ============================================================
# Run clippy
check-clippy:
cargo clippy --workspace --all-targets -- -D warnings
# Auto-fix clippy issues
clippy-fix:
cargo clippy --workspace --all-targets --fix --allow-dirty --allow-staged
# ============================================================
# Testing
# ============================================================
# Run tests
test:
@command -v cargo-nextest >/dev/null 2>&1 || cargo install cargo-nextest
RUSTFLAGS="-D warnings" cargo nextest run --workspace --all-features
# Watch tests
watch-test:
cargo watch -x "nextest run --workspace --all-features"
# ============================================================
# Building
# ============================================================
# Build release
build:
cargo build --workspace --release
# Clean build artifacts
clean:
cargo clean
# ============================================================
# Dependencies
# ============================================================
# Check for unused dependencies
check-udeps:
@command -v cargo-udeps >/dev/null 2>&1 || cargo install cargo-udeps
cargo +nightly udeps --workspace --all-features --all-targets
# ============================================================
# Documentation
# ============================================================
# Generate and open documentation
doc:
cargo doc --workspace --no-deps --open
# Watch for changes and run checks
watch-check:
cargo watch -x "clippy --workspace --all-targets"
# ============================================================
# Install
# ============================================================
# Install paracas from crates.io
install:
cargo install paracas
# Install paracas locally from source
install-local:
cargo install --path bin
# ============================================================
# Download Commands
# ============================================================
# Download tick data (all available history by default)
download instrument start="" end="" output="" format="csv":
cargo run --package paracas --release -- download {{instrument}} \
{{ if start != "" { "-s " + start } else { "" } }} \
{{ if end != "" { "-e " + end } else { "" } }} \
{{ if output != "" { "-o " + output } else { "" } }} \
-f {{format}}
# Download with OHLCV aggregation
download-ohlcv instrument start="" end="" output="" format="csv" timeframe="h1":
cargo run --package paracas --release -- download {{instrument}} \
{{ if start != "" { "-s " + start } else { "" } }} \
{{ if end != "" { "-e " + end } else { "" } }} \
{{ if output != "" { "-o " + output } else { "" } }} \
-f {{format}} -t {{timeframe}}
# List available instruments
list-instruments:
cargo run --package paracas --release -- list
# Show instrument info
info instrument:
cargo run --package paracas --release -- info {{instrument}}
# Compound command for development
fix:
cargo +nightly fmt --all
cargo clippy --workspace --all-targets --fix --allow-dirty --allow-staged
# ============================================================
# Benchmarks
# ============================================================
# Run criterion benchmarks
bench:
cargo bench --package paracas-bench
# Run benchmark and output markdown table for README
bench-table:
cargo build --release
cargo run --package paracas-bench --bin benchmark_table --release
# Quick benchmark (1-day only, fewer iterations)
bench-quick:
cargo build --release
cargo run --package paracas-bench --bin benchmark_table --release -- --quick