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>
92 lines
3.1 KiB
JSON
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
|
|
}
|
|
]
|
|
}
|