.PHONY: build release test test-integration test-all clean install dev check fmt lint publish publish-pypi build-python bench bench-compare bench-realworld help
all: build
build:
cargo build
release:
cargo build --release
build-python:
maturin build --release
test:
cargo test
test-integration:
cargo test -- --ignored
test-all:
cargo test
cargo test -- --ignored
test-verbose:
cargo test -- --nocapture
bench:
cargo bench
bench-compare: release
uv run bench/compare.py
bench-realworld: release
uv run bench/realworld.py
clean:
cargo clean
rm -rf target/ dist/ *.egg-info/
install: release
cargo install --path .
install-python:
maturin develop
dev:
cargo watch -x build
check:
cargo check
fmt:
cargo fmt
fmt-check:
cargo fmt -- --check
lint:
cargo clippy -- -D warnings
publish:
cargo publish
publish-pypi:
maturin publish
publish-all: publish publish-pypi
bump-patch:
cargo set-version --bump patch
bump-minor:
cargo set-version --bump minor
bump-major:
cargo set-version --bump major
help:
@echo "Available targets:"
@echo ""
@echo " Build:"
@echo " make build - Build debug binary"
@echo " make release - Build release binary"
@echo " make build-python - Build Python wheel"
@echo " make install - Install CLI locally"
@echo " make install-python - Install Python package for development"
@echo ""
@echo " Test:"
@echo " make test - Run unit tests"
@echo " make test-integration - Run integration tests (requires S3 credentials)"
@echo " make test-all - Run all tests"
@echo " make test-verbose - Run tests with output"
@echo ""
@echo " Benchmark:"
@echo " make bench - Run micro-benchmarks (cargo bench)"
@echo " make bench-compare - Compare walrust vs litestream (memory/CPU)"
@echo " make bench-realworld - Real-world benchmarks (sync latency, restore, multi-DB)"
@echo ""
@echo " Code Quality:"
@echo " make check - Check for errors"
@echo " make fmt - Format code"
@echo " make lint - Run clippy linter"
@echo ""
@echo " Publish:"
@echo " make publish - Publish to crates.io"
@echo " make publish-pypi - Publish to PyPI"
@echo " make publish-all - Publish to both"
@echo ""
@echo " Other:"
@echo " make clean - Remove build artifacts"
@echo " make dev - Watch and rebuild"
.DEFAULT_GOAL := help