Skip to content

Releasing

Versions are managed manually in packages/semtest/package.json:

{
"version": "0.1.0"
}

To release a new version:

  1. Update the version field in packages/semtest/package.json
  2. Commit and push to main
  3. The publish.yml workflow builds, tests, and publishes automatically

semtest publishes to two registries for different purposes:

RegistryBranchdist-tagAudienceAuth required
Public npmmainlatestEnd usersNo
GitHub PackagesreleasercContributorsYes (PAT with read:packages)

Triggered by push to main. Published to https://registry.npmjs.org with the latest tag. After publish, the Homebrew tap is automatically updated.

Terminal window
# End users install with:
npm install -g @westopp/semtest

Triggered by push to release. Published to https://npm.pkg.github.com with the rc tag. Version is auto-suffixed (e.g. 0.1.0-rc.5).

Terminal window
# Contributors install with (requires .npmrc auth):
pnpm add @westopp/semtest@rc

All public channels install from the public npm registry:

ChannelCommandUse case
npmnpm install -g @westopp/semtestStandard global install
npxnpx @westopp/semtest runOne-off execution, no install
Homebrewbrew install westopp/semtest/semtestmacOS/Linux, manages Node dependency
curlcurl -fsSL .../install.sh | bashScripted installs, checks prerequisites

To install RC builds from GitHub Packages, configure the @westopp scope:

@westopp:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_PAT_HERE

Replace YOUR_PAT_HERE with a GitHub PAT that has read:packages scope.

Terminal window
pnpm add @westopp/semtest@rc

No auth required. Install directly:

Terminal window
npm install -g @westopp/semtest

Or use programmatically:

import { defineConfig, loadConfig, executeTests } from "@westopp/semtest";
{
"repository": {
"type": "git",
"url": "https://github.com/westopp/semtest.git",
"directory": "packages/semtest"
}
}

The directory field tells registries that this package lives in a monorepo subdirectory.