v0.5.0
BASE-IMAGE boots on RPI4
- Tasks replace build steps —
build = [...]replaced bytasks = [...]
with named build phases. Each task hasrun(shell string),fn(Starlark
function), orsteps(mixed list). Classes (autotools, cmake, go) are now
pure Starlark. run()builtin — Starlark functions can execute shell commands directly
during builds. Errors show.starfile and line number, not generated shell.
run(cmd, check=False)returns exit code/stdout/stderr for conditional logic.
run(cmd, privileged=True)runs directly in the container as root for
operations like losetup/mount that bwrap can't do.- Unit scope — units declare
scope = "machine","noarch", or"arch"
(default). Machine-scoped units (kernels, images) build per-machine. Build
directories are flat:build/<name>.<scope>/. Repo is flat with scope in
filenames:repo/<name>-<ver>-r0.<scope>.apk. - Machine-portable images — images no longer hard-code machine-specific
packages or partitions.MACHINE_CONFIGandPROVIDESinject machine
hardware specifics automatically.base-imageworks across QEMU x86, QEMU
arm64, and Raspberry Pi without changes. PROVIDESvirtual packages — units and kernels declareprovidesto
fulfill virtual names.provides = "linux"onlinux-rpi4means images that
list"linux"get the RPi kernel when building forraspberrypi4.- Image assembly in Starlark — disk image creation moved from Go to
classes/image.starusingrun(). Fully readable, customizable, forkable. - Raspberry Pi BSP module (
units-rpi) — machine definitions, kernel fork
units, GPU firmware, and boot config for Raspberry Pi 4 and 5. - Runtime dependency resolution — image assembly now resolves transitive
runtime dependencies automatically.RUNTIME_DEPSpredeclared variable
available after unit evaluation. Three-phase loader: machines → units →
images. - Layers renamed to modules —
layer()→module(),LAYER.star→
MODULE.star,yoe layer→yoe module,layers/→modules/. Aligns
terminology with Go modules model used for dependency resolution.
To update, run: yoe update
Or download the binary for your architecture and place it in your PATH.