refactor: single flat manifest.scm, drop container.scm + toggles #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refactor-single-flat-manifest"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Collapses the toolchain config to one flat
manifest.scm, per discussion — no second file, no build-time toggles. Restores a true single source of truth.What changed
manifest.scm— flat list:go git golangci-lint node+ a named%plumbingvar (bash coreutils nss-certs). Nogetenvmodes. Used verbatim by dev, CI lint, CI image (guix pack), and thewraptool upcontainer.manifest.scm.bringUpGuixContainerrunsguix shell --container -m manifest.scm, so the harness gets the same toolchain a developer does and can compile/test/analyze/commit locally — which the old harness-onlycontainer.scmcouldn't..wraptool/container.scm,--scaffold-guix, the container-manifest lookup/scaffold/template + their tests, and theWRAPTOOL_CI_IMAGEpack toggle.Security posture (unchanged)
Credential isolation is the mount/user namespace (host
$HOME/secrets never shared), not the package set. Sogitbeing in the container is fine:Tradeoff accepted
Dev
guix shellis no longer "lean" (now pulls node + plumbing) — simplicity over leanness, and still trivially small next to a polyglot image.Verified (e2e on Guix)
Container built from
manifest.scmhas go/git/node/golangci-lint/bash; reaches host wraptool; host$HOMEempty, host repo not visible; localgit statusworks. Fullgo test ./...+ golangci-lint clean; YAML valid; manifest evaluates for dev and container. The publish-ci-image workflow is path-filtered onmanifest.scm, so merging re-packs the CI image from the flat manifest automatically.Docs
design/guix-container-runtime.mdgets an R2 revision banner superseding thecontainer.scmmodel (§6.2/§6.4 tagged R1);CLAUDE.md+examples/devcontainer/README.mdupdated.🤖 Generated with Claude Code