Release Process
This page describes the current repository release flow, not an idealized future-state pipeline.Current shipping model
- Pull requests are the unit of delivery.
- GitHub Actions is the source of truth for repository checks.
apps/web,apps/app, andapps/apideploy through Vercel in the current alpha posture.apps/workerdeploys through Railway-style deployment.- Semver tags are used for deliberate releases.
- Runtime
buildVersionis distinct from semver release version.
Current default checks
The repo validates:- lint
- docs lint
- docs hygiene
- OpenAPI spec drift
- release hygiene
- docs build
- typecheck
- tests
- build
Release train policy
Until alpha, Switchbord uses release-train semver:- patch for fixes, docs corrections, and release hygiene
- minor for coherent capability waves
- major only for stable
1.0.0semantics
Required release steps
For every deliberate release:- Update
package.jsonto the intended version. - Update
CHANGELOG.mdwith## vX.Y.Zand factual git-backed dates. - Update public web changelog MDX if the release is customer-facing.
- Update Mintlify docs for any user-visible feature or operational behavior change.
- Run:
- Merge the release PR.
- Tag exactly the same version:
- Confirm the GitHub Release was created for the matching tag.
Back-minting historical tags
Historical alpha versions before this policy were not consistently tagged. Do not fabricate tags. If back-minting is needed before alpha:- Identify the exact commit that represented that release state.
- Verify
package.jsonandCHANGELOG.mdat that commit. - Create the historical tag only if the evidence is unambiguous.
- Prefer starting strict matching at the next release train if the historical boundary is unclear.
Contributor guidance
- Do not assume a feature is release-ready just because it builds locally.
- If your change alters runtime behavior, update both Mintlify docs and repo-level operational docs that describe the same contract.
- If your change affects public marketing state, update the web changelog or explicitly state why not in the PR body.
- If a changelog date is not backed by
git logorgh pr view, do not commit it. - If a change would require new CI gates, document that as an explicit follow-up instead of implying it already exists.
Planned hardening
These are expected additions, but should be described as planned until they are live in CI:- container builds for long-running runtimes
- migration validation
- stricter environment checks
- release environment promotion policy