Files
marathon/.serena/memories/suggested_commands.md
Sienna Meridian Satterwhite 99e31b1157 removed bincode for rkyv
Signed-off-by: Sienna Meridian Satterwhite <sienna@r3t.io>
2025-12-17 19:20:34 +00:00

4.0 KiB

Suggested Commands for Aspen Development

Build & Run Commands

iOS Simulator (Primary Development Target)

# Build, deploy, and run on iOS Simulator (most common)
cargo xtask ios-run

# Build only (release mode)
cargo xtask ios-build

# Build in debug mode
cargo xtask ios-build --debug

# Deploy to specific device
cargo xtask ios-deploy --device "iPad Air (5th generation)"

# Run with debug mode and custom device
cargo xtask ios-run --debug --device "iPhone 15 Pro"

# Build and deploy to physical iPad
cargo xtask ios-device

Desktop (macOS)

# Run on macOS desktop
cargo run --package app --features desktop

# Run in release mode
cargo run --package app --features desktop --release

Testing

# Run all tests
cargo test

# Run tests for specific package
cargo test --package libmarathon
cargo test --package app

# Run integration tests
cargo test --test sync_integration

# Run with specific test
cargo test test_sync_between_two_nodes

# Run tests with logging output
RUST_LOG=debug cargo test -- --nocapture

Code Quality

Formatting

# Format all code (uses rustfmt.toml configuration)
cargo fmt

# Check formatting without modifying files
cargo fmt -- --check

Linting

# Run clippy for all crates
cargo clippy --all-targets --all-features

# Run clippy with fixes
cargo clippy --fix --allow-dirty --allow-staged

# Strict clippy checks
cargo clippy -- -D warnings

Building

# Build all crates
cargo build

# Build in release mode
cargo build --release

# Build specific package
cargo build --package libmarathon

# Build for iOS target
cargo build --target aarch64-apple-ios --release
cargo build --target aarch64-apple-ios-sim --release

Cleaning

# Clean build artifacts
cargo clean

# Clean specific package
cargo clean --package xtask

# Clean and rebuild
cargo clean && cargo build

Benchmarking

# Run benchmarks
cargo bench

# Run specific benchmark
cargo bench --bench write_buffer
cargo bench --bench vector_clock

Documentation

# Generate and open documentation
cargo doc --open

# Generate docs for all dependencies
cargo doc --open --document-private-items

Dependency Management

# Update dependencies
cargo update

# Check for outdated dependencies
cargo outdated

# Show dependency tree
cargo tree

# Check specific dependency
cargo tree -p iroh

iOS-Specific Commands

Simulator Management

# List available simulators
xcrun simctl list devices available

# Boot a specific simulator
xcrun simctl boot "iPad Pro 12.9-inch M2"

# Open Simulator app
open -a Simulator

# View simulator logs
xcrun simctl spawn <device-uuid> log stream --predicate 'processImagePath contains "Aspen"'

Device Management

# List connected devices
xcrun devicectl list devices

# View device logs
xcrun devicectl device stream log --device <device-id> --predicate 'process == "app"'

Git Commands (macOS-specific notes)

# Standard git commands work on macOS
git status
git add .
git commit -m "message"
git push

# View recent commits
git log --oneline -10

# Check current branch
git branch

System Commands (macOS)

# Find files (macOS has both find and mdfind)
find . -name "*.rs"
mdfind -name "rustfmt.toml"

# Search in files
grep -r "pattern" crates/
rg "pattern" crates/  # if ripgrep is installed

# List files
ls -la
ls -lh  # human-readable sizes

# Navigate
cd crates/app
pwd

# View file contents
cat Cargo.toml
head -20 src/main.rs
tail -50 Cargo.lock

Common Workflows

After Making Changes

# 1. Format code
cargo fmt

# 2. Run clippy
cargo clippy --all-targets

# 3. Run tests
cargo test

# 4. Test on simulator
cargo xtask ios-run

Adding a New Feature

# 1. Create RFC if it's a major change
# edit docs/rfcs/NNNN-feature-name.md

# 2. Implement
# edit crates/.../src/...

# 3. Add tests
# edit crates/.../tests/...

# 4. Update documentation
cargo doc --open

# 5. Run full validation
cargo fmt && cargo clippy && cargo test && cargo xtask ios-run