- Hex.pm account with publish access to
hnswlib - All tests passing on main
- Repository secrets configured:
RELEASE_PAT,HEX_API_KEY
Releases are automated via release-please.
- Push to main - release-please analyzes commits and creates/updates a release PR
- Review PR - The PR includes version bump and CHANGELOG updates
- Merge PR - Merging the PR (labeled
autorelease: pending) triggers:- Tag creation
- Build of all platform binaries
- GitHub release with artifacts
- Checksum generation and commit
- Hex.pm publish
release-please uses Conventional Commits to determine version bumps:
fix:- Patch release (0.0.X)feat:- Minor release (0.X.0)feat!:orBREAKING CHANGE:- Major release (X.0.0)
push to main (with conventional commits)
↓
release-please creates/updates PR
↓
merge PR (labeled "autorelease: pending")
↓
create-release.yml creates tag
↓
build-and-publish.yml triggered by tag
↓
build artifacts → GitHub release → checksum commit → hex publish
If automated release fails, you can manually:
-
Create and push a tag:
git tag -a vX.Y.Z -m "Release vX.Y.Z" git push origin vX.Y.Z -
This triggers
build-and-publish.ymlwhich handles the rest. -
If hex publish fails, manually publish:
git checkout vX.Y.Z mix deps.get mix hex.publish