Skip to content

Latest commit

 

History

History
99 lines (68 loc) · 2.67 KB

File metadata and controls

99 lines (68 loc) · 2.67 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.

This is a monorepo. Set PACKAGE_NAME to the name of the workspace package being changed — not the root package.json, which is private and not versioned by Changesets:

# Read the name from the relevant workspace package
PACKAGE_NAME=$(node -p "require('./packages/lockfile-lint/package.json').name")
# or for the API package:
# PACKAGE_NAME=$(node -p "require('./packages/lockfile-lint-api/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