Skip to content

chore: switch release flow to Changesets#32

Merged
ignsm merged 4 commits into
mainfrom
chore/changesets
May 10, 2026
Merged

chore: switch release flow to Changesets#32
ignsm merged 4 commits into
mainfrom
chore/changesets

Conversation

@ignsm
Copy link
Copy Markdown
Owner

@ignsm ignsm commented May 10, 2026

Replaces the manual ## Unreleased section in root CHANGELOG.md with Changesets. Each PR that touches a published package now drops a .changeset/*.md file; pnpm version consumes them into per-package CHANGELOGs and bumps versions; pnpm release builds and publishes.

Why: parallel PRs no longer collide on the Unreleased section (today every concurrent feature branch had to rebase the same lines), and releases stop being a manual ritual of editing CHANGELOG.md + bumping every package.json by hand.

What's in the PR

  • Install + configure Changesets (pnpm add -Dw @changesets/cli + pnpm changeset init).
  • Config:
    • fixed: [["@formhaus/core", "@formhaus/react", "@formhaus/vue"]] — these three keep matching versions, as they have historically.
    • ignore: ["@formhaus/figma"] — Figma plugin isn't on npm.
    • access: "public" — npm scope is @formhaus/*, needs explicit public access.
  • Mark @formhaus/figma as private: true — it isn't published to npm (per README, install as local Figma plugin). lint:packages and check:types already excluded it. Adding the field makes that explicit and prevents pnpm publish from ever picking it up.
  • Root package.json scripts: pnpm changeset (record), pnpm version (apply), pnpm release (build + publish).
  • Root CHANGELOG.md: replaced Unreleased with a one-screen note pointing to per-package CHANGELOGs and Releases. Historical entries preserved verbatim.
  • CONTRIBUTING.md: updated step 5 from "add a Unreleased entry" to "run pnpm changeset". Added a Changesets section explaining the flow.
  • Three seed changesets for the work already merged to main but not yet released:
    • .changeset/ssr-server-snapshot.md — patch on @formhaus/react
    • .changeset/datetime-field-type.md — minor on core/react/vue
    • .changeset/autocomplete-field-type.md — minor on core/react/vue

Verifying

pnpm changeset status shows the next release will bump core/react/vue from 0.3.1 to 0.4.0 (minor wins over patch).

When you're ready to cut the release:

pnpm version    # writes CHANGELOGs, bumps package.jsons, deletes .changeset/*.md
git add . && git commit -m "chore: release v0.4.0"
pnpm release    # builds + npm publish

(Or set up a Changesets release GitHub Action later — happy to add if you want.)

Verifying tests

pnpm install --frozen-lockfile, pnpm -r run build, pnpm -r run test all green (179 tests: 136 core + 22 react + 12 vue + 15 figma).

@vercel
Copy link
Copy Markdown

vercel Bot commented May 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
formhaus Ready Ready Preview, Comment May 10, 2026 2:22pm

Request Review

@ignsm ignsm merged commit dff2017 into main May 10, 2026
8 checks passed
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.

1 participant