Ursprünglich enthielt dieser PR auch postUpgradeTasks — das war doppelte Arbeit. PR #1 macht das bereits, und besser: npm run format --if-present ist in Repos ohne Format-Skript ein No-op, während mein npx prettier --write . überall Prettier nachgeladen hätte. Der Teil ist raus, übrig bleibt das Pinning.
Warum Pinning
prettier-plugin-tailwindcss sprang von 0.8.0 auf 0.8.1 und sortiert seither Klassennamen anders — aus text-muted-foreground text-center wird text-center text-muted-foreground. In hamer/website galten damit alle 27 Svelte-Dateien als unformatiert.
Der Sprung kam über lockFileMaintenance, das nur das Lockfile anfasst. package.json sagte weiterhin "prettier": "^3.8.1" — im Review war die Ursache unsichtbar. Aufgefallen ist es erst Wochen später in einem völlig unbeteiligten Feature-PR.
rangeStrategy: "pin" schreibt die exakte Version in die package.json. Damit kann Lockfile-Maintenance sie nicht mehr unbemerkt verschieben.
Kein Automerge für diese Gruppe
Fehlt die Kommando-Freigabe im Bot, überspringt Renovate postUpgradeTasksstillschweigend. Ein unbeaufsichtigter Merge würde dann genau die Drift wieder einschleppen. Solange RENOVATE_ALLOWED_COMMANDS nicht gesetzt ist, schaut hier lieber ein Mensch drauf — danach kann man das gern umstellen.
README
Weder PR #1 noch das bestehende README erwähnten postUpgradeTasks oder die nötige Bot-Freigabe. Beides ist jetzt dokumentiert, inklusive des zu setzenden Werts:
- 'RENOVATE_ALLOWED_COMMANDS=["^npm run format --if-present$"]'
Ergänzt PR #1 um den Teil, den er nicht abdeckt.
**Ursprünglich enthielt dieser PR auch `postUpgradeTasks` — das war doppelte Arbeit.** PR #1 macht das bereits, und besser: `npm run format --if-present` ist in Repos ohne Format-Skript ein No-op, während mein `npx prettier --write .` überall Prettier nachgeladen hätte. Der Teil ist raus, übrig bleibt das Pinning.
## Warum Pinning
`prettier-plugin-tailwindcss` sprang von 0.8.0 auf 0.8.1 und sortiert seither Klassennamen anders — aus `text-muted-foreground text-center` wird `text-center text-muted-foreground`. In `hamer/website` galten damit alle 27 Svelte-Dateien als unformatiert.
Der Sprung kam über `lockFileMaintenance`, das nur das Lockfile anfasst. `package.json` sagte weiterhin `"prettier": "^3.8.1"` — im Review war die Ursache unsichtbar. Aufgefallen ist es erst Wochen später in einem völlig unbeteiligten Feature-PR.
`rangeStrategy: "pin"` schreibt die exakte Version in die `package.json`. Damit kann Lockfile-Maintenance sie nicht mehr unbemerkt verschieben.
## Kein Automerge für diese Gruppe
Fehlt die Kommando-Freigabe im Bot, überspringt Renovate `postUpgradeTasks` **stillschweigend**. Ein unbeaufsichtigter Merge würde dann genau die Drift wieder einschleppen. Solange `RENOVATE_ALLOWED_COMMANDS` nicht gesetzt ist, schaut hier lieber ein Mensch drauf — danach kann man das gern umstellen.
## README
Weder PR #1 noch das bestehende README erwähnten `postUpgradeTasks` oder die nötige Bot-Freigabe. Beides ist jetzt dokumentiert, inklusive des zu setzenden Werts:
```yaml
- 'RENOVATE_ALLOWED_COMMANDS=["^npm run format --if-present$"]'
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_011ghd74zZHdKuvt9pv7Z7Hk
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>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ergänzt PR #1 um den Teil, den er nicht abdeckt.
Ursprünglich enthielt dieser PR auch
postUpgradeTasks— das war doppelte Arbeit. PR #1 macht das bereits, und besser:npm run format --if-presentist in Repos ohne Format-Skript ein No-op, während meinnpx prettier --write .überall Prettier nachgeladen hätte. Der Teil ist raus, übrig bleibt das Pinning.Warum Pinning
prettier-plugin-tailwindcsssprang von 0.8.0 auf 0.8.1 und sortiert seither Klassennamen anders — austext-muted-foreground text-centerwirdtext-center text-muted-foreground. Inhamer/websitegalten damit alle 27 Svelte-Dateien als unformatiert.Der Sprung kam über
lockFileMaintenance, das nur das Lockfile anfasst.package.jsonsagte weiterhin"prettier": "^3.8.1"— im Review war die Ursache unsichtbar. Aufgefallen ist es erst Wochen später in einem völlig unbeteiligten Feature-PR.rangeStrategy: "pin"schreibt die exakte Version in diepackage.json. Damit kann Lockfile-Maintenance sie nicht mehr unbemerkt verschieben.Kein Automerge für diese Gruppe
Fehlt die Kommando-Freigabe im Bot, überspringt Renovate
postUpgradeTasksstillschweigend. Ein unbeaufsichtigter Merge würde dann genau die Drift wieder einschleppen. SolangeRENOVATE_ALLOWED_COMMANDSnicht gesetzt ist, schaut hier lieber ein Mensch drauf — danach kann man das gern umstellen.README
Weder PR #1 noch das bestehende README erwähnten
postUpgradeTasksoder die nötige Bot-Freigabe. Beides ist jetzt dokumentiert, inklusive des zu setzenden Werts:🤖 Generated with Claude Code
https://claude.ai/code/session_011ghd74zZHdKuvt9pv7Z7Hk
1b8251e324to4f360565ecPin the prettier toolchain and reformat on upgradeto Pin the prettier toolchain