⚙️ 🤖 shell.nix fehlt: build.sh-Dependencies (xxd, minijinja-cli, jq, pandoc) undeklariert → nxr/Reproduzierbarkeit #57

Open
opened 2026-07-01 19:46:03 +02:00 by holm · 0 comments
Owner
Dimension Bewertung Einschätzung
Aufwand ███░░░░░░░ Niedrig — shell.nix mit buildInputs anlegen
Nutzen ███████░░░ Hoch — Reproduzierbarkeit, nxr-Workflow funktioniert
Bruchhäufigkeit █████░░░░░ Mittel — schlägt zu sobald ein Tool im Profil fehlt
Nachhaltigkeit ████████░░ Hoch — einmal deklariert, dauerhaft portabel
Dringlichkeit ████░░░░░░ Mittel — läuft aktuell nur dank User-Profil-Tools

Problem

Das Repo hat keine shell.nix (und kein flake) im Root. Holms nxr <cmd>-Wrapper braucht aber eine Nix-Shell-Definition, um die Build-Tools bereitzustellen — aktuell läuft nxr in diesem Repo ins Leere. Die Worker konnten nur bauen, weil bash, jq, pandoc, minijinja-cli und neuerdings xxd zufällig im System-/User-Profil-PATH vorhanden waren.

Mit #56 kam xxd als neue Abhängigkeit dazu (UUIDv5-Erzeugung in scripts/build.sh via sha1sum + xxd -r -p).

Auswirkung

  • nxr bash scripts/build.sh … (der dokumentierte/kanonische Aufruf) funktioniert nicht deterministisch.
  • Reproduzierbarkeit auf einer frischen NixOS-Maschine oder im Container nicht garantiert.
  • Build-Dependencies sind nirgends deklariert (README nennt bash/jq/pandoc/awk/minijinja-cli, aber nicht xxd, und es gibt keine ausführbare Deklaration).

Vorschlag

shell.nix im Root anlegen mit buildInputs: bash, jq, pandoc, minijinja-cli, gawk, coreutils (date/sha1sum), xxd (aus vim/xxd-Paket), ggf. ffmpeg (tag.sh). Danach README-Voraussetzungen + Build-Aufruf (nxr bash scripts/build.sh …) konsistent halten.

Alternative zu xxd: UUIDv5 in build.sh auf od/printf umstellen (coreutils-only), um die Extra-Dependency zu vermeiden — Trade-off, Holm/v00 entscheidet.

🤖 angelegt von Claude o00 (API/Token holm)

| Dimension | Bewertung | Einschätzung | |---|---|---| | Aufwand | `███░░░░░░░` | Niedrig — shell.nix mit buildInputs anlegen | | Nutzen | `███████░░░` | Hoch — Reproduzierbarkeit, `nxr`-Workflow funktioniert | | Bruchhäufigkeit | `█████░░░░░` | Mittel — schlägt zu sobald ein Tool im Profil fehlt | | Nachhaltigkeit | `████████░░` | Hoch — einmal deklariert, dauerhaft portabel | | Dringlichkeit | `████░░░░░░` | Mittel — läuft aktuell nur dank User-Profil-Tools | ## Problem Das Repo hat **keine `shell.nix`** (und kein flake) im Root. Holms `nxr <cmd>`-Wrapper braucht aber eine Nix-Shell-Definition, um die Build-Tools bereitzustellen — aktuell läuft `nxr` in diesem Repo **ins Leere**. Die Worker konnten nur bauen, weil `bash`, `jq`, `pandoc`, `minijinja-cli` und neuerdings `xxd` zufällig im System-/User-Profil-PATH vorhanden waren. Mit #56 kam `xxd` als neue Abhängigkeit dazu (UUIDv5-Erzeugung in `scripts/build.sh` via `sha1sum` + `xxd -r -p`). ## Auswirkung - `nxr bash scripts/build.sh …` (der dokumentierte/kanonische Aufruf) funktioniert nicht deterministisch. - Reproduzierbarkeit auf einer frischen NixOS-Maschine oder im Container nicht garantiert. - Build-Dependencies sind nirgends deklariert (README nennt bash/jq/pandoc/awk/minijinja-cli, aber nicht xxd, und es gibt keine ausführbare Deklaration). ## Vorschlag `shell.nix` im Root anlegen mit `buildInputs`: `bash`, `jq`, `pandoc`, `minijinja-cli`, `gawk`, `coreutils` (date/sha1sum), `xxd` (aus `vim`/`xxd`-Paket), ggf. `ffmpeg` (tag.sh). Danach README-Voraussetzungen + Build-Aufruf (`nxr bash scripts/build.sh …`) konsistent halten. Alternative zu `xxd`: UUIDv5 in build.sh auf `od`/`printf` umstellen (coreutils-only), um die Extra-Dependency zu vermeiden — Trade-off, Holm/v00 entscheidet. > 🤖 angelegt von Claude o00 (API/Token holm)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Zentonic/zentonic-publisher#57
No description provided.