huntedbytheirs fc979b650d test(e2e): add full smoketest covering install, search, upgrade, remove
Creates tests/e2e/smoketest.sh — a hermetic end-to-end test that:
- Sets up a mock ZUUR (python3 http.server serving local index/recipes)
- Creates fake zeta-makepkg and zeta scripts (no real Lua tools needed)
- Tests the full pipeline: search → install → upgrade → info → remove
- Verifies exit codes (0, 2 for not-found)
- Verifies installed.json state tracking
- Verifies binary installation/removal via ZETA_ROOT

BUG FOUND (documented in problems.md, not fixed):
- info.d scanDepsArray stores ptrdiff_t indexOf() result in size_t,
  causing ArrayIndexError when recipe lacks a deps field.
  Workaround: recipe includes deps = {}.

Evidence: .omo/evidence/task-27-tofu-core.log — 16/16 checks pass.
2026-08-08 18:52:19 -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%