You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+22-8Lines changed: 22 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,17 +43,31 @@ Every successful build (JS + DTS) replaces the consumer's `dist/`, so refreshing
43
43
## CI / releases
44
44
45
45
-`.github/workflows/test.yaml` runs on every PR and push to `main`: `format:check`, `typecheck`, `build`, and a `npm pack --dry-run` to verify publishability.
46
-
-`.github/workflows/release.yaml`triggers on `v*` tags. Verifies the tag matches `package.json`, builds, and publishes to npm via OIDC trusted publishing (`--provenance`). Hyphenated tags like `v0.2.0-beta.1` are marked as GitHub prereleases.
46
+
-`.github/workflows/release.yaml`runs on every push to `main` and is driven by [Changesets](https://github.com/changesets/changesets). Either opens/updates a "Version Packages" PR, or — when that PR is merged — publishes to npm via OIDC trusted publishing.
47
47
48
-
To cut a release:
48
+
Bun is pinned to `1.2.21` in both workflows (and in `packageManager` at the root) so lockfile-format drift across bun majors doesn't silently break CI.
49
49
50
-
```bash
51
-
# Bump the version in packages/managed-auth-react/package.json on main, then:
52
-
git tag v0.2.0
53
-
git push origin v0.2.0
54
-
```
50
+
### Cutting a release
55
51
56
-
Bun is pinned to `1.2.21` in both workflows (and in `packageManager` at the root) so lockfile-format drift across bun majors doesn't silently break CI.
52
+
The release flow is fully PR-driven — no direct `package.json` edits, no manual `git tag`, no main-branch bypasses.
53
+
54
+
1.**In any PR that changes published behavior**, add a changeset:
55
+
56
+
```bash
57
+
bun run changeset
58
+
```
59
+
60
+
The CLI asks which packages changed and which bump (patch / minor / major), then writes a `.changeset/<random>.md` file describing the change. Commit it alongside your code.
61
+
62
+
Skip the changeset for tooling/infra/docs PRs that don't affect what consumers see.
63
+
64
+
2.**Merge your PR to `main`.** The Changesets bot runs and either:
65
+
- Opens (or updates) a single **"chore: version packages"** PR that bumps `package.json` versions, regenerates `CHANGELOG.md`, and deletes the consumed changeset files. Multiple feature PRs accumulate into the same Version PR.
66
+
- If no pending changesets exist (i.e. the Version PR was just merged), runs `bun run release` which builds the package and calls `changeset publish` → `npm publish` for every version not yet on the registry, then tags + creates the GitHub release.
67
+
68
+
3.**To ship**, review and merge the open Version PR. The next workflow run publishes.
69
+
70
+
That's it. The git tag, npm publish, and GitHub release are all created by the bot on Version-PR merge.
0 commit comments