chore(renovate): refresh config with explicit grouping + soak rules#16
Merged
Conversation
Switch `renovate.json5` to an explicit, self-contained config so the Renovate run on this repo can resolve all its preset references. Same effective policy as before, just expressed locally: - SHA-pinned GitHub Actions with `pinDigests: true` - 3-day `minimumReleaseAge` soak on Python deps + GHA - OSV vulnerability alerts (security PRs never batched) - Per-ecosystem grouping (`backend-non-major`, `gha-non-major`) - Major updates isolated to one PR per dep (`groupName: null`) - Lockfile-maintenance bundled into one PR per cycle - `prConcurrentLimit: 4` + `prHourlyLimit: 4` + Monday-only schedule File renamed `renovate.json` → `renovate.json5` so override rationale can live as inline comments. The old file is deleted in this commit (renovate.json has higher precedence than .json5 in Renovate's lookup). Adds the `renovate-config-validator` pre-commit hook to `.pre-commit-config.yaml` so config changes are gated by the existing `pre-commit run` step in CI.
4 tasks
mattwang44
previously approved these changes
May 19, 2026
Agent-Logs-Url: https://github.com/hardcoretech/missing/sessions/1f14650f-f58f-4643-8765-1ae4785c55b0 Co-authored-by: mattwang44 <24987826+mattwang44@users.noreply.github.com>
mattwang44
approved these changes
May 20, 2026
CJHwong
approved these changes
May 20, 2026
Final Merge Review (Official Score)
SummaryThis PR upgrades the Renovate dependency management configuration from a minimal
The change is primarily a DevOps/tooling improvement — hardening the dependency update pipeline with thoughtful security and operational controls. ScoringS (Scope): 5/20
A (Architecture): 4/20
I (Implementation): 6/20
R (Risk): 3/20
Q (Quality): 7/15
P (Performance/Security): 3/5
Base Score Calculation
Effort Scale Assessment
Base Tier (Lines): 94 lines → Small (0.4x) Final Score28 × 0.4 = 11.2 → 11 Code Quality Data (JSON){
"_schema": "code_quality_v5",
"total_score": 11,
"total_factors": "28 × 0.4 (Small ESF) = 11.2 → 11",
"scope_score": 5,
"scope_factors": "3 files in CI/tooling layer only; no new APIs or user-facing behavior; contained within dependency management subsystem",
"architecture_score": 4,
"architecture_factors": "Adds renovate-config-validator pre-commit gate; JSON→JSON5 format migration with structural improvements; follows existing CI patterns; no new service dependencies",
"implementation_score": 6,
"implementation_factors": "Demonstrates solid Renovate domain knowledge: intentional groupName:null for CVE/major isolation, internalChecksFilter:strict, osvVulnerabilityAlerts, dual poetry+pep621 manager coverage; well-commented non-obvious decisions; not algorithmically complex",
"risk_score": 3,
"risk_factors": "Config-only change, easily reversible; no data migrations, no auth changes, no production code paths; Python 3.8→3.9 bump in lint workflow is minor",
"quality_score": 7,
"quality_factors": "Inline documentation explains why decisions were made; renovate-config-validator provides automated self-validation; no formal tests but config nature doesn't warrant them; good but not exceptional documentation rigor",
"perf_security_score": 3,
"perf_security_factors": "osvVulnerabilityAlerts:true; SHA pinning for GHA supply-chain security; 3-day soak window; CVE PRs intentionally unbatched for security isolation"
} |
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.
Summary
Switch
renovate.json5to an explicit, self-contained config. Resolves theCannot find preset's packagevalidation error that was blocking Renovate from opening PRs on this repo.Same effective policy as before, just expressed locally:
pinDigests: trueminimumReleaseAgesoak on Python deps + GHAbackend-non-major,gha-non-major)groupName: null)prConcurrentLimit: 4+prHourlyLimit: 4+ Monday-only scheduleFile renamed
renovate.json→renovate.json5so override rationale can live as inline comments. Old file deleted in the same commit (renovate.jsonhas higher Renovate lookup precedence).No behaviour change for the deps Renovate would have opened anyway — this just makes the run actually succeed.
Test plan
renovate-config-validator --strict --no-global renovate.json5passes locally (Node 24 + renovate@43, LOG_LEVEL=warn, exit 0)pre-commitruns the same gate on PR + pushPost-merge verification
Will confirm after merge:
backend-non-major/gha-non-major