This repository publishes two things:
- Gleam package (Hex / Gleam Packages): Gleam code + Erlang helper.
- Native assets (GitHub Releases):
minigui(Linux x64) andminigui.exe(Windows x64) +.sha256.
The library downloads the port from:
https://github.com/Aztekode/minigui/releases/download/v<VERSION>/<asset>
Therefore, the git tag MUST ALWAYS be vX.Y.Z and the package version must be X.Y.Z.
- Ensure
gleam.tomlhas the final versionX.Y.Z. - Update
CHANGELOG.md. - (Optional) run the headless demo:
make port
MINIGUI_HEADLESS=1 gleam run -m demo- Commit the version:
git add -A
git commit -m "Release vX.Y.Z"- Tag:
git tag vX.Y.Z
git push origin main --tags- GitHub Actions will run the
release.ymlworkflow and attach:minigui+minigui.sha256minigui.exe+minigui.exe.sha256
Note: the workflow fails if the
vX.Y.Ztag does not match theX.Y.Zversion ingleam.toml.
Add these GitHub repository secrets:
HEXPM_API_KEY
Then push the vX.Y.Z tag as usual. The release.yml workflow publishes to Hex from ubuntu-latest before creating the GitHub Release.
On a machine where you have Hex credentials configured:
gleam export hex-tarball
gleam publishNotes:
- For
0.x.x, Gleam will ask you to confirm that you are not using semantic versioning. - On Windows, publishing can fail if your environment blocks symlinks; CI on Linux avoids this.
- On WSL, publish from the Linux filesystem (e.g.
~/src/minigui) instead of/mnt/c/...to avoid Windows path/IO edge cases.