chore(ci): adopt Changesets for releases#2
Conversation
Replaces the manual "bump package.json + git tag + push" flow with a fully PR-driven Changesets pipeline. Eliminates the recurring issues we hit on the first few releases: - No more manual version edits → no more bun-vs-prettier array-format churn breaking format:check - No more direct main-branch pushes / ruleset bypasses for releases - No more "tag pushed before package.json bumped" foot-guns - Auto-generated CHANGELOG.md with PR links via @changesets/changelog-github - Monorepo-aware out of the box (private demo workspace ignored) New flow: 1. PR with code change → also adds .changeset/<random>.md (`bun run changeset`) 2. PR merged to main → bot opens/updates a "chore: version packages" PR 3. Merge the version PR → bot publishes via OIDC + tags + GitHub release Also added .prettierignore for **/package.json so prettier stops fighting bun and changesets-cli over array formatting. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Firetiger deploy monitoring skipped This PR didn't match the auto-monitor filter configured on your GitHub connection:
Reason: This PR modifies CI/release tooling (Changesets configuration) with no changes to API endpoints or Temporal workflows, which are the specific monitoring targets. To monitor this PR anyway, reply with |
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ba27171. Configure here.
| "format:check": "prettier --check \"**/*.{ts,tsx,js,json,md,css}\"", | ||
| "changeset": "changeset", | ||
| "version-packages": "changeset version", | ||
| "release": "bun run --filter '@onkernel/managed-auth-react' build && cp LICENSE packages/managed-auth-react/LICENSE && changeset publish" |
There was a problem hiding this comment.
Missing @changesets/cli and changelog devDependencies break releases
High Severity
The changeset, version-packages, and release scripts all invoke the changeset CLI, and .changeset/config.json references @changesets/changelog-github, but neither @changesets/cli nor @changesets/changelog-github appear in devDependencies (or anywhere in bun.lock). The changesets/action GitHub Action resolves the CLI via require.resolve() from the project's node_modules, so it will fail at runtime. Both packages need to be added to root devDependencies.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit ba27171. Configure here.


Summary
Replaces the manual "bump
package.json+git tag+git push" flow with a fully PR-driven Changesets pipeline.Why
We hit four separate friction points on the first few releases (alpha.0 through v0.1.0):
npm publishrequires--tagfor hyphenated versions — added a workflow branch.--provenancerequires a public GitHub repo and ours isinternal.package.jsonformatting (bun and prettier disagree about array wrapping) →format:checkwould fail on the next PR.All of that goes away with Changesets — releases follow the normal PR + status-check + approval flow like any other change.
New flow
bun run changesetand commit the resulting.changeset/<random>.md. Skip for tooling/docs PRs.main. The bot opens (or updates) a "chore: version packages" PR with bumps + auto-generatedCHANGELOG.md.No more manual
git tag, nopackage.jsonedits, no admin-only bypasses to release.Notable choices
@changesets/changelog-githubso CHANGELOG entries link back to PRs/commits.access: publicin the changesets config (was the defaultrestricted)..prettierignorefor**/package.jsonso prettier stops fighting bun + changesets over array formatting — that single setting kills the recurring format churn.--provenancestill intentionally omitted (repo isinternal); flip on when the repo goes public.Adoption note
This PR itself does NOT include a
.changeset/*.mdbecause it's a CI/tooling change with no published-package impact. The bot will sit idle after merge until the next code-change PR includes a changeset.Test plan
bun run typecheckclean (both packages)bun run --filter '@onkernel/managed-auth-react' buildcleanbun run format:checkcleantestworkflow passes (auto)Releaseworkflow runs and exits cleanly with no Version PR opened (because no pending changesets)Made with Cursor
Note
Medium Risk
Changes the production release pipeline from tag-triggered manual publishing to a Changesets bot workflow on every
mainpush, which could affect publish timing/behavior if misconfigured. No runtime/library code changes, but incorrect CI config could block releases or publish unexpected versions.Overview
Migrates releases to a Changesets-driven workflow:
release.yamlnow runs on pushes tomainand useschangesets/actionto either open/update a single "chore: version packages" PR (version bumps +CHANGELOG.md) or, when no pending changesets remain, runbun run releaseto build and publish via OIDC.Adds Changesets configuration (
.changeset/config.json+ README) and new root scripts (changeset,version-packages,release) including the build+LICENSE copy+changeset publishpublish step. Also adds.prettierignoreto excludepackage.json/lock/build/changelog files from Prettier to avoid format churn, and updates the README to document the new PR-driven release process.Reviewed by Cursor Bugbot for commit ba27171. Bugbot is set up for automated code reviews on this repo. Configure here.