From 375b34af6a4f9c8b2b6499e6f0ca67d510a6b36d Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Tue, 28 Jul 2026 18:33:21 +0200 Subject: [PATCH 1/2] fix(ci): stop changesets from stamping a skip-ci directive on the version commit `.changeset/config.json` had `"commit": true`, which changesets normalizes to `["@changesets/cli/commit", { skipCI: "version" }]`. That makes `changeset version` create the version commit itself, appending GitHub's skip-ci directive to the message: RELEASING: Releasing 1 package(s) Releases: react-router-devtools@6.2.2 Two consequences: 1. The `commit: "chore: release"` message configured in the Release workflow was never used, because the action had nothing left to commit. 2. The directive survived the merge of the Release PR onto main, so GitHub skipped every workflow on that push. The Release workflow -- the only thing that runs `changeset publish` -- never fired. Net effect: merging a Release PR bumped the version, wrote the CHANGELOG and consumed the changeset, but published nothing. This bit 6.2.2 (bumped in #263 on Jun 19, never reached npm; zero workflow runs recorded against that commit). It was latent before that only because an unrelated push to main happened soon after each release and picked up the publish by accident -- that is how 6.2.1 shipped. Setting `"commit": false` leaves the commit to changesets/action, which uses the workflow's `chore: release` message with no skip directive, so merging a Release PR triggers Release and publishes. Note: this message deliberately avoids spelling the directive literally, since GitHub matches it anywhere in a commit message -- an earlier draft of this very commit skipped its own CI. --- .changeset/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/config.json b/.changeset/config.json index 305f844..f2a006c 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,7 +1,7 @@ { "$schema": "https://unpkg.com/@changesets/config@3.0.2/schema.json", "changelog": "@changesets/cli/changelog", - "commit": true, + "commit": false, "fixed": [], "linked": [], "access": "public", From b81ceffafb8927b70faf47048f35983dfe246589 Mon Sep 17 00:00:00 2001 From: Alem Tuzlak Date: Tue, 28 Jul 2026 18:39:23 +0200 Subject: [PATCH 2/2] fix(ci): keep main formatted after a release version bump `changeset version` rewrites `packages/react-router-devtools/package.json` with its own JSON printer, which expands `"files": ["dist"]` onto three lines. Biome wants it collapsed, so every release commit lands a formatting violation on main, and Biome lint then fails on that commit and on every PR opened afterwards until somebody notices and collapses it by hand. It has been ping-ponging for three releases straight: a46c47f RELEASING: ... expands (release breaks it) 0263127 ci: harden release collapses (hand fix) becd7c9 RELEASING: ... expands (release breaks it again) main is currently in the expanded state, which is why the Validation Pipeline went red on the Vite 8 PR and on the first push of this branch. Chaining `biome format --write .` after `changeset version` closes the loop, so the version commit is formatted when it is created rather than after the fact. Same chain added to `local-release` so manual releases behave identically. Verified end to end with a scratch changeset: `changeset version` expands the array, the formatter collapses it back ("Fixed 1 file"), and `biome check .` passes across all 224 files. Also confirms the companion `"commit": false` change works -- changesets now reports "Review them and commit at your leisure" instead of creating its own commit. The collapse of `files` in this commit repairs main's current state. --- package.json | 4 ++-- packages/react-router-devtools/package.json | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 58bed38..10238f4 100644 --- a/package.json +++ b/package.json @@ -40,8 +40,8 @@ "check:fix": "biome check --fix .", "changeset": "changeset", "release": "changeset publish", - "local-release": "changeset version && changeset publish", - "version": "changeset version", + "local-release": "changeset version && biome format --write . && changeset publish", + "version": "changeset version && biome format --write .", "test:unused": "knip", "test:deps": "sherif -i react-router-devtools -i tailwindcss -p react-router-v8-vite", "watch": "pnpm run build:all && nx watch --all -- pnpm run build:all" diff --git a/packages/react-router-devtools/package.json b/packages/react-router-devtools/package.json index e250882..d287cfd 100644 --- a/packages/react-router-devtools/package.json +++ b/packages/react-router-devtools/package.json @@ -55,9 +55,7 @@ "default": "./dist/server.js" } }, - "files": [ - "dist" - ], + "files": ["dist"], "repository": { "type": "git", "url": "git+https://github.com/code-forge-io/react-router-devtools.git"