HOVEL // module 01.09
Module 01.09 Payload provider / Integrated

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-*-static as 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.