Release Process
July 17, 2026 · View on GitHub
All crates (logfire, logfire-core, logfire-client) are versioned in
lockstep and published together from a single GitHub Release tagged
v{version}.
To release:
- In a PR: bump
versionin every{crate}/Cargo.tomland thelogfire-corepin in[workspace.dependencies]in the rootCargo.toml(all to the same version), updatelogfire/CHANGELOG.md, and merge tomain. - Publish a GitHub Release with a new
v{version}tag onmain, e.g.gh release create v0.12.0 --generate-notes. - CI (
.github/workflows/main.yml) runs tests on the tag, then thereleasejob pauses in thereleaseenvironment until a maintainer approves the deployment. On approval it runs./release.sh, which checks that every crate's version matches the tag and publishes withcargo publish --workspace(logfire-corefirst — cargo orders intra-workspace dependencies and waits for the index).
Publishing authenticates via crates.io
trusted publishing: the job mints
a short-lived OIDC token with rust-lang/crates-io-auth-action — there is no
long-lived registry token. Each crate's trusted-publisher configuration on
crates.io must name repository pydantic/logfire-rust, workflow main.yml,
and environment release.