Skip to content

Latest commit

 

History

History
78 lines (50 loc) · 1.83 KB

File metadata and controls

78 lines (50 loc) · 1.83 KB

Releasing minigui (checklist)

This repository publishes two things:

  1. Gleam package (Hex / Gleam Packages): Gleam code + Erlang helper.
  2. Native assets (GitHub Releases): minigui (Linux x64) and minigui.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.


0) Preparation

  • Ensure gleam.toml has the final version X.Y.Z.
  • Update CHANGELOG.md.
  • (Optional) run the headless demo:
make port
MINIGUI_HEADLESS=1 gleam run -m demo

1) Create tag and release (native assets)

  1. Commit the version:
git add -A
git commit -m "Release vX.Y.Z"
  1. Tag:
git tag vX.Y.Z
git push origin main --tags
  1. GitHub Actions will run the release.yml workflow and attach:
    • minigui + minigui.sha256
    • minigui.exe + minigui.exe.sha256

Note: the workflow fails if the vX.Y.Z tag does not match the X.Y.Z version in gleam.toml.


2) Publish the package to Hex / Gleam Packages

Option A: Publish from CI (recommended)

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.

Option B: Publish locally

On a machine where you have Hex credentials configured:

gleam export hex-tarball
gleam publish

Notes:

  • 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.