ci(release): patch bumps by default while packages are 0.x

Merged
OK
12d ago
+122-5

Every feature changeset bumped minor, so e2e went 0.3 -> 0.21 in six weeks. On 0.x, minor is the breaking slot, so this makes patch the default.

  • New scripts/check-changeset-bumps.ts (in pnpm check and spec.yml) fails on a 0.x minor unless the summary opens with **Breaking:** or **Release:**, and on a 0.x major unless it opens with **Release:**, since 1.0.0 falls outside every >=x <1 peer range. Parsing uses @changesets/parse.
  • AGENTS.md, CONTRIBUTING.md, and the ship-pr skill tell agents to use patch for features and never to pick minor on their own.
  • No pending changesets to convert: #1095 released them as 0.21.0. The next feature release is 0.21.1.
  • Users benefit too: e2e init writes ^0.21.0 (packages/e2e/src/cli/init/versions.ts:26), which on 0.x takes patches only, so today a project never gets a feature release without editing package.json.
---
"e2e": minor
---

**Breaking:** `cache.dir` is removed, use `E2E_CACHE_DIR` or `--cache-dir`.

Verified

Ran it locally: yes

  • pnpm check:changeset-bumps on the 9 minors pending before #1095: exit 1, one line per file. Rewritten as patches: changeset bumps: 27 pending, none an unannounced 0.x minor or major.
  • Scratch changesets: major + **Breaking:** and a plain minor both fail with the right message; an empty ---\n--- changeset passes.
  • pnpm test:scripts passes, including the new scripts/changeset-bumps.test.ts.