-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
100 lines (75 loc) · 3.03 KB
/
justfile
File metadata and controls
100 lines (75 loc) · 3.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# light_clone development tasks
# List available recipes
default:
@just --list
# ============================================================================
# Linting & CI
# ============================================================================
# Run all CI checks (compile, fmt, lint, test)
lint-ci: compile fmt-check lint test
# Run clippy lints (matches CI)
lint:
cargo clippy --workspace --all-features --all-targets -- -D warnings
# Format code
fmt:
cargo fmt --all
# Check formatting without modifying (matches CI)
fmt-check:
cargo fmt --all --check
# Check compilation (fast feedback, matches CI)
compile:
cargo check --workspace --all-features --all-targets
# ============================================================================
# Testing
# ============================================================================
# Run all tests (quiet output, shows summary + failures)
test:
cargo test --workspace --all-features --quiet
# Run tests without feature flags
test-minimal:
cargo test --workspace --quiet
# ============================================================================
# Building
# ============================================================================
# Build all targets
build:
cargo build --workspace --all-features
# Clean build artifacts
clean:
cargo clean
# ============================================================================
# Benchmarks
# ============================================================================
# Install benchmark tools (cargo-criterion and criterion-table)
install-bench-tools:
cargo install cargo-criterion criterion-table
# Generate benchmark table with all features and save to file
bench-full-table-save: check-criterion-table
cargo criterion -p light_clone --all-features --message-format=json 2>/dev/null | criterion-table > BENCHMARKS.md
@echo "Saved to BENCHMARKS.md (with all features)"
# Run benchmarks with all features
bench-full:
cargo bench -p light_clone --all-features
# Run benchmarks (full output)
bench:
cargo bench -p light_clone
# Generate benchmark comparison table as markdown
bench-table: check-criterion-table
cargo criterion -p light_clone --message-format=json 2>/dev/null | criterion-table
# Check if cargo-criterion is installed
[private]
check-cargo-criterion:
@command -v cargo-criterion >/dev/null 2>&1 || (echo "Error: cargo-criterion not found. Install with: cargo install cargo-criterion" && exit 1)
# Check if criterion-table is installed
[private]
check-criterion-table: check-cargo-criterion
@command -v criterion-table >/dev/null 2>&1 || (echo "Error: criterion-table not found. Install with: cargo install criterion-table" && exit 1)
# ============================================================================
# Documentation
# ============================================================================
# Build documentation
doc:
cargo doc --workspace --all-features --no-deps
# Open documentation in browser
doc-open:
cargo doc --workspace --all-features --no-deps --open