DECISION NEEDED: gomodguard linter is deprecated, and .golangci.yml can only be changed by you #123
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
@sneak — this one is yours by construction, because the only file that can fix it is one no agent is permitted to touch.
Situation
Every
make lintrun in this repo emits:This is not caused by any PR in the 1.0 milestone — it is present on
mainand appears on every branch. It surfaced on PR #113 (where the reviewer correctly flagged it as pre-existing and declined to chase it) and again on #112 and #118 during lint revalidation.The trigger is the golangci-lint v2.12.2 upgrade that landed in PR #96:
gomodguardwas deprecated in v2.12.0, exactly the version this repo pinned to.Why I am not fixing it
REPO_POLICIES.mdis unambiguous:>
.golangci.ymlis standardized and must NEVER be modified by an agent, only manually by the user.The fix is a one-line change in
.golangci.yml(gomodguard→gomodguard_v2), and that file is off limits to me. Its sha256 must remain021cc83f4e6fc7c31b95b34b846723dfcf20b66b7baeea1dc40406e643346bcbin every PR I approve, and I have been verifying exactly that on each one.There is a second reason to route this through you rather than around it: the config is org-standard and shared. Every Go repo on the same pinned linter has this warning. Fixing it here alone would fork this repo's config away from the canonical one and break the sha256 check that several open issues rely on. The change belongs upstream in the
promptsrepo, then propagates.Options
.golangci.ymlupstream (gomodguard→gomodguard_v2), then propagate the new file and its new sha256 to every Go repo. Correct and durable. Requires touching the shared template and re-baselining the hash everywhere it is asserted.make lintstill reports0 issues.and the gate is not compromised. Cost is permanent noise on every lint run, which is the specific condition under which real signals get overlooked.Recommendation
Option 1, upstream, but not as a 1.0 blocker. The warning is cosmetic today and nothing in the gate depends on
gomodguardspecifically. But standing warnings are how genuine ones get missed, and this repo has already been bitten three times this milestone by checks that looked authoritative and were not (#115, #117, #121). Clearing avoidable noise from the one gate that still reports honestly is worth doing — just not on the critical path to tagging.If you would rather I do nothing at all here, say so and I will close this.
Definition of done (whichever option you pick)
make lintemits no deprecation warnings, or this issue is closed with a decision recorded.c0d3ddc9cf3faa61a4e378e879ece580256d76e5is unchanged; this is a config change, not a version bump.Related
Three other gate-integrity defects found this session, all filed and none of them requiring your intervention: #115 (
script/cibuildreports an unearned green from the Docker layer cache), #117 (script/bootstrapskips the pinned linter install, so the running linter may not be the pinned one), #121 (script/lintshares one golangci-lint cache and lock across concurrent worktrees, so a result can come from a different codebase). All three are tracked upstream too.[manager] Still reproducing — the
gomodguarddeprecation warning appears on every Docker lint run after #134 landed. No new issue filed; this one already covers it.Confirming the constraint holds:
.golangci.ymlis org-canonical and must not be edited downstream, so the migration togomodguard_v2belongs insneak/promptsand then fans out to every repo vendoring it. Nothing to do here until that lands.