Files
hammer/recipes/amfora.toml
T
sergioandClaude Opus 4.8 4291b2adeb Etapa G frente Go: vendoring integrado en fetch — amfora construye, repro
Cierra el muro del frente Go (vendoring) replicando el patron de Rust:
vendorear in-situ en el fetch (host, con red), no tarball-al-mirror.

- fetch.rs: vendor_go_deps() analoga a vendor_cargo_deps — corre go mod vendor
  en el host si hay go.mod; el sandbox compila offline con -mod=vendor.
- lib.rs: engancha vendor_go_deps tras los patches cuando el arbol trae go.mod
  (sin BuildSys::Go; el compile lo fija la receta en build.phases).
- bootstrap-devfs.sh: instala el toolchain go del host (1.26.4, estatico) en
  .dev-fs/tools/go + symlink en ~/.cargo/bin (PATH del worker via .cargo/env).
- amfora: PRIMERA receta Go del corpus. Build end-to-end validado (repo+commit
  -> fetch vendorea -> sandbox offline -> binario estatico que corre, Amfora
  v1.11.0). REPRODUCIBLE bit-a-bit: dos stores independientes dan of_tree
  b3:9ec1d5fe (trimpath + buildid= en el compile). Promovida al repo (282).

Quedan 12 recetas Go en tandas/staged-2026-06-26/ (cheat/dnsx/croc/dyff/csvtk/
git-town/miller/jump/gron/qrcp/walk/gtrash): mecanico, copiar el patron de
amfora ajustando el nombre del binario.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 04:34:56 -04:00

34 lines
1.4 KiB
TOML

# amfora — PLANTILLA DE REFERENCIA del patrón Go (Etapa G, frente Go). DIFERIDA.
#
# Estado del frente (2026-06-26):
# ✅ toolchain: recipes/go.toml (1.26.4, binario estático, corre en el sandbox musl,
# se materializa como overlay vía deps.build=["go"] → /usr/bin/go visible).
# ✅ vendoring INTEGRADO en fetch.rs (`vendor_go_deps`, análogo a vendor_cargo_deps):
# si el árbol trae go.mod, hammer corre `go mod vendor` en el host (red) y el
# sandbox compila offline con -mod=vendor. El `go` del host lo provee el lab
# (.dev-fs/tools/go). NO hace falta tarball-al-mirror: se vendorea in-situ como Rust.
# ✅ VALIDADO end-to-end: esta receta (repo+commit) → binario ESTÁTICO que corre
# (Amfora v1.11.0), sellado b3:0a3f63bc…
#
# Patrón compile para cualquier tool Go (-trimpath -buildid= ⇒ reproducible bit-a-bit
# para la cosecha trust-free de la granja):
name = "amfora"
version = "1.11.0"
[source]
repo = "https://github.com/makew0rld/amfora"
commit = "4d9a5c56c88f7bec2938968182c88130b923fbba"
[build]
compiler = "zig-cc" # inerte (Go no usa zig); el toolchain real llega por deps.build
target = "x86_64-linux-musl"
link = "static"
[deps]
build = ["go"]
[build.phases]
configure = "true"
compile = "export GOCACHE=/tmp/gocache GOPATH=/tmp/gopath GOTOOLCHAIN=local CGO_ENABLED=0 GOFLAGS=-mod=vendor GOPROXY=off; go build -trimpath -ldflags=-buildid= -o /out/usr/bin/amfora ."
install = "true"