Skip to content

Release and versioning

Varco uses semver tags in the form:

v0.1.0

For a release tag, these versions must match the tag without the leading v:

  • custom_components/varco/manifest.json
  • packages/client/package.json
  • bridge/package.json

Check them with:

Terminal window
npm run release:check-version -- 0.1.0

Before tagging:

Terminal window
npm test
npm run check
npm run build
npm run docs:build
npm --workspace packages/client pack --dry-run

Then create and push the tag:

Terminal window
git tag v0.1.0
git push origin v0.1.0

The release workflow builds and publishes:

  • varco-home-assistant.zip: the Home Assistant custom integration directory for users who do not install through HACS.
  • @varco/client: published to npm from packages/client through npm Trusted Publishing.
  • ghcr.io/vekexasia/varco-bridge: the Node in-memory bridge Docker image, tagged as the exact version (0.1.0), minor line (0.1), major line (0), and latest.

After the first GHCR publish, make the package public in GitHub’s package settings if GitHub creates it as private.

Use the exact Docker tag for stable deployments:

Terminal window
docker run --rm -p 8787:8787 ghcr.io/vekexasia/varco-bridge:0.1.0

The package is published as:

Terminal window
npm install @varco/client

The GitHub release workflow publishes with npm provenance through npm Trusted Publishing. It uses a GitHub-hosted runner, id-token: write, Node 24, and npm 11.5.1 or newer so npm can exchange the workflow OIDC identity for a short-lived publish credential.

Configure the package on npm with this trusted publisher:

Package: @varco/client
Publisher: GitHub Actions
Organization or user: vekexasia
Repository: varco
Workflow filename: release.yml
Environment name: leave empty
Allowed actions: npm publish

Manual publishing remains possible for maintainers:

Terminal window
npm --workspace packages/client publish --access public

Do not publish a package version that does not match the GitHub release tag.

Users can install the Home Assistant integration by adding this repository as a HACS custom repository with type Integration:

https://github.com/vekexasia/varco

Varco is not in the HACS default store. HACS default-store inclusion is separate future work.