docs(repo): design — Renovate-manage the Go analysis battery pins (RIG-3306) - #908
Draft
rigel-mintaka wants to merge 4 commits into
Draft
docs(repo): design — Renovate-manage the Go analysis battery pins (RIG-3306)#908rigel-mintaka wants to merge 4 commits into
rigel-mintaka wants to merge 4 commits into
Conversation
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
Compass engineering docs preview: https://dependencies-rig-3306-go-ana.compass-eng-docs.pages.dev Deployed from Changed pages: |
…G-3306) Design record for RIG-3306: bring the two hand-maintained Go analysis pins in `tools/toolchain/versions/go-analysis.nix` (nilaway git-rev, golangci-lint release tag) under Renovate so they cannot silently rot. Ships as its own PR per the design workflow; the merge freezes the contract and implementation follows as a separate stack. ## What it decides - **Two customManagers** in `tools/renovate/config.json5` — golangci-lint (github-releases) + nilaway (git-refs digest), with `depType: "go-analysis"` deliberately dodging the toolchain cooldown exemption so golangci-lint keeps the 5-day soak. - **A new dedicated `tools/renovate/refresh-go-analysis-hashes.ts`** (option b) — the pins carry BOTH a fetchFromGitHub `src` hash and a `vendorHash`, which neither existing refresher handles; the new script reuses the proven fake -> realise -> parse-`got:` mechanism via helpers imported from `refresh-fod-hashes.ts`. - **An `analysis` output on `tools/toolchain/gate-tools.nix`** as the build vehicle, so the refresher realises the same derivation CI checks. - Solo-branching (existing un-group rule), the bot-config allowlist entry, and the nilaway cooldown-null packageRule. Four right-sized tasks (T1–T4), each with `Interfaces:` and its own red-green test cycle. ## Review posture Drafted by a `design` subagent, red-teamed by a `design-critic` subagent; its findings are folded into the record (F1 authenticate the nilaway version-date API call; F2 the slice -> rewrite -> splice contract that keeps a golangci-lint bump from touching nilaway's hashes; F7 the test-resolver extension + the exit-1 observable surface; F5 phrasing). The core choices — option-b refresher, two-pass got: ordering, the depType dodge, and OQ-2 cooldown-null — survived the red-team, verified against the live files. ## Open Questions One load-bearing question remains for Matt (**OQ-2**: null the 5-day cooldown for the nilaway git-refs digest — recommendation: yes, since a timestamp-less digest under strict `internalChecksFilter` is marked permanently pending and cuts zero PRs, the exact silent-rot this issue fixes). Routed to Matt as a Linear issue (compass mobile-data mode, no `ask`); folded as a Decision before the merge-freeze. OQ-1/OQ-3/OQ-4 are non-load-bearing deferrals recorded in the record. Ledger-impact: none — Draft design record; DL rows are appended to docs/designs/DECISIONS.md at freeze once Matt ratifies (mirrors the sibling docs/designs/repo/compass-renovate-migration.md Draft record). Refs RIG-3306 Co-authored-by: Matt Wilkinson <matt@rigel.build>
…face, fragment/eviction guards (RIG-3306 review R1)
rigel-mintaka
force-pushed
the
dependencies/rig-3306-go-analysis-renovate-design
branch
from
September 6, 2026 00:12
bd3a633 to
329e2ed
Compare
…te, git-fixture test (RIG-3306 review R2)
…-seam subprocess boundary (RIG-3306 review R3)
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.
Design record for RIG-3306: bring the two hand-maintained Go analysis pins in
tools/toolchain/versions/go-analysis.nix(nilaway git-rev, golangci-lint release tag) under Renovate so they cannot silently rot. Ships as its own PR per the design workflow; the merge freezes the contract and implementation follows as a separate stack.What it decides
tools/renovate/config.json5— golangci-lint (github-releases) + nilaway (git-refs digest), withdepType: "go-analysis"deliberately dodging the toolchain cooldown exemption so golangci-lint keeps the 5-day soak.tools/renovate/refresh-go-analysis-hashes.ts(option b) — the pins carry BOTH a fetchFromGitHubsrchash and avendorHash, which neither existing refresher handles; the new script reuses the proven fake -> realise -> parse-got:mechanism via helpers imported fromrefresh-fod-hashes.ts.analysisoutput ontools/toolchain/gate-tools.nixas the build vehicle, so the refresher realises the same derivation CI checks.Four right-sized tasks (T1–T4), each with
Interfaces:and its own red-green test cycle.Review posture
Drafted by a
designsubagent, red-teamed by adesign-criticsubagent; its findings are folded into the record (F1 authenticate the nilaway version-date API call; F2 the slice -> rewrite -> splice contract that keeps a golangci-lint bump from touching nilaway's hashes; F7 the test-resolver extension + the exit-1 observable surface; F5 phrasing). The core choices — option-b refresher, two-pass got: ordering, the depType dodge, and OQ-2 cooldown-null — survived the red-team, verified against the live files.Open Questions
One load-bearing question remains for Matt (OQ-2: null the 5-day cooldown for the nilaway git-refs digest — recommendation: yes, since a timestamp-less digest under strict
internalChecksFilteris marked permanently pending and cuts zero PRs, the exact silent-rot this issue fixes). Routed to Matt as a Linear issue (compass mobile-data mode, noask); folded as a Decision before the merge-freeze. OQ-1/OQ-3/OQ-4 are non-load-bearing deferrals recorded in the record.Ledger-impact: none — Draft design record; DL rows are appended to docs/designs/DECISIONS.md at freeze once Matt ratifies (mirrors the sibling docs/designs/repo/compass-renovate-migration.md Draft record).
Refs RIG-3306
Co-authored-by: Matt Wilkinson matt@rigel.build