This guide documents the steps to release a new version of TensorZero.
You can inspect the Git SHA used to build a particular image tag with:
docker image inspect tensorzero/ui:latest | jq '.[0].Config.Labels["org.opencontainers.image.revision"]'
TensorZero follows CalVer for versioning.
The format is YYYY.MM.PATCH (e.g. 2025.01.0, 2025.01.1).
Important
Make sure to update every instance of the version in the codebase.
The version is referenced in multiple places, including the client's pyproject.toml and the gateway's status.rs.
The Python client is published to PyPI via GitHub Actions automatically when a new release is made.
Before building the Docker container for the first time, you need to set up your container builder:
docker buildx create \
--name container-builder \
--driver docker-container \
--use \
--bootstrapEvery time you want to build the Docker container, you need to run from the root of the repository:
DOCKER_BUILDKIT=1 docker buildx build \
--platform linux/amd64,linux/arm64 \
-t tensorzero/gateway:latest \
-t tensorzero/gateway:XXXX.XX.X \
-f gateway/Dockerfile \
--attest type=provenance,mode=max \
--attest type=sbom \
--push \
.Important
Make sure to replace the XXXX.XX.X placeholder with the actual version of the Docker container you are building.
Before building the Docker container for the first time, you need to set up your container builder:
docker buildx create \
--name container-builder \
--driver docker-container \
--use \
--bootstrapEvery time you want to build the Docker container, you need to run from the root of the repository:
DOCKER_BUILDKIT=1 docker buildx build \
--platform linux/amd64,linux/arm64 \
-t tensorzero/ui:latest \
-t tensorzero/ui:XXXX.XX.X \
-f ui/Dockerfile \
--attest type=provenance,mode=max \
--attest type=sbom \
--push \
.Important
Make sure to replace the XXXX.XX.X placeholder with the actual version of the Docker container you are building.
Before building the Docker container for the first time, you need to set up your container builder:
docker buildx create \
--name container-builder \
--driver docker-container \
--use \
--bootstrapEvery time you want to build the Docker container, you need to run from the root of the repository:
DOCKER_BUILDKIT=1 docker buildx build \
--platform linux/amd64,linux/arm64 \
-t tensorzero/evaluations:latest \
-t tensorzero/evaluations:XXXX.XX.X \
-f evaluations/Dockerfile \
--attest type=provenance,mode=max \
--attest type=sbom \
--push \
.Important
Make sure to replace the XXXX.XX.X placeholder with the actual version of the Docker container you are building.
Make sure to merge every PR with the merge-on-release label.
Note
The documentation is currently stored in a separate repository. We're planning to make those files open source in the near future.
Make sure to tag a release in the GitHub repository.