Skip to content
LabTether

Release Process

Tagging

LabTether uses calendar-based version names (e.g. v2026.1). Releases are coordinated across multiple repos -- hub, labtether-agent, protocol, mac-agent, and win-agent are all tagged together.

Tag and push all repos simultaneously:

./scripts/release-all.sh v2026.1 --dry-run   # preview
./scripts/release-all.sh v2026.1 --push       # execute

iOS, website, and CLI repos are excluded from coordinated tagging and release independently.

Before tagging, complete the full Pre-Release Checklist.

CI validation

CI runs the following checks before a release is publishable:

  1. make fmt -- code formatting
  2. make lint -- static analysis
  3. make test -- unit and integration tests
  4. cd web/console && npx tsc --noEmit -- console type-check
  5. make smoke-test -- end-to-end smoke test against a running stack

All five gates must pass. A desktop smoke test is also required when desktop workflows are affected:

LABTETHER_DESKTOP_SMOKE_TARGET=<asset-id> make desktop-smoke-test

Artifact publishing

Release artifacts include:

  • Docker images -- hub and supporting services, tagged with the release version
  • Agent binaries -- cross-platform endpoint-agent artifacts for Linux and Windows, plus the separately packaged macOS agent. FreeBSD is compile-checked in CI but is not a published release artifact.
  • Release notes -- CHANGELOG.md or GitHub Release body

For public releases, the following must also be present in the repository root:

  • README.md
  • LICENSE
  • CHANGELOG.md
  • KNOWN_ISSUES.md
  • SUPPORT.md
  • PRIVACY.md (when distributing native/mobile binaries)

Post-release

  1. Verify published Docker images pull and start correctly:
./scripts/install-compose.sh --version vX.Y.Z
make smoke-test
  1. Confirm release assets are attached to the GitHub Release.
  2. Verify the Platform Support reference reflects the new version.
  3. Update documentation for any user-visible changes shipped in the release.
  4. Confirm KNOWN_ISSUES.md is current -- close resolved items, add new ones.