Getting Started
Run the commands on this page from the Hovel repository root. Task 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
- Task, 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. Task 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
task picblobs:setup
# Build the representative platform matrix
task picblobs:bazel-build
# Build and stage all blobs, runners, and verifier fixtures
task picblobs:stage
# Execute the staged catalogue through the Bazel-managed CLI
task bazel:run -- //modules/picblobs/python_cli:picblobs-cli -- verify
# Run the Picblobs test suite
task picblobs:test
Use task hooks:install if you want the optional repository Git
hooks. The hooks call Task-backed checks; contributors should not invoke
Lefthook directly.
Docker / Podman (no local setup)
The optional Picblobs development container is also exposed through its module Taskfile:
# Interactive container shell
task --dir modules/picblobs dev
# Run a Task-backed command in the container and exit
task --dir modules/picblobs dev -- 'task verify'