chore(config): reduce renovate commit frequency to weekly

Consolidates dependency updates to reduce noise:
- Schedule changed to weekly (Monday mornings only)
- All non-major updates grouped into single weekly PR
- Major updates still get individual PRs for review
- Security updates remain immediate (unchanged)

This reduces commit frequency from 10-15/week to ~1-2/week while
maintaining test requirements and security responsiveness.
This commit is contained in:
Ryan Walters
2025-11-05 23:26:28 -06:00
parent b50e575946
commit 71ddaadaa0

52
.github/renovate.json vendored
View File

@@ -7,7 +7,7 @@
":automergeDigest", ":automergeDigest",
":automergeMinor" ":automergeMinor"
], ],
"schedule": ["after 10pm every weekday", "before 5am every weekday", "every weekend"], "schedule": ["before 5am on monday"],
"timezone": "America/Chicago", "timezone": "America/Chicago",
"prConcurrentLimit": 3, "prConcurrentLimit": 3,
"prCreation": "not-pending", "prCreation": "not-pending",
@@ -20,61 +20,23 @@
}, },
"packageRules": [ "packageRules": [
{ {
"description": "Automerge dev dependencies", "description": "Group all non-major dependency updates together",
"matchDepTypes": ["devDependencies"], "groupName": "all non-major dependencies",
"matchUpdateTypes": ["minor", "patch", "digest"],
"automerge": true, "automerge": true,
"automergeType": "pr", "automergeType": "pr",
"minimumReleaseAge": "3 days" "minimumReleaseAge": "3 days"
}, },
{ {
"description": "Automerge TypeScript type packages", "description": "Major updates get individual PRs for review",
"automerge": true, "matchUpdateTypes": ["major"],
"automergeType": "pr", "automerge": false,
"matchPackageNames": ["/^@types//"]
},
{
"description": "Group ESLint packages together",
"groupName": "eslint packages",
"automerge": true,
"matchPackageNames": ["/^eslint/", "/^@typescript-eslint//"]
},
{
"description": "Group testing packages together",
"groupName": "testing packages",
"automerge": true,
"matchPackageNames": ["/^vitest/", "/^@vitest//", "/^@testing-library//"]
},
{
"description": "Group Next.js related packages",
"matchPackageNames": ["next", "eslint-config-next"],
"groupName": "Next.js packages",
"minimumReleaseAge": "7 days"
},
{
"description": "Group React packages",
"matchPackageNames": ["react", "react-dom", "@types/react", "@types/react-dom"],
"groupName": "React packages",
"minimumReleaseAge": "7 days" "minimumReleaseAge": "7 days"
}, },
{ {
"description": "Pin Node.js major versions", "description": "Pin Node.js major versions",
"matchPackageNames": ["node"], "matchPackageNames": ["node"],
"enabled": false "enabled": false
},
{
"description": "Group Tailwind CSS packages",
"groupName": "Tailwind CSS packages",
"matchPackageNames": [
"/^tailwindcss/",
"/^@tailwindcss//",
"/prettier-plugin-tailwindcss/"
]
},
{
"description": "Group font packages",
"groupName": "font packages",
"automerge": true,
"matchPackageNames": ["/^@fontsource/"]
} }
], ],
"postUpdateOptions": ["pnpmDedupe"], "postUpdateOptions": ["pnpmDedupe"],