Release Caracal
Caracal release artifacts use CalVer product versions and package versions defined in release.config.json.
Release Surfaces
Section titled “Release Surfaces”| Surface | Source |
|---|---|
| Product version | release.config.json product version, currently 2026.06.25-rc.1. |
| Runtime binary | apps/runtime/dist/caracal-*. |
| Containers | API, STS, Gateway, Audit, Coordinator, Control, Postgres, Redis, Runtime. |
| Helm | infra/helm/caracal. |
| npm packages | Public @caracalai/* packages from release.config.json. |
| PyPI packages | Public caracalai-* packages from release.config.json. |
Build Targets
Section titled “Build Targets”Runtime release builds compile Linux x64/arm64, macOS x64/arm64, and Windows x64 binaries through Bun compile scripts.
Go-based service container builds preserve debug information by default and honor native build arguments passed to Docker: CGO_ENABLED, CC, CFLAGS, CXX, CXXFLAGS, LDFLAGS, GOFLAGS, GO_BUILDFLAGS, and GO_LDFLAGS. The Dockerfiles add -mod=readonly and -trimpath; pass linker options through GO_LDFLAGS for diagnostic or release-specific builds.
Release Flow
Section titled “Release Flow”| Stage | Command pattern |
|---|---|
| RC prepare | scripts/release.sh rc prepare --base-version <YYYY.MM.DD> --suffix rc.1 |
| RC dry run | scripts/release.sh rc dry-run --base-version <YYYY.MM.DD> --suffix rc.1 --local |
| Stable dry run | scripts/release.sh stable --dry-run |
| Stable publish | scripts/release.sh stable |
Protected GitHub workflows publish npm and PyPI packages. Local stable publishing requires explicit approval and environment override.
Changesets
Section titled “Changesets”Only public @caracalai/* packages under packages/ are released through Changesets. Internal-only packages must stay in the Changesets ignore list.
Rollback Rule
Section titled “Rollback Rule”Do not delete published tags. Roll forward with a new CalVer tag. Pinned v<calver> tags are immutable; floating monthly tags move with the new cut.

