Use cached Go 1.26.6 from nixpkgs - #304
Merged
Merged
Conversation
This was referenced Aug 24, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Pins nixpkgs to a cached Go 1.26.6 snapshot, avoiding source compilation while keeping package and development-shell toolchains aligned.
Changes:
- Uses
go_1_26directly and updatesflake.lock. - Removes the upstream Go source override.
- Updates Nix maintenance guidance and historical test comments.
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
flake.lock |
Pins the cached Go 1.26.6 nixpkgs snapshot. |
nix/go.nix |
Selects go_1_26 without a source override. |
RELEASING.md |
Updates toolchain maintenance instructions. |
scripts/extract-nix-vendor-hash.sh |
Marks source-hash handling as historical. |
tests/e2e/extract_nix_vendor_hash.bats |
Updates historical fixture commentary. |
tests/e2e/update_nix_flake.bats |
Updates historical regression-test commentary. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
A fresh Nix store currently recompiles Go 1.26.6 because the locked
nixpkgs-unstablesnapshot only provides 1.26.5. That makes the cold diagnostic path much more expensive than it needs to be.The latest unstable snapshot still has 1.26.5, and the staging commit that introduced 1.26.6 is not substitutable. This pins the immutable Aug 22 NixOS 26.05 snapshot (
a9e6d84f9c2f9012f5fe7d964a7851352300e61a), wherego_1_26is exactly 1.26.6 and cached on both supported Linux architectures. The original input remainsnixpkgs-unstable; once unstable catches up, a normal lock update can return there.What changed
flake.lockwith Nix at the cached 1.26.6 snapshotgo_1_26directly for both the package and development shellVerification
go_1_26.version == 1.26.6hey-0.2.2-go-modules.drvandhey-0.2.2.drv; Nix fetched/nix/store/...-go-1.26.6fromcache.nixos.orghey version 0.2.2nix flake check --no-build: passedbash -n, ShellCheck, release lockstep, andgit diff --check: passedStack order
This is an independently mergeable foundation against
main. It should land before the Go 1.27 stack (#283 → #296); no history in that existing stack is rewritten by this PR.Summary by cubic
Use cached Go 1.26.6 from
nixpkgsto avoid rebuilding the toolchain on fresh Nix stores. Previously we rebuilt 1.26.6 from source becausenixpkgs-unstablehad 1.26.5; nowflake.lockpins an Aug 22 NixOS 26.05 snapshot wherego_1_26is 1.26.6 and substitutable.flake.lockto the snapshot with cachedgo_1_26 == 1.26.6on x86_64-linux and aarch64-linux.go_1_26directly for the package andnix develop; remove the source-tarball override innix/go.nix.RELEASING.mdto: whengo.modadvances past the lock, runnix flake update nixpkgsand commitflake.lock.Written for commit df0fdc8. Summary will update on new commits.