Pin the prettier toolchain #3

Merged
mars3142 merged 1 commits from chore/prettier-toolchain-reformat into main 2026-07-28 18:41:00 +00:00
Owner

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:

- 'RENOVATE_ALLOWED_COMMANDS=["^npm run format --if-present$"]'

🤖 Generated with Claude Code

https://claude.ai/code/session_011ghd74zZHdKuvt9pv7Z7Hk

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
mars3142 added 1 commit 2026-07-28 18:40:39 +00:00
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>
mars3142 force-pushed chore/prettier-toolchain-reformat from 1b8251e324 to 4f360565ec 2026-07-28 18:40:39 +00:00 Compare
mars3142 changed title from Pin the prettier toolchain and reformat on upgrade to Pin the prettier toolchain 2026-07-28 18:40:53 +00:00
mars3142 merged commit 4f360565ec into main 2026-07-28 18:41:00 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mars3142/renovate-config#3