-
The
shopify-app-js
repo useschangesets
to track and update the respectiveCHANGELOG.md
files within the packages. -
When creating a PR, the author should run the
yarn changeset
command, answer the relevant questions (i.e., what packages does this PR update, is it major/minor/patch, what is the change description), and then commit the new file created in the.changeset
directory. These files are used by the workflows to construct theCHANGELOG.md
entries.Note If the change is very small and doesn't warrant a changelog entry, run
yarn changeset --empty
and commit the resultant file in the.changeset
directory. -
When the PR is merged into the
main
branch, themain-release.yml
workflow uses thechangesets/action
to either create or update an existing PR that has the titleVersion Packages
. This PR tracks all the changes currently being made against themain
branch since the last release.
-
Checkout the
changeset-release/main
branchgit checkout changeset-release/main
-
If the
@shopify/shopify-app-express
package is being updated as part of the release (see theReleases
section of the main comment in theVersion Packages
PR)- Update the version string in the
packages/shopify-app-express/src/version.ts
file to match the version in thepackages/shopify-app-express/package.json
file.
- Update the version string in the
-
While the branch is checked out, edit/remove any of the comments in the changed
CHANGELOG.md
files and commit them to thechangeset-release/main
branch. -
Once the files in the PR reflect the desired release changes, merge the
Version Packages
PR intomain
- this triggers the release. -
The same
changesets/action
in themain-release.yml
workflow will callyarn release
, which builds the packages and pushes the changed packages tonpmjs.org
.
For significant changes that could result in significant refactoring on the part of developers, consider releasing a few Release Candidate versions in advance of the final version.
Warning
These changes must be made against the
next
branch, so that the appropriate workflows can run (next-release.yml
).
Warning
Before commencing the effort for a batch of release candidates, make sure the
next
branch an identical copy ofmain
.
-
Prior to creating the first PR against the
next
branch, run theyarn changeset pre enter rc
command and commit the resultant files from.changeset
, including thepre.json
file. This informschangesets
that it is in pre-release mode, and the pre-release tag isrc
. -
When creating a PR, the author should run the
yarn changeset
command, answer the relevant questions (i.e., what packages does this PR update, is it major/minor/patch, what is the change description), and then commit the new file created in the.changeset
directory. These files are used by the workflows to construct theCHANGELOG.md
entries for the release candidates.Note If the change is very small and doesn't warrant a changelog entry, run
yarn changeset --empty
and commit the resultant file in the.changeset
directory. -
When the PR is merged into the
next
branch, thenext-release.yml
workflow uses thechangesets/action
to either create or update an existing PR that has the titleVersion Packages for Release Candidates
.
-
Checkout the
changeset-release/next
branchgit checkout changeset-release/next
-
If the
@shopify/shopify-app-express
package is being updated as part of the release (see theReleases
section of the main comment in theVersion Packages for Release Candidates (rc)
PR)- Update the version string in the
packages/shopify-app-express/src/version.ts
file to match the version in thepackages/shopify-app-express/package.json
file.
- Update the version string in the
-
While the branch is checked out, edit/remove any of the comments in the changed
CHANGELOG.md
files and commit them to thechangeset-release/next
branch. -
Once the files in the PR reflect the desired release changes, merge the
Version Packages for Release Candidates (rc)
PR intonext
- this triggers the release. -
The same
changesets/action
in thenext-release.yml
workflow will callyarn release
, which builds and pushes the release candidates tonpmjs.org
.
When a major set of changes is about to be mass released from the next
branch
Warning
The next steps need to be confirmed
-
Checkout the
changeset-release/next
branchgit checkout changeset-release/next
-
Take the
next
branch out of pre-release mode by runningyarn changeset pre exit
And commit the changed files.
-
Merge the
next
branch intomain
. This should update the relevantCHANGELOG.md
files onmain
with the changes from the release candidates. -
Follow the release procedure outlined above