Declare bubblewrap on dev VMs for sandboxed workers #146
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/archetypes#146
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Dev VMs declare
bubblewrapas a tool rather than inheriting it as a dependency of the agent CLIs, soallod change run(allod/strategy#69) has a sandbox binary the closure promises rather than one that disappears when an agent CLI drops the dependency.Part of allod/strategy#69.
Primary goals:
modules/dev-home-shared.nixaddspkgs.bubblewrapto the dev-VM home packages.nixosConfigurations.<hypervisor>.config.system.build.toplevel.drvPathis equal before and after; witnessed byfleet-diff --expect <dev machines>from a deploy checkout, naming exactly the dev VMs.architecture.md, record what each machine costs); bubblewrap is already in the closure as a transitive dependency, so the expected delta is zero bytes and the PR body says what was measured.Scope
In: the one module line and the PR body's witnesses. Out: everything else in allod/strategy#69.
Handoff: one commit on
agent/declare-bubblewrap, verified; PR body:Dev VMs now declare bubblewrap as a tool of their own, so the sandbox binary
allod change runneeds is promised by the closure rather than inherited from the agent CLIs. The only machine that rebuilds is the dev VM; the hypervisor and every other machine evaluate to the same derivation as before. The dev VM closure grows by 114 KiB, because the declared package is a different derivation from the copy the agent CLIs already carry, same bytes, two store paths. Proof: derivation paths compared per machine in both trees,fleet-diff --expect allod-devfrom the deploy checkout, andallod checkgreen. If it is wrong, revert the one commit; nothing else references the package yet.Refs allod/strategy#69. Closes allod/archetypes#146.
Risk
R1. One
home.packagesentry on dev VMs. No secrets, host commands, provisioning, activation or persistent state. Rollback is a revert.Validation
nix eval --raw .#nixosConfigurations.<m>.config.system.build.toplevel.drvPathfor all six public machines in the shared checkout and in the branch: onlyallod-devdiffers.fleet-diff --override 'archetypes=git+file://…?rev=9604822…' --expect allod-devfromallod/deploy:1 of 6 machines change. Expectation matches.nix path-info -Son theallod-devtoplevel: 2902049320 before, 2902165672 after, delta 116352 bytes.nix why-dependsshows twobubblewrapstore paths, the declared one and the agent CLIs' transitive one, with byte-identical contents.allod checkin the branch:All 46 steps passed (checks: 30 built).Handoff update: branch rebased onto current master, commit 098ed17; witnesses rerun. Revised PR body:
Dev VMs now declare bubblewrap as a tool of their own, so the sandbox binary
allod change runneeds is promised by the closure rather than inherited from the agent CLIs. The only machine that rebuilds is the dev VM; the hypervisor and every other machine evaluate to the same derivation as before. The dev VM closure grows by 114 KiB, because the declared package is a different derivation from the copy the agent CLIs already carry, same bytes, two store paths. Proof: derivation paths compared per machine between master and the branch, with only the dev VM differing, andallod checkgreen;fleet-difffrom the public deploy checkout also reports the hypervisor because its lock predates several nexus commits that the archetypes override drags forward, which the direct comparison rules out as this change. If it is wrong, revert the one commit; nothing else references the package yet.Refs allod/strategy#69. Closes allod/archetypes#146.
Risk
R1. One
home.packagesentry on dev VMs. No secrets, host commands, provisioning, activation or persistent state. Rollback is a revert.Validation
nix eval --raw .#nixosConfigurations.<m>.config.system.build.toplevel.drvPathfor all six public machines in the shared checkout and in the branch: onlyallod-devdiffers.fleet-diff --override 'archetypes=…?rev=098ed17…' --expect allod-devfromallod/deploy:2 of 6 machines change, namingnexusas well; the deploy lock pins an archetypes revision whosenexusinput is older, so the override advancesnexustoo. The direct comparison above showsnexusbyte-identical, which is the controlling witness for this change.nix path-info -Son theallod-devtoplevel: 2902049320 before, 2902165672 after, delta 116352 bytes.nix why-dependsshows twobubblewrapstore paths, the declared one and the agent CLIs' transitive one, with byte-identical contents.allod checkin the branch:All 46 steps passed (checks: 30 built).Handoff update: rebased the unchanged one-line package addition onto current master. Local commit:
2e72733e0ac0d478459aa58b6d1d15c5ba4b1da9onagent/declare-bubblewrap(one commit ahead, clean; still unpushed). Directnix eval --raw .#nixosConfigurations.<machine>.config.system.build.toplevel.drvPathcomparison against master for all six public machines: onlyallod-devchanges;bitcoin-node,forge,installer,nexus, andprivacy-1are identical.allod check:All 47 steps passed (checks: 31 built).The earlier cost measurement and PR summary remain applicable; this rebase added only master’s machine-coverage check.Handoff, final: head
42481deonagent/declare-bubblewrap, rebased onto current master844099d;allod checkgreen on the rebased tree. PR body as in the previous comment.Shipped to relay: head
e26022e, one commit, same tree as42481dewith a commit body added.Landed; dev VMs declare bubblewrap, confirmed present on nix-dev after rebuild.