Getting Started
Run the commands on this page from the Hovel repository root. Aspect CLI is the public build interface; it selects the pinned Bazel, Python, Rust, C, and cross-compilation inputs used by both local development and CI.
Prerequisites
- Aspect CLI, the repository entry point
- Bazelisk, which honors the checked-in Bazel version
-
QEMU user mode only when executing
non-native Linux runners: binfmt_misc handlers are preferred, with
qemu-*-staticas the fallback - Docker or Podman only when using the optional development container
Do not install or invoke host bazel, uv,
ruff, clang-format, or clang-tidy for
repository workflows. Aspect invokes hermetic Bazel targets that provide those
tools. Pinned Bootlin archives supply Linux cross-compilers for x86, ARM,
AArch64, MIPS, s390x, SPARC, PowerPC, ppc64le, and RISC-V.
Quick start
# Verify generated sources and the declared toolchain graph
aspect hovel-check modules
# Build the representative platform matrix
aspect hovel-check modules
# Build and stage all blobs, runners, and verifier fixtures
aspect run --bazel-flag=--config=picblobs_cross //modules/picblobs/tools:stage_blobs --
# Execute the staged catalogue through the Bazel-managed CLI
aspect run //modules/picblobs/python_cli:picblobs-cli -- verify
# Run the Picblobs test suite
aspect hovel-check modules
Use aspect hovel-hooks if you want the optional repository Git
hooks. The hooks call Aspect-backed checks; contributors should not invoke
Lefthook directly.
Docker / Podman (no local setup)
Docker or Podman is an optional host boundary rather than part of the hermetic build graph. The repository's normal build, verification, and CLI paths above do not require a development container.