Skip to content

ci: migrate the release pipeline to Changesets - #585

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

chybisov merged 23 commits into
mainfrom
ci/changesets-migration

Conversation

@chybisov

@chybisov chybisov commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Which Linear task is linked to this PR?

Part of EXBE-617

Why was it implemented this way?

Moves releases from standard-version to Changesets with the same setup as lifinance/sdk (without the Linear sync). The workflow and the preview action are the SDK files, adapted for one package.

  • 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; @lifi/* is exempt from the 24-hour release-age rule.
  • CHANGELOG.md keeps its history; only the standard-version intro line is removed (a one-time migration edit — from now on only the Version PR writes CHANGELOG.md and version).
  • Claude: /changeset command, changeset and release skills, CLAUDE.md. Removed the stray launchJob and the build-output check in prepublishOnly (CI always builds before publishing).

Differences from the SDK: one package (package.json instead of packages/*), no pre mode, the preview publishes with the same changeset:publish script as a real release, the Version job also requires main, and checkouts do not persist the token.

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. So anyone with write access can publish from a branch — the same as the old tag flow and the SDK. Hardening options: a protected GitHub environment bound in the npm trusted-publisher settings, and branch rules that require the check status.

After merge: add a changeset (pnpm changeset or /changeset) to every PR that changes the published package. No changeset → no release.

Part 2 of 2 (part 1: #584).

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 added the release-preview Publish a 0.0.0-preview-<sha> build of this PR to npm label Sep 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📦 Preview published under the preview dist-tag.

Install the exact version — @preview moves with the newest preview across PRs:

npm i @lifi/types@0.0.0-preview-97f0520

@github-actions github-actions Bot removed the release-preview Publish a 0.0.0-preview-<sha> build of this PR to npm label Sep 23, 2026
@chybisov
chybisov marked this pull request as ready for review September 23, 2026 13:37
@changeset-bot

changeset-bot Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 247c8fb

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

@chybisov chybisov added the release-preview Publish a 0.0.0-preview-<sha> build of this PR to npm label Sep 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📦 Preview published under the preview dist-tag.

Install the exact version(s) — @preview moves with the newest preview across PRs:

npm i @lifi/types@0.0.0-preview-e7e3988

@github-actions github-actions Bot removed the release-preview Publish a 0.0.0-preview-<sha> build of this PR to npm label Sep 23, 2026
@chybisov
chybisov merged commit 8f673b4 into main Sep 24, 2026
4 checks passed
@chybisov
chybisov deleted the ci/changesets-migration branch September 24, 2026 10:57
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