Files
renovate-config/default.json
Peter SiegmundandClaude Opus 5 4f360565ec Pin the prettier toolchain
Prettier's output depends on its version. When prettier-plugin-tailwindcss
went from 0.8.0 to 0.8.1 it started sorting class names differently, and all
27 Svelte files in hamer/website silently drifted out of format. The bump
arrived through lockFileMaintenance, which only touches the lock file, so
package.json never showed it.

rangeStrategy: pin writes the exact version into package.json. Lock file
maintenance can no longer move it unseen, and every bump is visible in the
diff.

The reformatting itself is already handled by the npm-wide postUpgradeTasks
rule, so this only adds the pinning and the grouping. The group is not
automerged: when the bot lacks the command allowlist the reformatting is
skipped silently, and an unattended merge would bring the drift straight
back.

The README documents both rules and the RENOVATE_ALLOWED_COMMANDS value the
self-hosted bot needs, which was not written down anywhere yet.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ghd74zZHdKuvt9pv7Z7Hk
Signed-off-by: Peter Siegmund <peter.siegmund@entwicklung.eq-3.de>
2026-07-28 20:40:35 +02:00

92 lines
3.1 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended", ":dependencyDashboard"],
"timezone": "Europe/Berlin",
"schedule": ["* 0-6 * * 1"],
"prConcurrentLimit": 5,
"minimumReleaseAge": "3 days",
"internalChecksFilter": "strict",
"platformAutomerge": true,
"osvVulnerabilityAlerts": true,
"vulnerabilityAlerts": {
"minimumReleaseAge": null,
"schedule": ["at any time"],
"automerge": true
},
"lockFileMaintenance": {
"enabled": true,
"schedule": ["* 0-6 * * 1"],
"automerge": true
},
"packageRules": [
{
"description": "Nach npm-Updates Prettier laufen lassen: Formatierungs-Bumps (z.B. prettier selbst) formatieren bestehende Dateien um, sonst schlaegt prettier --check in der CI fehl. --if-present no-op't in Repos ohne format-Script. Benoetigt allowedCommands in der self-hosted Renovate-Config.",
"matchManagers": ["npm"],
"postUpgradeTasks": {
"commands": ["npm run format --if-present"],
"fileFilters": ["**/*"],
"executionMode": "branch"
}
},
{
"description": "npm devDependencies (non-major) gesammelt, automerge bei gruener CI",
"matchManagers": ["npm"],
"matchDepTypes": ["devDependencies"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "devDependencies (non-major)",
"automerge": true
},
{
"description": "CI actions gesammelt, automerge bei gruener CI",
"matchManagers": ["github-actions"],
"groupName": "CI actions",
"automerge": true
},
{
"description": "Storybook nur gemeinsam updaten, sonst brechen die peer deps (ERESOLVE)",
"matchPackageNames": [
"storybook",
"@storybook/**",
"@chromatic-com/storybook",
"eslint-plugin-storybook"
],
"groupName": "storybook"
},
{
"description": "Svelte- und Frontend-Toolchain zusammen, ohne automerge",
"matchPackageNames": [
"svelte",
"@sveltejs/**",
"svelte-check",
"vite",
"tailwindcss",
"@tailwindcss/**"
],
"groupName": "svelte + build toolchain"
},
{
"description": "Spring Boot und Kotlin zusammen, ohne automerge",
"matchPackageNames": [
"org.springframework.boot**",
"org.springframework.modulith**",
"io.spring.dependency-management**",
"org.jetbrains.kotlin**"
],
"groupName": "spring + kotlin"
},
{
"description": "Prettier und seine Plugins exakt pinnen. Die Formatierung haengt an der Version: kommt der Sprung ueber lockFileMaintenance, aendert sich die Ausgabe, ohne dass package.json es zeigt - genau so sind in hamer/website 27 Dateien unbemerkt abgedriftet. Das Nachformatieren erledigt die npm-Regel weiter oben.",
"matchManagers": ["npm"],
"matchPackageNames": ["prettier", "prettier-plugin-**"],
"groupName": "prettier toolchain",
"rangeStrategy": "pin",
"automerge": false
},
{
"description": "Major-Updates nur nach Freigabe im Dependency Dashboard",
"matchUpdateTypes": ["major"],
"dependencyDashboardApproval": true
}
]
}