Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .changeset/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,18 @@ one with:
pnpm change --bump <none|patch|minor|major> --summary "<changelog entry>" [<pkg>...]
```

- A pull request that changes a publishable package's path ships an intent
here; the changeset check fails without one.
- A pull request whose head moves a publishable package's turbo `build` hash
from the base ships an intent naming that package (`release.jsonc` `gate`);
the changeset check fails without one. Files outside the package can move
that hash too, for example `turbo.json`'s `build` task or `globalEnv`, or the
root `package.json`'s dependencies. Such a pull request names the package,
with `none` when its tarball does not change.
- `none` records a change that needs no release. A `none` on a change a
consumer can see is the silent non-release the check exists to catch.
- `@systemfsoftware/api-extractor` is at 0.0.0 and the tag
`@systemfsoftware/api-extractor@v0.0.0` exists. While both hold, a pull
request that changes `packages/api-extractor` ships a non-`none` intent for
it, because a `none` on a change to its tarball makes Release refuse with
request that changes its tarball ships a non-`none` intent for it, because a
`none` on a change to its tarball makes Release refuse with
`tag-integrity-mismatch`. The tag is deleted only in the change that moves
the version off 0.0.0.
- The release PR consumes pending intents with `pnpm version -r`, writes each
Expand Down
6 changes: 3 additions & 3 deletions release.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"versioning": {
"strategy": "changesets",
},
// A change under a package's directory needs an intent naming it. The turbo
// gate dry-runs turbo at the base, which a base without turbo.json refuses.
"gate": { "strategy": "paths" },
// A pull request whose head moves a publishable package's turbo `build` hash
// away from the base ships an intent naming that package.
"gate": { "strategy": "turbo", "task": "build" },
}
Loading