This document describes how to create a new release of linear-release.
- You must be on the
mainbranch with a clean working tree, up to date withorigin/main - The GitHub CLI (
gh) must be installed and authenticated pnpmmust be installed
Run the release script with the target version:
pnpm release <version>For example:
pnpm release 0.7.0The version must follow MAJOR.MINOR.PATCH format (e.g., 0.7.0, 1.0.0).
The release script (scripts/release.sh) and CI workflows handle the full process:
The script runs preflight checks and then:
- Validates that the version format is correct
- Checks that
ghis installed and authenticated - Verifies the working tree is clean, you're on
main, and it's up to date withorigin/main - Ensures the
v<version>tag andrelease/<version>branch don't already exist - Creates a
release/<version>branch - Bumps the version in
package.json - Commits the change and pushes the branch
- Opens a PR against
mainviagh pr create
Review and merge the PR as usual. The PR only contains the package.json version bump.
When a PR from a release/* branch is merged into main, the Auto-tag release workflow (.github/workflows/auto-tag-release.yml) runs automatically:
- Validates the version from the branch name matches
package.json - Creates and pushes a
v<version>tag on the merge commit - Triggers the release workflow
The Release workflow (.github/workflows/release.yml) is triggered by the new tag and:
- Builds platform-specific executables (linux-x64, darwin-x64, darwin-arm64) using Bun
- Code signs and notarizes the macOS binaries
- Creates a GitHub Release with the built binaries attached
After publishing the new release, go to linear-release-action and update the default pinned CLI version to the release you just created. When you've done so, publish a new release for the GitHub action as well.