Package Go flake-update-cascade on development machines #72

Merged
vnprc merged 1 commit from agent/go-cascade-cutover into master 2026-09-08 21:43:50 +01:00
Member

After a human rebuild, development machines run the Go flake-update-cascade with packaged Git and Go Forge; Nix still comes from the system.
The command interface and other tool wrappers stay the same, and the Bash source remains available for rollback.
The generated package builds and runs, the dev system evaluates, and all other package derivations match when evaluated with identical inputs.
If the cutover is wrong, revert this PR and rebuild.
The last-good allod-tools revision is 536c8b387d0b7ba253a3fb7b399aa09bc92b5c6f.

Risk

R3: this switches a tool that updates, commits, and pushes across repositories. The allod-tools input advances only from 536c8b387d0b7ba253a3fb7b399aa09bc92b5c6f to merged Go port cf09348cf3382f09a9100e0dfeb33aa0afabcb45. The existing Forge derivation moves to a let binding so the installed command and cascade wrapper share the same package. The cascade wrapper adds only Git and Forge to PATH; it no longer adds jq or util-linux.

The companion host switch is allod/nexus#41. This PR does not advance the nexus input. After both cutovers merge, downstream locks must select both new consumer revisions before human rebuilds and live verification on a dev VM and nexus. No rebuild or live workspace cascade has been performed. Bash retirement remains blocked until those witnesses pass.

Validation

  • Built the actual modules/dev-home-shared.nix cascade derivation with this flake's locked nixpkgs and allod-tools inputs (nix build --impure --file /tmp/cascade-archetypes-package.nix --no-link --print-out-paths).
  • Inspected the generated wrapper: PATH adds only the pinned Git and Go Forge packages; its wrapped executable has an ELF header. The generated command's --help passes, as does allod-tools --dry-run --pr against an empty disposable workspace with a clean environment and system PATH.
  • Evaluated the old and new modules with identical new inputs and asserted every non-cascade package derivation path is identical. Confirmed the Bash rollback file exists in the selected tools source.
  • Evaluated nixosConfigurations.allod-dev.config.home-manager.users and confirmed the generated home package selects exactly the built cascade derivation. nix eval --raw .#nixosConfigurations.allod-dev.config.system.build.toplevel.drvPath passes, forcing the system assertions without rebuilding.
  • git diff --check passes. Only the direct allod-tools lock node changes. Existing warnings about a nexus input override, Neovim defaults, and SSH option deprecation remain; no whole-flake check or system build was run for this focused package switch.

Refs allod/tools#159

After a human rebuild, development machines run the Go flake-update-cascade with packaged Git and Go Forge; Nix still comes from the system. The command interface and other tool wrappers stay the same, and the Bash source remains available for rollback. The generated package builds and runs, the dev system evaluates, and all other package derivations match when evaluated with identical inputs. If the cutover is wrong, revert this PR and rebuild. The last-good allod-tools revision is 536c8b387d0b7ba253a3fb7b399aa09bc92b5c6f. ## Risk R3: this switches a tool that updates, commits, and pushes across repositories. The allod-tools input advances only from `536c8b387d0b7ba253a3fb7b399aa09bc92b5c6f` to merged Go port `cf09348cf3382f09a9100e0dfeb33aa0afabcb45`. The existing Forge derivation moves to a let binding so the installed command and cascade wrapper share the same package. The cascade wrapper adds only Git and Forge to PATH; it no longer adds jq or util-linux. The companion host switch is allod/nexus#41. This PR does not advance the nexus input. After both cutovers merge, downstream locks must select both new consumer revisions before human rebuilds and live verification on a dev VM and nexus. No rebuild or live workspace cascade has been performed. Bash retirement remains blocked until those witnesses pass. ## Validation - Built the actual `modules/dev-home-shared.nix` cascade derivation with this flake's locked nixpkgs and allod-tools inputs (`nix build --impure --file /tmp/cascade-archetypes-package.nix --no-link --print-out-paths`). - Inspected the generated wrapper: PATH adds only the pinned Git and Go Forge packages; its wrapped executable has an ELF header. The generated command's `--help` passes, as does `allod-tools --dry-run --pr` against an empty disposable workspace with a clean environment and system PATH. - Evaluated the old and new modules with identical new inputs and asserted every non-cascade package derivation path is identical. Confirmed the Bash rollback file exists in the selected tools source. - Evaluated `nixosConfigurations.allod-dev.config.home-manager.users` and confirmed the generated home package selects exactly the built cascade derivation. `nix eval --raw .#nixosConfigurations.allod-dev.config.system.build.toplevel.drvPath` passes, forcing the system assertions without rebuilding. - `git diff --check` passes. Only the direct allod-tools lock node changes. Existing warnings about a nexus input override, Neovim defaults, and SSH option deprecation remain; no whole-flake check or system build was run for this focused package switch. Refs allod/tools#159
vnprc approved these changes 2026-09-08 21:43:32 +01:00
vnprc merged commit 1baf68c75c into master 2026-09-08 21:43:50 +01:00
vnprc deleted branch agent/go-cascade-cutover 2026-09-08 21:43:50 +01:00
Sign in to join this conversation.
No description provided.