Releases
Every artifact built from this repository has a corresponding entry on the GitHub Releases page. That page is the authoritative feed for what has shipped, when, and what changed.
Where to find releases
Section titled “Where to find releases”All releases — web apps, the API, and native apps — are listed at github.com/jonot-io/jonot/releases.
Tag conventions
Section titled “Tag conventions”Native apps — semantic version tags, pushed manually by the engineer cutting the release:
apps/host(desktop):host-v<semver>— e.g.host-v1.2.3apps/native-kiosk:android-kiosk-v<semver>— e.g.android-kiosk-v1.4.0apps/native-desk:android-desk-v<semver>— e.g.android-desk-v1.4.0
Web apps and API — timestamped rolling markers created automatically after each successful production deploy:
apps/api(Worker):api-r<YYYYMMDD-HHMM>-<sha7>— e.g.api-r20260523-1542-abc1234- Web SPAs (9 apps):
web-<app>-r<YYYYMMDD-HHMM>-<sha7>— e.g.web-admin-r20260523-1542-abc1234
Native apps (host, android-kiosk, android-desk)
Section titled “Native apps (host, android-kiosk, android-desk)”Releases for native artifacts are triggered by pushing a tag matching the artifact's prefix. The CI workflow builds, signs, and publishes to the appropriate store, then creates a GitHub Release with attached binaries.
To cut a release:
git tag host-v1.0.0git push origin host-v1.0.0Replace host with android-kiosk or android-desk as appropriate, and
bump the version to match the versionName / libs.versions.toml entry in
the app.
Each GitHub Release for a native app includes:
- android-kiosk / android-desk — signed AAB, ProGuard mapping, and the
Play Store changelog (
whatsnew-en-US.txt). - host —
.deb,.rpm,SHA256SUMS, andSHA256SUMS.asc(GPG-signed).
Web SPAs and API
Section titled “Web SPAs and API”Pushes to main deploy automatically to the development environment.
Production is promoted by force-moving a movable release tag to the
desired commit and pushing it:
# Ship everything (all nine SPAs + API):git tag -f release <sha> && git push -f origin release
# Ship the API only:git tag -f release-api <sha> && git push -f origin release-api
# Ship a single SPA (e.g. admin):git tag -f release-admin <sha> && git push -f origin release-adminThe umbrella release tag ships all nine SPAs and the API in a single push,
sidestepping the GitHub limit that suppresses CI when more than three tags are
pushed at once. Unrecognised tag names fail the resolve step rather than
silently deploying.
A web-<app>-r… or api-r… release marker is created after each successful
production deployment and tagged --prerelease so it does not displace the
native semver "Latest release" badge. These markers are the authoritative
changelog — records of what shipped, not gates.
The API release also attaches a migrations.txt asset listing every D1
migration file present at that commit, so you can answer "did migration N
ship?" from the Releases UI.
Release notes
Section titled “Release notes”Release notes are auto-generated by GitHub from the merged pull request
titles between the previous release tag and the current one. Conventional
Commit prefixes (feat:, fix:, perf:, …) in PR titles group changes
visually within the notes body.