Repository navigation
ci(renovate): force chore(deps) commits and add area/dependencies label - #3015
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughRenovate now uses ChangesDependency Label Automation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
NOT LGTM — the area/dependencies label wiring and the kubevirt.io/csi-driver disable are correct, but the headline change does not actually force chore(deps) for direct dependencies, so the kind/bug labeling this PR targets is not resolved.
Business context: make Renovate PRs land as chore(deps) with an area/dependencies label so dependency bumps stop being labeled kind/bug and area/uncategorized.
Blocker
- The top-level
semanticCommitType: "chore"is overridden back tofixfor direct Go modules, so their PRs stayfix(deps): …and the labeler still applieskind/bug.
config:recommended (extended here) pulls in the :semanticPrefixFixDepsChoreOthers preset, which contributes a packageRule { "matchDepTypes": ["dependencies", "require"], "semanticCommitType": "fix" }. In Renovate, packageRules override top-level config, so this rule wins over the new top-level setting. The gomod manager assigns depType require to direct dependencies (and indirect to indirect ones), so direct-dep PRs resolve to fix, not chore.
I resolved this exact config with Renovate and applied the rules to a synthetic gomod dependency: a direct (require) dep resolves to semanticCommitType=fix, and only an indirect dep resolves to chore. Direct dependencies are the dominant Renovate PR type, so the kind/bug pollution described in the PR body is not fixed.
Evidence: .github/renovate.json:4 (config:recommended in extends) and .github/renovate.json:10-11 (top-level semanticCommitType / semanticCommitScope).
Fix: force the type with a rule that wins over the preset — either add :semanticCommitTypeAll(chore) to extends, or append a user packageRule (user rules are evaluated last), for example { "matchManagers": ["gomod"], "semanticCommitType": "chore", "semanticCommitScope": "deps" }. semanticCommitScope already resolves to deps, so the area/dependencies mapping is unaffected either way.
Not blocking
The rest is correct and the fix above is localized to the commit type:
- The
area/dependencieslabel and thedeps → area/dependencieslabeler mapping are consistent.semanticCommitScoperesolves todepsfor every Renovate PR (whether the type ends upfixorchore), so the scope-to-area mapping clearsarea/uncategorizedregardless of the blocker. Evidence:.github/workflows/pr-labeler.yaml:49,.github/labels.yml:173-175. - Disabling
kubevirt.io/csi-driveris valid and does not collide with thek8s.io/**group rule, sincekubevirt.io/…does not match that glob. Evidence:.github/renovate.json:28-33. - JSON parses, the label-schema validation passes, and the label-sync workflow creates the new label on merge to
main.
|
Aleksei Sviridkin (@lexfrei) good catch — confirmed and fixed in 64405e6. You're right that Went with the user-packageRule approach (scoped to |
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
NOT LGTM — the chore(deps) override is now correct, but the branch is stale against main and would drop the Dockerfile / GitHub Actions digest-pinning that has since landed; rebase and reconcile before merge.
Prior blocker — resolved. The earlier issue (top-level semanticCommitType: chore overridden back to fix for direct Go modules by the :semanticPrefixFixDepsChoreOthers rule from config:recommended) is fixed: the new user packageRule forces semanticCommitType=chore / semanticCommitScope=deps for matchManagers: ["gomod"], and since user packageRules evaluate after preset rules, last-match-wins lands on chore for direct (require) deps too. renovate-config-validator passes and the JSON is valid. The area/dependencies label exists in .github/labels.yml and the labeler maps deps → area/dependencies, so the scope-to-area wiring is intact.
New blocker — stale branch / config regression. main now sets "enabledManagers": ["gomod", "dockerfile", "github-actions"] and carries a packageRule pinning Dockerfile and GitHub Actions to immutable digests — both landed after this branch forked. This branch still has "enabledManagers": ["gomod"] and lacks that rule, so the PR is in a conflicting, unmergeable state, and merging it as-is (taking the branch side of the conflict) would disable the dockerfile/github-actions managers and drop the digest-pinning — a regression of config already on main. Please rebase onto main, keep enabledManagers: ["gomod", "dockerfile", "github-actions"] and the pinDigests rule, and add the new gomod chore rule on top (it's gomod-scoped, so it doesn't affect the Dockerfile/Actions rules).
64405e6 to
c6bfde1
Compare
Renovate's :semanticCommits preset picks fix(deps) for stable (>=1.0) production modules and chore(deps) for 0.x modules, so routine bumps landed inconsistently — fix(deps) bumps were auto-labeled kind/bug, polluting the bug list. Pin semanticCommitType to chore (and the scope to deps) so every dependency PR is chore(deps): … and maps to kind/cleanup. The PR auto-labeler had no deps -> area/* mapping, so every Renovate PR fell through to area/uncategorized. Add an area/dependencies label and map the deps scope to it. Also disable Renovate for kubevirt.io/csi-driver: it is pinned to an untagged pseudo-version with no release tags, producing a permanent no-result lookup failure on the Dependency Dashboard. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Myasnikov Daniil <[email protected]>
…Rule The top-level semanticCommitType=chore did not actually take effect for direct dependencies. config:recommended extends :semanticPrefixFixDepsChoreOthers, whose packageRule re-sets semanticCommitType=fix for depTypes [dependencies, require]. Renovate packageRules override top-level config, and the gomod manager assigns depType "require" to direct deps — so direct-dep PRs (the dominant type) still resolved to fix(deps) and were auto-labeled kind/bug, the exact pollution this PR set out to remove. Add a user packageRule (evaluated last, so it wins over the preset rule) that forces semanticCommitType=chore / scope=deps for the gomod manager. The top-level keys are now redundant but kept for readability. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]> Signed-off-by: Myasnikov Daniil <[email protected]>
c6bfde1 to
9f1819c
Compare
|
Aleksei Sviridkin (@lexfrei) Rebased onto the current The config regression you flagged is gone: |
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
LGTM — Renovate now emits chore(deps) consistently and the new area/dependencies label is wired through both the label catalog and the auto-labeler.
Verified:
- Premise holds: pr-labeler maps
fix → kind/bugandchore → kind/cleanup, so today's fix(deps) Renovate PRs do land as kind/bug. Forcing chore(deps) lands them as kind/cleanup instead. - The extra gomod packageRule is necessary, not redundant: the config extends
config:recommended, which pulls in:semanticPrefixFixDepsChoreOthers(re-sets semanticCommitType=fix for direct production deps). A user packageRule evaluated after the preset is required to win it back; the top-level chore alone would not. - renovate.json is valid JSON; labels.yml + pr-labeler.yaml are extended in lockstep per the area/* convention.
Non-blocking:
- Disabling Renovate for kubevirt.io/csi-driver removes it from automated bump/security tracking; acceptable since it is commit-pinned and advanced manually with the image build (already noted in the rule description).
What
Make Renovate PRs land with consistent, conventional labels and clear a recurring Dependency Dashboard warning.
Why
Renovate's
:semanticCommitspreset picksfix(deps)for stable (>=1.0) production modules andchore(deps)for0.xmodules. The result:fix(deps)bumps were auto-labeledkind/bugby the PR auto-labeler → routine dependency updates polluted the bug list.deps → area/*mapping, so every Renovate PR fell through toarea/uncategorized.kubevirt.io/csi-driveris pinned to an untagged pseudo-version (v0.0.0-2026…) with no release tags, producing a permanentno-resultlookup failure on the Dependency Dashboard.Changes
.github/renovate.jsonsemanticCommitType: chore+semanticCommitScope: deps→ every dependency PR is nowchore(deps): …(maps tokind/cleanup, no more boguskind/bug).kubevirt.io/csi-driver(commit-pinned, unbumpable) to clear the dashboard lookup warning..github/labels.yml— addarea/dependencies(justified: 25+ dependency PRs queued, well over the 3-issue threshold for a new area)..github/workflows/pr-labeler.yaml— map scopedeps → area/dependencies.Result
Future Renovate PRs:
chore(deps): …→automated+kind/cleanup+area/dependencies+do-not-merge/hold.Notes
renovate.json/labels.ymltake effect once merged; the labeler change applies to PRs opened or edited after merge.sigs.k8s.io/yamllookup warning on the dashboard is left untouched — it's a normal module and reads as a transient datasource hiccup, not a config issue.🤖 Generated with Claude Code
Summary by CodeRabbit
area/dependencieslabel to consistently tag dependency-related pull requests.depsscopes toarea/dependencies.chore(deps), including special handling for Go module updates, and disabled Renovate updates for thekubevirt.io/csi-driverGo module.