OSOpenSyntax

Release System

OpenSyntax uses GitHub Actions and semantic-release to validate, version, publish, tag, and create GitHub Releases automatically.

Pipeline

  1. Push to `main` triggers the Release workflow.
  2. Dependencies install with `npm ci` when a lockfile exists.
  3. Lint, typecheck, tests, and build run.
  4. `npm pack --dry-run` verifies package contents.
  5. semantic-release determines the next version.
  6. npm package is published publicly.
  7. Git tag `vX.Y.Z` and GitHub Release are created.
  8. `CHANGELOG.md`, `package.json`, and `package-lock.json` are updated by a release commit.

Versioning rules

CommitRelease
BREAKING CHANGE or feat!:Major
feat:Minor
Other conventional commit typesPatch

Required secrets

SecretPurpose
NPMJS_TOKENnpm automation token with publish access to `opensyntax`.
GITACCESS_TOKENGitHub token used to push release commits, tags, and GitHub Releases.

Manual release

Open GitHub Actions, select the Release workflow, choose `Run workflow`, and run it on `main`.