Skip to content

build(nix): use cached upstream Go in CI self-test flakes - #51

Merged
flemzord merged 1 commit into
mainfrom
build/use-cached-upstream-go
Oct 27, 2026
Merged

flemzord merged 1 commit into
mainfrom
build/use-cached-upstream-go

Conversation

@flemzord

Copy link
Copy Markdown
Member

The root and standalone fixture shells import a Go compiler recipe into an older package set, which prevents reuse of the published compiler cache. Select upstream stable go_1_27 and its matching buildGo127Module through a dedicated nixpkgs-go input at 1f607aa79b6356ed45d3cd3c8079c196e79efa2c (Go 1.27.3). Build the retained golangci-lint 2.15.0 recipe with that package set; stable's linter is only 2.12.2. Keep GOTOOLCHAIN=local.

Every pre-existing lock node stays unchanged in both flakes. The fixture's Go 1.23.0 language minimum, source, Just recipes and self-test workflow are unchanged. No mockgen or additional compiler helpers exist in this repository. No documentation describes the removed workaround.

Validation

  • Both flakes parse with nix-instantiate --parse; nix flake metadata --no-write-lock-file succeeds for both. Stable lock metadata exactly matches the verified input in dst #23 and the stable locked metadata in go-libs #720, following ledger #2391.
  • With import-from-derivation disabled, both full shell derivations evaluate on x86_64-linux, aarch64-linux and aarch64-darwin. Go is 1.27.3, lint is 2.15.0, and both the module builder and linter select the exact upstream compiler path.
  • Stable Go, builder and retained lint recipe also evaluate independently on x86_64-darwin. Full-shell evaluation there fails because the unchanged unstable input dropped Intel macOS; the exact base reproduces the same error. All four declared systems remain unchanged.
  • All four upstream compiler store paths return HTTP 200 narinfo responses from cache.nixos.org. No compiler or linter was realized.
  • Lightweight static checks pass: every pre-existing lock node is preserved, root/fixture flakes and locks remain identical, compiler recipe imports/overrides are removed, whitespace is clean, and fixture source/module/Justfile plus self-test workflow blob hashes match the exact base.

Draft pending hosted qualification. No local Go executable is available, so fixture just pre-commit and just tests were not run. Full builds, lint, race/coverage suites and container setup were not run under the shared-host resource limit. The retained linter may still require its own build. CI has not been polled.

Created with gpt-6.1-sol in T3 Code through the Codex harness.

@NumaryBot NumaryBot added risk: medium NumaryBot classified this pull request as medium risk. bot-reviewed NumaryBot completed its review workflow for the current head. draft-reviewed NumaryBot reviewed this draft, but published no readiness signal. labels Oct 27, 2026
@flemzord
flemzord marked this pull request as ready for review October 27, 2026 14:33
@flemzord
flemzord merged commit 6ac9c0e into main Oct 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot-reviewed NumaryBot completed its review workflow for the current head. draft-reviewed NumaryBot reviewed this draft, but published no readiness signal. risk: medium NumaryBot classified this pull request as medium risk.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants