forked from wheregmis/dioxus-motion
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
172 lines (128 loc) · 3.82 KB
/
Copy pathjustfile
File metadata and controls
172 lines (128 loc) · 3.82 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# Development commands for dioxus-motion
# Show all available commands
default:
@just --list
# === Testing ===
# Run all tests with web features
test:
cargo test --features web
# Run all tests with desktop features
test-desktop:
cargo test --features desktop
# Run all tests with transitions features
test-transitions:
cargo test --features transitions
# Run tests for a specific feature combination
test-features features:
cargo test --features {{features}}
# Run tests with output (no capture)
test-verbose:
cargo test --features web -- --nocapture
# Run a specific test by name
test-name name:
cargo test --features web {{name}} -- --nocapture
# Run loop mode tests specifically
test-loops:
cargo test --features web test_loop_mode -- --nocapture
# === Code Quality ===
# Format all code
fmt:
cargo fmt --all
# Check formatting without making changes
fmt-check:
cargo fmt --all -- --check
# Run clippy with web features
clippy:
cargo clippy --features web -- -D warnings
# Run clippy with desktop features
clippy-desktop:
cargo clippy --features desktop -- -D warnings
# Run clippy with all features
clippy-all:
cargo clippy --all-features -- -D warnings
# Run clippy and automatically fix issues
clippy-fix:
cargo clippy --features web --fix --allow-dirty -- -D warnings
# === Building ===
# Check compilation with web features
check:
cargo check --features web
# Check compilation with desktop features
check-desktop:
cargo check --features desktop
# Check compilation with all features
check-all:
cargo check --all-features
# Check the entire workspace
check-workspace:
cargo check --workspace --all-features
# Build with web features
build:
cargo build --features web
# Build with desktop features
build-desktop:
cargo build --features desktop
# Build release version
build-release:
cargo build --release --features web
# === Documentation ===
# Generate and open documentation
docs:
cargo doc --no-deps --features web --open
# Generate documentation for all features
docs-all:
cargo doc --no-deps --all-features --open
# Check documentation without opening
docs-check:
cargo doc --no-deps --all-features
# === CI Simulation ===
# Run the same checks as CI
ci: fmt-check clippy test docs-check
@echo "✅ All CI checks passed!"
# Run CI checks for desktop
ci-desktop: fmt-check clippy-desktop test-desktop docs-check
@echo "✅ All desktop CI checks passed!"
# === Maintenance ===
# Remove unused dependencies
remove_deps:
cargo machete --with-metadata
# Check build timing
check_timing:
cargo build --timings
# Remove unused features
remove_unused_features:
cargo features prune
# Clean build artifacts
clean:
cargo clean
# Update dependencies
update:
cargo update
# === Benchmarks ===
# Run benchmark tests
bench:
cargo test --features web --release animations::benchmarks::tests -- --nocapture
# Run performance regression tests
test-perf:
cargo test --features web test_performance_regression -- --nocapture
# Run config pool performance test
test-pool-perf:
cargo test --features web test_config_pool_performance -- --nocapture
# === CI Debugging ===
# Test workspace check (like CI does)
test-workspace:
cargo check --workspace --all-features
cargo clippy --workspace --all-features -- -D warnings
# Install system dependencies (Ubuntu/Debian)
install-deps:
#!/usr/bin/env bash
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
echo "Installing system dependencies for Linux..."
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "macOS detected - no additional system dependencies needed"
else
echo "Unsupported OS: $OSTYPE"
exit 1
fi