Commit cee8b01
authored
fix(ci): unbreak the release pipeline (unpublished versions + main going red) (#267)
* 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
<skip-ci directive>
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.
* 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.1 parent becd7c9 commit cee8b01
3 files changed
Lines changed: 4 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
| 43 | + | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
| 58 | + | |
61 | 59 | | |
62 | 60 | | |
63 | 61 | | |
| |||
0 commit comments