Changelogs and releases are managed using changesets
.
We have a GitHub Action that leverages changesets/action
to handle the release process.
Upon merging PRs with a changeset entry, it shall create a "Version Packages" PR (example) that shall contain any changeset changes since the last release.
To perform a release:
- Find the currently open "Version Packages" PR
- Merge the PR by waiting for CI to complete and then choosing
Squash and merge
.
The Release
action shall run on the merge commit on the main
branch, and shall publish the npm packages and create a GitHub tag and release for each package that is referenced in the PR. You can find the action log by looking at the release commit status on the merge commit.
Snapshot releases publish the state of a single PR. This lets you rapidly test a PR in a consuming project without dealing with yalc
and its occasional weirdness.
To perform a snapshot release:
- Ensure your PR contains at least one changeset entry.
- Comment
/snapit
on your PR.
The Snapit
action shall run, and shall publish a new version of the packages in your PR's changeset entry with the snapshot
dist tag. On sucessful publication a comment shall be posted in the issue detailing the published packages and details on how to use them in your consuming project.
This functionality is only available in PRs that point to a branch in the Shopify/quilt
repository - PRs from forks are not supported.