Restore devenv shell entry under the devenv 2.1.2 CLI #26
Loading…
Reference in a new issue
No description provided.
Delete branch "agent/devenv-shell-git-hooks-pin"
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?
devenv shellin this repo stopped working, and this restores it. Nothing about the Rust toolchain moves:rustcis still 1.86.0 and the MSRV pins inroles/Cargo.lockare untouched, becausenixpkgs,rust-overlayand thedevenvmodules all keep their current revisions. Two lines of cause: the fleet's move tonixos-26.05bumped thedevenvCLI from 1.11.1 to 2.1.2, and the new CLI stopped tolerating two things this repo had been getting away with. First, it no longer silently adds thegit-hooksinput that the pinneddevenvmodules demand, and it deletes that input fromdevenv.lockon every run, which is why the lock kept showing up modified. Second, two tasks declared ordering against process tasks that thisdevenvversion does not define at all; the old CLI warned and carried on, the new one stops. What proves it:devenv shellnow reaches a prompt withrustc1.86.0 andgcc14.2.1, anddevenv.lockis byte-identical across three consecutive runs instead of being rewritten each time. If this is wrong, revert the commit — it touches onlydevenv.yaml,devenv.nixanddevenv.lock, and nothing outside the dev shell reads them.One thing worth knowing, not changed here: those process-task dependencies never resolved, so
create:dirsandbuild:cdk:clihave had no trigger at all. Log and database directory creation and thecdk-clibuild have not been running ahead ofdevenv up. Rewiring them is a follow-up.Refs vnprc/hashpool#25
What changed
devenv.yamldeclares agit-hooksinput pinned to80479b6ec16fefd9c1db3ea13aeb038c60530f46, the revision the committed lock already carried.devenv.nixloses thebeforelists fromtasks."create:dirs"andtasks."build:cdk:cli".devenv.lockrecords the now-explicit input; its only other movement isflake-compatresolving from the pinnedgit-hooksrevision's own lock rather than the revision the old CLI injected, which no evaluated path here uses.Why not simply update
devenv updatenixpkgs, movingrustcoff 1.86.0 and breaking the MSRV pinsdevenv update devenvalonenixpkgs; modules then definedevenv:processes:*, but theirgit-hooks.nixneedscspell, absent from the pinned May-2025devenv-nixpkgsgit-hookspinned backerror: infinite recursionatsrc/modules/integrations/git-hooks.nix:22Staying pinned is the only one of the four that works without moving the toolchain. Syncing the whole stack is a deliberate, separately validated piece of work, not a side effect of repairing shell entry.
Risk
R1. The change touches three dev-shell files and no runtime, provisioning, secret or persistent state;
.devenv/stateis untouched, so the regtest chain and the wallet and mint databases are unaffected. The witness is immediate and was executed rather than reasoned about: the shell either enters or it does not. Rollback is a straight revert of one commit.Validation
devenv shellenters and reportsrustc 1.86.0andgcc (GCC) 14.2.1.devenv.lockhas the same MD5 after each of three consecutivedevenv shellruns, confirming the drift is gone.devenv tasks listshowscreate:dirsandbuild:cdk:clipresent, and shows nodevenv:processes:*task, which is the direct evidence that the removed dependencies were dead rather than merely reordered.nixpkgs,rust-overlayordevenvrevision.Not run:
cargo checkonprotocols/, because a fresh worktree has noprotocols/Cargo.lockand hits the knowntime0.3.55 MSRV resolution noted in the issue about that lock, which is unrelated to shell entry.