Skip to content

ci: migrate the release pipeline to Changesets - #278

Merged
chybisov merged 39 commits into
mainfrom
ci/changesets-migration
Sep 24, 2026
Merged

chybisov merged 39 commits into
mainfrom
ci/changesets-migration

Conversation

@chybisov

@chybisov chybisov commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Which Linear task is linked to this PR?

Part of EXBE-617

Stacked on #277. Review #277 first; this PR's diff is only the release migration. After #277 merges, this PR is rebased onto main.

Why was it implemented this way?

Moves releases from standard-version to Changesets with the same setup as lifinance/types (lifinance/types#585) and lifinance/sdk (without the Linear sync). publish.yaml and the preview action are the types files with the repository name changed.

  • publish.yaml (same file name, so npm trusted publishing keeps working): push to main → Verify (tests.yaml) → chore: version packages PR → publish with provenance, vX.Y.Z tag and GitHub Release. Version/Release run only on main.
  • Previews: the release-preview label publishes 0.0.0-preview-<sha> to the preview dist-tag and comments the install command. The alpha/beta flow retires.
  • pnpm 12: settings moved from .npmrc to pnpm-workspace.yaml. allowBuilds keeps the pnpm 10 behaviour for bufferutil, esbuild and utf-8-validate (no native builds; pnpm 12 fails otherwise). @lifi/* is exempt from the 24-hour release-age rule, so a fresh @lifi/types can be pinned right away.
  • CHANGELOG.md keeps its history (a one-time migration edit): the standard-version intro line is removed, and the old entries go under ## Older releases (standard-version). Without that ## heading, the first GitHub Release would also show the old ### patch entries (7.1.3, 7.1.2, 7.1.1), because Changesets takes the notes up to the next ## heading.
  • Claude: /changeset command, changeset and release skills (with data-types bump rules), CLAUDE.md. New PR template (from types) with a changeset checkbox.

Behaviour change: data PRs with chore: titles used to be released anyway. From now on a PR is released only if it carries a changeset — add a patch changeset to data fixes.

Security note (follow-up, not in this PR): npm trusted publishing is bound only to the file name publish.yaml, and the preview job runs PR code with id-token: write — the same trust model as the old tag flow and the SDK.

Part 2 of 2.

Checklist before requesting a review

  • I have performed a self-review and testing of my code.
  • This pull request is focused and addresses a single problem.
  • I added a changeset (pnpm changeset), or this PR does not change the published package.

@chybisov
chybisov requested a review from melianessa September 24, 2026 10:07
@changeset-bot

changeset-bot Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2e5c562

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Base automatically changed from chore/oxc-ts7-toolchain to main September 24, 2026 10:58
@chybisov
chybisov merged commit 6227486 into main Sep 24, 2026
4 checks passed
@chybisov
chybisov deleted the ci/changesets-migration branch September 24, 2026 11:02
@chybisov chybisov mentioned this pull request Sep 24, 2026
3 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants