Releases are driven by the version: field in charts/logfire/Chart.yaml. The .github/workflows/release.yml workflow runs on every push to main and invokes helm/chart-releaser-action, which packages the chart, creates a GitHub Release with tag logfire-X.Y.Z, uploads the .tgz as a release asset, and updates index.yaml on the gh-pages branch. Because skip_existing: true is set, the action only publishes versions that are not already in the index — so a release is produced exactly when Chart.yaml's version: is bumped to a value that has not been released before.
The workflow inspects Chart.yaml's version: string to decide whether the release is a pre-release: a SemVer suffix with a hyphen (e.g. 0.13.24-rc.1, 0.13.24-beta.0) is treated as a pre-release; a plain X.Y.Z is treated as stable.
- Open a PR against
mainthat bumpscharts/logfire/Chart.yamlversion:(and, where relevant,appVersion:), and setscharts/logfire/values.yamlreleaseVersion:to the platform release the images were built from (e.g.v2026-09-15.01).releaseVersionis what API clients see in theLogfire-Versionresponse header, so they can tell which platform release an instance runs; leave it empty only for builds with no platform release. Follow the PR template — the## Summaryand## Upgrade notessections are scraped into the GitHub Release body by the workflow. - Merge to
main. The workflow creates taglogfire-X.Y.Z, a GitHub Release, publishes the chart to the Pages index, copiescharts/logfire/README.mdtogh-pages, and rewrites the release notes from the PR body.
Pre-releases let you publish a chart for internal testing without committing to a stable version. They land in the same index.yaml as stable releases; Helm hides them from default installs unless the consumer pins --version or passes --devel (see the install section in the chart README).
- Open a PR against
mainthat bumpscharts/logfire/Chart.yamlversion:to a SemVer pre-release, e.g.:version: 0.13.24-rc.1
- Merge to
main. The workflow:- publishes
logfire-0.13.24-rc.1.tgzto the Pages index; - creates a GitHub Release for tag
logfire-0.13.24-rc.1withprerelease=trueand not marked as "latest"; - rewrites that release's notes from the PR body;
- skips the
gh-pagesREADME overwrite, so the public docs site keeps tracking the last stable release.
- publishes
- Internal testers install with the version pinned:
helm install logfire pydantic/logfire --version 0.13.24-rc.1
Iterate by opening another PR that bumps the suffix (-rc.2, -rc.3, …). When the change is ready to ship, open a final PR setting version: to the stable value (e.g. 0.13.24); the normal stable-release flow takes over from there.
- Any SemVer pre-release identifier works (
-rc.1,-beta.0,-alpha.2, …); the workflow keys on the hyphen. - Because RCs flow through
mainlike any other change, no separate publishing path or branch is required. Theindex.yamlalways reflects the latest merged state; thegh-pagesREADME intentionally only updates on stable releases so the docs site matches what default (non---devel) installs get. chart-releaser-actionhas no native pre-release flag (tracked in helm/chart-releaser#468); theprerelease=trueflip and "latest" suppression are done by follow-up steps inrelease.yml.