Skip to content

Latest commit

 

History

History
96 lines (65 loc) · 2.39 KB

File metadata and controls

96 lines (65 loc) · 2.39 KB

Release

This project uses Changesets to record release intent before the version and publish steps run.

Use the command that matches the repository's package manager:

  • npm: npx @changesets/cli
  • pnpm: pnpx @changesets/cli

Release tooling

This project uses the Changesets tool to manage semantic versioning and release notes.

Pre-requisites

Permit GitHub Actions to create and approve pull requests:

  1. Go to Actions -> General in the repository settings: (https://github.com/<user>/<repo>/settings/actions)
  2. In Workflow permissions enable the toggle for Allow GitHub Actions to create and approve pull requests (it is not required to also toggle the Read and write permission option)

Add a changeset interactively

Run the Changesets CLI and follow the prompts:

# npm
npx @changesets/cli

# pnpm
pnpx @changesets/cli

The CLI asks which package changed, what semver bump is needed, and what summary should go in the changelog. Use:

  • patch for backward-compatible fixes and small internal changes
  • minor for backward-compatible new functionality
  • major for breaking changes

Then commit and push the generated changeset:

git add .changeset
git commit -m "chore: release"
git push origin HEAD --no-verify

Add a changeset without an interactive TTY

The Changesets CLI is mostly interactive when creating a normal changeset. If a TTY is not available, write the changeset file directly.

First, read the package name from package.json instead of hard-coding it:

PACKAGE_NAME=$(node -p "require('./package.json').name")

Create a changeset file under .changeset/:

CHANGESET_FILE=".changeset/$(date +%s)-release.md"

cat > "$CHANGESET_FILE" <<EOF
---
"$PACKAGE_NAME": patch
---

Describe the change here.
EOF

Replace patch with minor or major when the change requires a larger semver bump. Keep the summary short and user-facing; it is used by Changesets when generating release notes.

Commit and push the changeset:

git add .changeset
git commit -m "chore: release"
git push origin HEAD --no-verify

Version and publish

After the changeset lands on the release branch, run the configured package scripts when it is time to cut and publish the release:

# npm
npm run version
npm run release

# pnpm
pnpm run version
pnpm run release