HOVEL // module 01.09
Module 01.09 Payload provider / Integrated

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-*-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. 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'