You've already forked guix-tribes
9269bb0b13
Pinned Docker E2E / pinned-docker-e2e (push) Failing after 33m33s
The deployed node materializes a real operating-system via `guix system
init`/reconfigure, so the authoritative substitute set is the closure of
that operating-system -- which CI already builds in substitute-system-jobs.
The hand-curated manifests/substitutes/{base,installer,tribes-node}.scm only
approximated a node's closure and drifted from it.
Add (tribes ci artifacts-substitutes), emitting the node OS closures and
bootloader files for the guix-tribes-substitutes jobset, and move those jobs
out of artifacts-master (now just the docker image and sender-runtime pack).
Building a node's full closure pulls every transitive upstream dependency
into our store, so the mirror keeps serving everything an install needs
without depending on bordeaux/ci. To preserve mirroring of the operator
toolkit -- which lived only in the old tribes-node manifest, not in any
system -- carry ripgrep/fd/tmux/neovim/btop in the node system profile, so
they are both installed on nodes and covered by the closure.
Drop the redundant manifests/substitutes/*.scm.