Developers guide¶
Prerequisites¶
- Rust toolchain (stable)
- Python 3.10+ with uv
Building from source¶
git clone git@github.com:biodatageeks/vepyr.git
cd vepyr
# Development build
uv sync
# Rebuild after Rust changes (faster iteration)
uv run maturin develop
# Release build with native CPU optimizations
RUSTFLAGS="-C target-cpu=native" uv sync --reinstall-package vepyr
Running tests¶
# Full test suite
uv run pytest -v
# Single test
uv run pytest tests/test_annotate.py::test_annotate_parquet -v
# Rust tests
cargo test
Linting and formatting¶
# Rust
cargo fmt
cargo clippy --all-targets -- -D warnings
# Python
uv run ruff format .
uv run ruff check .
Building documentation locally¶
# Install docs dependencies
uv sync --extra docs
# Serve locally with hot reload
uv run mkdocs serve
# Build static site
uv run mkdocs build
Release wheels¶
Wheels are produced for Linux (x86_64), macOS (x86_64, aarch64), and Windows (x64).