Hold Dockerfile majors, and document the Renovate setup in CLAUDE.md - #51
Merged
Merged
Conversation
Resolves #45 and #46, the two open Renovate follow-ups that could be closed without waiting on anything external. #45 - src/WebApp/Dockerfile's two base images were covered by no rule, so their fate was Renovate's defaults rather than a decision. Applies the same call already made for Microsoft.ApplicationInsights.AspNetCore: majors off (WebApp is not deployed, so a .NET major is not worth the review), patches ON, because base images carry OS-level security fixes even when the service is unhosted. Matched by manager rather than path - there is exactly one Dockerfile, confirmed from the job log, and a path guess that stops matching after a move would fail silently. #46 - CLAUDE.md and README had zero mentions of dependency automation while eight packageRules were actively shaping what can be upgraded. Adds a section covering the weekly schedule, that nothing automerges and why, that holds exist and carry their own reasoning, and that the dependency dashboard is the live inventory. Also records the silent failure mode: with "Require config file" enabled, an unparseable config on the default branch makes Renovate do nothing quietly. Validated with renovate-config-validator against the staged blob. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DN9nGF1Q8fvbZv1W74JkJ6
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.
Closes #45 and #46 - the two Renovate follow-ups that could be finished without waiting on anything external.
#45 - Dockerfile base images
src/WebApp/Dockerfilehas two images that no rule covered, so Renovate's defaults were deciding for us:mcr.microsoft.com/dotnet/sdk:10.0(line 1, build stage)mcr.microsoft.com/dotnet/runtime-deps:10.0-alpine(line 10, runtime stage)Applies the precedent already set for
Microsoft.ApplicationInsights.AspNetCore: majors off, patches on. WebApp is not deployed, so a .NET major here is not worth a review - but base images accumulate OS-level CVEs whether or not the service is hosted, and10.0/10.0-alpineare floating tags whose digests move on their own. Keeping patch/minor live is what lets a rebuild pick those up. The two rules now cross-reference each other so they stay consistent.Matched with
matchManagers: ["dockerfile"]rather than amatchFileNamespath. There is exactly one Dockerfile in the repo, confirmed from the job log:A path guess that silently stopped matching after a file move is exactly the failure the config warns about elsewhere.
One thing recorded in the comment rather than fixed:
global.jsonnow pins the SDK to 10.0.302, while this Dockerfile tracks whatever10.0resolves to. Those can drift apart silently, and Renovate will never flag it, because a floating tag is never "out of date". Worth knowing if the container build ever diverges from CI.#46 - document it in CLAUDE.md
Verified by grep that CLAUDE.md and README mentioned Renovate exactly zero times, while eight
packageRuleswere actively shaping what can be upgraded. Someone hitting a hold would experience it as the bot mysteriously not proposing an upgrade, with no pointer to the reasoning.New "Dependency automation" section covering the weekly schedule, that nothing automerges and why, that holds exist and carry their reasons, that the dependency dashboard is the live inventory, and the tracking-issue convention.
The part most worth keeping is the silent failure mode: with "Require config file" enabled, an absent or unparseable config on the default branch makes Renovate do nothing at all, quietly - indistinguishable from "no updates available". Plus the two adjacent traps: only one config file may exist (a second is an error, not an override, and the validator cannot catch it), and narrowing matchers with a guess fails silently.
Verification
Validated against the staged blob rather than the working tree. Also confirmed no em/en dashes in either file, per the repo convention.
🤖 Generated with Claude Code
https://claude.ai/code/session_01DN9nGF1Q8fvbZv1W74JkJ6