Please see the contribution docs specific to each package:
This project uses Changeset in CI to handle releases.
In order to clarify the git history:
- When contributing to
next
, use squash commits. - When releasing
latest
, use merge commits.
The Changeset bot will create a PR (or update its existing PR) when changes are
merged into the next
branch. Do a squash commit of its PR into the next
branch to release to the next
tag.
To release all changes in next
to latest
:
- Create a branch
release/latest
based onnext
- Merge
origin
’slatest
intorelease/latest
- Check the git logs for where
next
was branched fromlatest
to ensurenext
isn’t missing any important changes. If there are none, you can resolve conflicts automatically withgit merge -s recursive -X ours origin/latest
. - Otherwise, resolve merge conflicts manually.
- Check the git logs for where
- Run
pnpm changeset pre exit
and commit & push its change to.changeset
. - Create a PR to merge
release/latest
intolatest
- When tests pass and visual regressions are resolved, do a merge commit to close the PR instead of a squash.
- The Changeset bot will create a PR into
latest
that finalizes the release’s version numbers and updates changelogs; to release to NPM, close the PR with another merge commit. - Immediately create a branch based on
next
calledmerge/latest
. - Merge the final released changes to
latest
intomerge/latest
. - Run
pnpm changeset pre enter next
and commit & push its change to.changeset
. - Create a PR to merge
merge/latest
intonext
and use a squash commit, as usual, to close the PR. - You don’t have to release the result of this change, the
next
branch should just always have.changeset/pre.json
.