Skip to content

Releases & Versioning

Release and version attributes let you correlate trace data with specific deployments of your application. When you ship a new version, tag traces with the release identifier so you can compare quality metrics before and after a deployment.

Attributes

AttributePurpose
versionSemantic or arbitrary version string (e.g. 2.4.1, main-abc123)
releaseRelease or deployment identifier (e.g. a Git SHA, PR number, or deploy ID)

Both attributes can be set at the trace or observation level.

Setting Version and Release

Via environment variables (applies globally to all traces from this process):

Terminal window
XEROML_RELEASE="v2.4.1"

Or in code using propagate_attributes():

from xeroml import observe, propagate_attributes
@observe()
def handle_request(query: str) -> str:
with propagate_attributes(version="2.4.1", release="sha-abc1234"):
return run_pipeline(query)

TypeScript:

import { propagateAttributes } from "@xeroml/tracing";
await propagateAttributes({ version: "2.4.1", release: "sha-abc1234" }, async () => {
await runPipeline(query);
});

Regression Tracking

With consistent release tagging, you can filter the Traces view or Metrics API by version to compare:

  • Average evaluation scores across releases
  • Token usage and cost trends
  • Error rates or latency regressions

This workflow integrates naturally with evaluation experiments: run your test dataset before and after a prompt or model change, tag each run with the relevant version, and compare scores in the dashboard.

Integration with CI/CD

In most CI/CD setups, set XEROML_RELEASE to the Git commit SHA or build ID at deploy time:

Terminal window
# GitHub Actions example
XEROML_RELEASE=${{ github.sha }}

This creates an automatic audit trail linking every trace to the exact code version that produced it.