Releases are semi-automated using Sampo and follow the PostHog SDK releases process.
When making changes that should be included in the changelog, create a changeset:
# Install sampo CLI (requires Rust toolchain)
cargo install sampo
# Create a changeset describing your change
sampo addFollow the prompts to specify:
- The type of change (
patch,minor, ormajor) - A description of the change for the changelog
Changesets are stored in .sampo/changesets/ and will be consumed during the release process.
- Add a changeset to your PR describing the changes (see above)
- Merge the PR into
main. No release label is required.
Once merged, the release workflow will automatically:
- Consume all pending changesets
- Update the version in
mix.exs - Update
CHANGELOG.mdwith the new entries - Create a Git tag (e.g.,
v2.2.0) - Create a GitHub Release with generated notes
- Publish the package to Hex.pm
All releases require approval from the Client Libraries team via the Release GitHub environment. Release requests are posted to #approvals-client-libraries on Slack.