Drop the allod pm tool tree from the dev home composition #73
No reviewers
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/archetypes!73
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/remove-pm"
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?
This stops the dev-machine home composition from staging the
allod pmtool tree into the Nix store, becauseallod pmis being removed from allod/tools as a failed experiment. For a running dev machine,allod pmkeeps working with either PR merged alone; it is removed once both changes are deployed. Theallodwrapper no longer carriescheck-jsonschema(which only the pm integrity checker used) or theALLOD_TOOLS_DIRvariable. Everything else stays identical:allod change,allod patch, andallod pr explainbehave exactly as before, and non-dev machines (nexus, installer, privacy-1) do not change at all. The proof is fleet-diff over the deploy composition root, which shows only allod-dev changing, plus the archetypes per-machine gate./check.sh. If this turns out to be wrong, revert the single commit and rebuild; the wrapper regains the variable and the pm tree.On
ALLOD_TOOLS_DIRandallod pr explain: I checked before dropping the variable. Theallod prnamespace resolvespr-explain/explainby trying$ALLOD_TOOLS_DIR/pr-explain/explain, then the directory of theallodexecutable, then$WORK_DIR/allod/tools/pr-explain/explain. ThepmToolsderivation thatALLOD_TOOLS_DIRpointed at copied onlypm/into the store, so the first candidate has never existed on a dev machine andallod pr explainhas always fallen through to the live~/work/allod/toolscheckout. Removing the variable therefore leavesallod pr explainwith the same effective resolution it had; nothing pr-explain needs was pointed at by the variable, so nothing is kept.On a deployed machine, with only this PR merged, the binary still registers
pmand falls back to the live~/work/allod/toolscheckout. With only allod/tools#179 merged, the deployed binary is still built from the old tools revision with the staged tree, soallod pmkeeps working in both partial states.Merge this PR first, then allod/tools#179, then bump locks freely. This PR builds against the current tools revision (
pmpresent, unused) and any later one, so no lock can point at a broken combination. The reverse order leaves a window where advancing thearchetypes/allod-toolsnode in deploy or aflake-update-cascade allod-toolsrun makes the oldpmToolsderivation fail on the missing${allod-tools}/pm.Refs allod/tools#137
Risk
Low. One file changes, and the only removals are a derivation nothing else references, one wrapper environment variable shown above to be inert for the surviving commands, and one PATH entry only the removed tool used. The residual risk is a pr-explain caller that relied on the variable being set to some value; the code reads it only as a path prefix and treats an unset variable the same as a non-existent path.
Validation
./check.shin the branch worktree (this repository's per-machine gate, used in place ofnix flake checkbecause a whole-flake check is too memory-heavy for this VM): all 27 steps passed, covering the passive outputs, the three exported NixOS modules, all four machines (allod-dev, installer, nexus, privacy-1), and all 14 checks.nix eval --raw .#nixosConfigurations.allod-dev.config.system.build.toplevel.drvPathon the branch: succeeds and prints a store derivation path.nix-instantiate --parse modules/dev-home-shared.nix: exit 0.grep -n "pm\|ALLOD_TOOLS_DIR\|check-jsonschema" modules/dev-home-shared.nix: no matches.fleet-diff --override archetypes=62efcfa64c8eb952af497daf1caf90160ec0434dfrom~/work/allod/deploy, report-only, with the stderr receipt confirming the override movedarchetypesfrom5ebd521to62efcfa:allod-dev is the only dev machine in this composition root and is the only one expected to change (its home composition loses the pm tree, the wrapper variable, and check-jsonschema). The three others are unchanged, as expected.
allod pm: install surface, workflow cutover, retirement cleanup #137