Releases
How a release is built, signed and installed in place by the app.
A release is a published Krad ADE version on GitHub, with one download per platform:
| Platform | Download |
|---|---|
| macOS | A DMG for Apple Silicon |
| Windows | An Inno Setup installer |
| Linux | A tar.gz for x86-64 |
Making a release
The release workflow runs by hand. It reads the version from the root Cargo.toml and stops if that version is already released, so each release starts with a version bump. It builds the app and the krad-ade-agents CLI for each platform, puts the install marker krad-ade.install in every build, and on macOS archives the .app as an extra tar.gz for updates.
Signed updates
Every build is signed with minisign. The workflow writes a latest.json manifest with the version and, per platform, the file name, size and signature, and signs the manifest itself into latest.json.sig. Both are uploaded with the release.
The app embeds the public key from packaging/update/minisign.pub. It verifies the manifest, then verifies the build while it streams to disk, and refuses anything else. Only a version strictly newer than the running one is offered.
The signing key
The release workflow signs with the minisign secret key from the MINISIGN_SECRET_KEY repository secret. Installed apps only accept builds signed by the key that matches their embedded public key.
Updates in the app
An installed build checks the latest release ten seconds after launch and every six hours, or only from the command palette when Settings say Manual. It downloads its platform's build in the background and installs it when the app restarts from the top bar, or when it quits.
| Platform | Install step |
|---|---|
| macOS | The .app tar.gz replaces the bundle |
| Windows | The installer runs silently into the current folder |
| Linux | The extracted files replace the installed ones |
Only builds with the install marker update; a build from source does not. If the install folder is not writable, the app announces the release and links to its page.