Releasing Sidekicks
Three steps, on the Mac: build everything, tag, attach the files.
| Step | Command | Result |
|---|---|---|
| 1. Build | make release-build |
dist/: the macOS, Windows and Linux packages, and SHA256SUMS |
| 2. Tag | make release-tag |
the tag v<version> is pushed; the Release workflow creates the release on Rickub, with its notes |
| 3. Attach | by hand, on the release page | every file of dist/ attached to the release |
The version is info.version in build/config.yml; the tag is v + that version.
Before: set the version
- In
build/config.yml, setinfo.version(e.g."0.2.0"). wails3 task common:update:build-assets, then putLSMinimumSystemVersionback to13.0.0inbuild/darwin/Info.plistandbuild/darwin/Info.dev.plist(the command resets it to12.0.0).make check, commit, merge intomain, andgit checkout main && git pull.
1. Build
make release-build
It builds, into dist/:
| Files | How |
|---|---|
Sidekicks-<v>-macos-universal.dmg, .zip |
natively (Xcode command line tools) |
Sidekicks-<v>-windows-amd64-installer.exe, sidekicks_<v>_windows_amd64.zip |
cross-built (needs brew install makensis zip) |
sidekicks_<v>_linux_amd64.deb, .rpm, .tar.gz, Sidekicks-<v>-x86_64.AppImage |
in a Docker container (needs Docker running; amd64 is emulated on Apple Silicon, so it takes a while) |
SHA256SUMS |
over all the files above |
LINUX_ARCHES="amd64 arm64" make release-build adds the Linux arm64 packages; SKIP="linux" (or macos, windows) leaves a system out.
2. Tag
make release-tag
It refuses when the working tree has changes, when you are not on main, when main differs from origin/main, or when the tag exists; it warns when dist/ misses a package. Then it creates the annotated tag v<version> and pushes it. The push starts .github/workflows/release.yml, which checks that the tag matches build/config.yml and creates the release with notes listing the files to expect.
3. Attach
Open the release on Rickub (Releases → v), and attach every file of dist/, SHA256SUMS included.
When something goes wrong
| Symptom | What to do |
|---|---|
makensis is missing / Docker is not running |
brew install makensis zip / start Docker Desktop — or leave that system out with SKIP. |
the tag v… already exists |
That version was released already: raise info.version. |
| The workflow failed: "The tag is … but build/config.yml says …" | Delete the tag (git push origin :refs/tags/v… and git tag -d v…), fix info.version, start again. |
| The workflow ran but no release appeared | The job's log tells why (a 403 means the token could not write: permissions: contents: write must stay in release.yml). Create the release by hand on Rickub from the tag; the notes are in the job's log. |
Details: How to publish a release · commands reference.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|