huntedbytheirs 7928b4d5f2 feat(resolve): generate build plan from constrained dep tree
Add generateBuildPlan() to tofu.resolve — filters constrained dep tree
to recipe-only packages, verifies cached recipes exist, and produces
an ordered BuildPlan ready for the build orchestrator (task 15).

- Skips binary-satisfied deps (Zeta handles those)
- Preserves topological order from constrained nodes (deps-first)
- Missing recipe files: re-fetch via injectable delegate seam
  (production wires tofu.fetch.fetchRecipe; tests inject mocks)
- Empty plan (all binary) → returns empty BuildPlan + log info
- Root always recipe — always included in plan
- 6 unittests: filter binary, fetch seam, missing no-seam,
  all-binary empty, root with binary dep, cache hit no-fetch
- dub test + dub build pass with warningsAsErrors
2026-08-08 17:58:25 -04:00
2026-08-08 16:11:02 -04:00

tofu

A package manager for the ZereneOS Unofficial User Repository

What it is

A Dlang wrapper around zeta-toolchain and ZETA for the ZUUR recipe repository, in the style of yay/paru for the ZereneOS ecosystem.

Requirements

  • dub
  • a D compiler (dmd or ldc2)
  • lua
  • curl
  • zeta-toolchain
  • Zeta

Build

dub build

Produces the ./tofu binary.

S
Description
A package manager for the ZereneOS Unofficial User Repository
Readme BSD-3-Clause
241 KiB
Languages
D 97.3%
Shell 2.7%