Short release checklist for macOS artifacts and Homebrew cask updates.
Release automation lives in .github/workflows/release.yml.
Set version in pyproject.toml to the release you are shipping (for example
1.0.0), and update scripts/app_bundle/Info.plist.tmpl and
scripts/build_portable_app.sh if those strings still need to match. Reinstall
or rebuild app bundles so Finder and the About box show the new version.
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[dev,build]'
.venv/bin/python -m pytest tests/
.venv/bin/python -m ruff check .
scripts/build_portable_app.shOutput: dist/Gluco.app.
scripts/package_release_artifact.sh --version vX.Y.Z --repo <owner>/<repo>Outputs under release/:
Gluco-vX.Y.Z-macos.zipGluco-vX.Y.Z-macos.zip.sha256homebrew-cask-snippet.rb
Without --version, the script reads the version from pyproject.toml.
Tag-triggered workflow:
git tag vX.Y.Z
git push origin vX.Y.ZThis runs lint + tests, builds the app, packages the zip/SHA, and uploads all three artifacts to the GitHub release for the tag.
You can also trigger the workflow manually via
workflow_dispatch (inputs.version).
The cask lives in this repo at Casks/gluco.rb (the repo doubles as its
own tap). Edit it:
version "X.Y.Z"sha256from the release.sha256file- URL must resolve to:
https://github.com/edusantosdev/gluco-python/releases/download/vX.Y.Z/Gluco-vX.Y.Z-macos.zip
Commit and push to main.
cask_renames.json maps the old gluco-bar token to gluco so existing
installs migrate on brew update. Keep it; removing it strands anyone
still on the old token.
brew tap edusantosdev/gluco https://github.com/edusantosdev/gluco-python
brew trust --cask edusantosdev/gluco/gluco
brew update
brew install --cask edusantosdev/gluco/gluco
open -a GlucoOptionally brew upgrade --cask gluco from the previous version.
- Artifacts are currently unsigned and not notarized.
- For a manual fallback (no tag workflow), use
gh release create vX.Y.Z release/Gluco-vX.Y.Z-macos.zip.