Skip to content

chore(renovate): document every rule, drop the inert digest gate - #1174

Merged
batmac merged 1 commit into
mainfrom
renovate-document-config
Aug 22, 2026
Merged

chore(renovate): document every rule, drop the inert digest gate#1174
batmac merged 1 commit into
mainfrom
renovate-document-config

Conversation

@batmac

@batmac batmac commented Aug 22, 2026

Copy link
Copy Markdown
Owner

The config had grown to seven packageRules with a single description between them. That's the real maintenance cost of a config like this — not its length, but that nobody can tell which rules are load-bearing and which are fossils, so nothing ever gets deleted.

Added a top-level description stating the policy in five lines (weekly batches, automerge on green, majors gated on the dashboard #10, 7-day release age, digest pinning), plus a description on every rule. Three of them genuinely read as mistakes without one:

  • "enabled": true on the indirect rule looks like a no-op — Renovate skips indirect Go deps unless told otherwise, so it's required.
  • The majors rule carries both automerge and dependencyDashboardApproval, which looks contradictory until you know that ticking the dashboard box is the approval.
  • The github-actions majors rule deliberately bypasses that gate.

Removed the gomod digest rule:

{ "matchManagers": ["gomod"], "digest": { "dependencyDashboardApproval": true } }

It used a nested update-type object that never took effect — the golang.org/x/exp digest branch was created without the update ever appearing under Pending Approval on #10 — and it contradicted the automerge rule above it. Pseudo-version bumps now ride the same test matrix and 7-day age gate as every other dep.

No other behaviour change. The diff is description strings plus that one deletion. Validated with renovate-config-validator v44.39 (the hosted app's version) and v40.62.1 (the version pinned in .pre-commit-config.yaml).

🤖 Generated with Claude Code

The config had grown to seven packageRules with a single description
between them, so there was no way to tell which rules were load-bearing
and which were fossils. Rules nobody dares delete are how a config only
ever grows.

Add a top-level description stating the policy (weekly batches,
automerge on green, majors gated on the dashboard, 7-day release age,
digest pinning), and a description on every rule. Some genuinely read as
mistakes without one: "enabled": true on the indirect rule looks like a
no-op but is required, and the majors rule carrying both automerge and
dependencyDashboardApproval looks contradictory until you know that
ticking the box is the approval.

Drop the gomod digest rule. It used a nested updateType object that
never took effect (the x/exp digest branch was created without ever
appearing under Pending Approval) and it contradicted the automerge rule
above it. Pseudo-version bumps now ride the same test matrix and 7-day
gate as everything else.

No other behaviour change: the diff is descriptions plus that deletion.
Validated with renovate-config-validator v44.39 (the hosted app) and
v40.62.1 (the version pinned in .pre-commit-config.yaml).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@batmac
batmac enabled auto-merge (squash) August 22, 2026 22:19
@batmac
batmac merged commit 09e9e24 into main Aug 22, 2026
23 of 24 checks passed
@batmac
batmac deleted the renovate-document-config branch August 22, 2026 22:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant