| name | hex-release |
| description | Guides manual Hex release prep for jido_runic. Uses the current version in mix.exs, the workflow_dispatch release workflow, and GitHub release notes instead of a local changelog. Triggers on: release, hex publish, bump version, new release, publish package. |
Hex Release
Use this skill when asked to prepare or run a Hex release for jido_runic.
Pre-flight Checks
Run these checks automatically:
- Identify the package and version from
mix.exs.
- Confirm there are no runtime
git: or path: deps in mix.exs.
- Check
git status --porcelain and stop if the tree is dirty.
- Confirm the branch is
main.
- Check there are releasable commits since the last tag:
git log --oneline $(git describe --tags --abbrev=0 2>/dev/null || echo "")..HEAD
- Run:
mix test
mix quality
mix hex.publish --dry-run --yes
If any step fails, stop and report the issue.
Release Model
jido_runic does not use a repo-local changelog or git_ops.
- Version bumps are made directly in
mix.exs.
- Release notes come from GitHub generated notes.
- The release workflow publishes the current version already committed on
main.
Automated Release
Use .github/workflows/release.yml.
Recommended first run:
gh workflow run release.yml -f dry_run=true
gh run watch
Real release:
gh workflow run release.yml -f dry_run=false
gh run watch
The workflow will:
- Install deps
- Compile and optionally test
- Publish the current
mix.exs version to Hex
- Create and push tag
vX.Y.Z
- Create a GitHub release with generated notes
Manual Release
Use when the workflow is unavailable.
- Ensure the desired version is already committed in
mix.exs.
- Run:
mix test
mix quality
HEX_API_KEY=... mix hex.publish --dry-run --yes
- Publish:
HEX_API_KEY=... mix hex.publish --yes
- Tag and release:
VERSION="v$(mix run -e 'IO.write(Mix.Project.config()[:version])')"
git tag "$VERSION"
git push origin main
git push origin "$VERSION"
gh release create "$VERSION" --generate-notes
Notes
- Keep commits conventional even though release notes are generated by GitHub.
examples/ compile only in dev and test; published runtime is lib/ only.
mix hex.publish --dry-run --yes still needs Hex auth in CI; set HEX_API_KEY.