Release Process
Audience: contributors and maintainers.
- Predictable versioning across packages
- Clear changelog communication
- Safe promotion from pre-release to stable
Versioning Model
Section titled “Versioning Model”- Semantic Versioning intent (
major.minor.patch) - Independent versions per publishable package (
@roomful/*) - Pre-
v1.0may ship frequent minor-level API adjustments - Breaking changes must be explicitly called out in PRs and changelog
Changesets is the canonical versioning tool:
pnpm changesetpnpm version-packagespnpm release
Changelog model:
- Root
CHANGELOG.mdis project-level narrative. pnpm version-packagesauto-generates packageCHANGELOG.mdfiles for bumped@roomful/*packages.
Publish Scope
Section titled “Publish Scope”- Published:
packages/* - Internal only:
apps/*,examples/*,benchmarks/*
Workflow Overview
Section titled “Workflow Overview”- Contributor adds a changeset file in PR (
pnpm changeset). - PR CI (
.github/workflows/ci.yml) validates on Node18and20. - Maintainers merge release-ready changes into
main. .github/workflows/changesets-release-pr.ymlauto-creates/updates a release PR onmain.- Release PR contains version bumps and package changelog updates from
pnpm version-packages. - Maintainers merge the release PR.
- Maintainers push tag matching
v*. - Tag triggers
.github/workflows/release.yml. - Release workflow validates, publishes to npm via Changesets, publishes the relay Docker image to Docker Hub, and creates a GitHub Release after both publishes succeed.
Pre-Release and Stable Strategy
Section titled “Pre-Release and Stable Strategy”- Use pre-release tags to validate significant API changes.
- Promote to stable after testing and compatibility checks.
CI/CD Contracts
Section titled “CI/CD Contracts”PR validation pipeline order:
- install
- lint
- typecheck
- test
- build
Release trigger:
- Git tag push matching
v* - Changesets release PR workflow runs on push to
main
Release secrets:
NPM_TOKEN(required)DOCKERHUB_USERNAME(required for relay image publish)DOCKERHUB_TOKEN(required for relay image publish)TURBO_TEAM(optional)TURBO_TOKEN(optional)
Release Checklist
Section titled “Release Checklist”- CI green
- Changesets included for release-relevant package changes
- Changelog updated
- Docs updated for API changes
- Breaking changes explicitly documented
- Security notes included where relevant
-
NPM_TOKENconfigured -
DOCKERHUB_USERNAMEconfigured -
DOCKERHUB_TOKENconfigured - Release tag (
v*) pushed from intended commit - GitHub Release created from the release tag after npm and Docker publishing succeed
- Public release verified with
pnpm release:verify-public -- --tag v<release> - npm weekly downloads baseline recorded with
pnpm release:downloads-baseline - Launch announcements posted from Launch Kit