This document describes how to cut a new release of @ioai/rosview.
Publishing is fully automated: once you push a version tag, GitHub Actions handles building, testing, npm publishing, and creating the GitHub Release with auto-generated notes.
- You must have push access to the
mainbranch and tag creation rights. - The
NPM_TOKENsecret must be set in the GitHub repository settings (Settings > Secrets > Actions). The token must have Publish scope for the npm scope used by this package (e.g.@ioai).
npm version 1.2.0 --no-git-tag-version
# or edit package.json "version" field directlygit add package.json package-lock.json
git commit -m "chore: release v1.2.0"git push
git tag v1.2.0
git push origin v1.2.0Go to Actions tab on GitHub and watch the Release workflow:
| Job | What it does |
|---|---|
validate |
Runs lint, unit tests, full SPA build, and library build |
publish-npm |
Publishes @ioai/rosview to npm (requires NPM_TOKEN) |
github-release |
Creates a GitHub Release with GitHub auto-generated release notes |
If any job fails, fix the issue and re-push the tag:
git tag -d v1.2.0 # delete local tag
git push origin :v1.2.0 # delete remote tag
# fix the problem...
git tag v1.2.0
git push origin v1.2.0This project follows Semantic Versioning 2.0.0:
| Change type | Version bump | Example |
|---|---|---|
| Bug fix (no API change) | Patch | 1.0.0 -> 1.0.1 |
| New feature (backward-compatible) | Minor | 1.0.0 -> 1.1.0 |
| Breaking API change | Major | 1.0.0 -> 2.0.0 |
Breaking changes are any modifications to the symbols exported from src/entrypoints/index.ts that require consumers to update their code (renamed props, removed exports, changed types).
Use npm pre-release suffixes for beta or release-candidate builds:
npm version 1.2.0-beta.1 --no-git-tag-version
git tag v1.2.0-beta.1
git push origin v1.2.0-beta.1The release workflow automatically marks releases as pre-release on GitHub when the tag name contains a hyphen (e.g., v1.2.0-beta.1).
| Secret | Description |
|---|---|
NPM_TOKEN |
npm automation token with Publish scope for the package's npm organization / scope |
Set it at: Repository -> Settings -> Secrets and variables -> Actions -> New repository secret