Ga naar inhoud

Releases

Elk artefact dat vanuit deze repository wordt gebouwd, heeft een corresponderende vermelding op de GitHub Releases-pagina. Die pagina is de gezaghebbende bron voor wat er is uitgebracht, wanneer, en wat er is veranderd.

Alle releases — webapps, de API en native apps — staan vermeld op github.com/jonot-io/jonot/releases.

Native apps — semantische versietags, handmatig gepusht door de engineer die de release maakt:

  • apps/host (desktop): host-v<semver> — bijv. host-v1.2.3
  • apps/native-kiosk: android-kiosk-v<semver> — bijv. android-kiosk-v1.4.0
  • apps/native-desk: android-desk-v<semver> — bijv. android-desk-v1.4.0

Webapps en API — tijdgestempelde doorlopende markers, automatisch aangemaakt na elke geslaagde productie-deploy:

  • apps/api (Worker): api-r<YYYYMMDD-HHMM>-<sha7> — bijv. api-r20260523-1542-abc1234
  • Web-SPA’s (9 apps): web-<app>-r<YYYYMMDD-HHMM>-<sha7> — bijv. web-admin-r20260523-1542-abc1234

Native apps (host, android-kiosk, android-desk)

Section titled “Native apps (host, android-kiosk, android-desk)”

Releases voor native artefacten worden geactiveerd door een tag te pushen die overeenkomt met het voorvoegsel van het artefact. De CI-workflow bouwt, ondertekent en publiceert naar de betreffende store, en maakt vervolgens een GitHub Release aan met bijgevoegde binaries.

Om een release te maken:

Terminal window
git tag host-v1.0.0
git push origin host-v1.0.0

Vervang host naar behoefte door android-kiosk of android-desk, en verhoog de versie zodat deze overeenkomt met de versionName-/libs.versions.toml-vermelding in de app.

Elke GitHub Release voor een native app bevat:

  • android-kiosk / android-desk — ondertekende AAB, ProGuard-mapping en de Play Store-changelog (whatsnew-en-US.txt).
  • host.deb, .rpm, SHA256SUMS en SHA256SUMS.asc (GPG-ondertekend).

Pushes naar main worden automatisch gedeployed naar de development-omgeving. Productie wordt gepromoveerd door een verplaatsbare release-tag geforceerd naar het gewenste commit te verplaatsen en te pushen:

Terminal window
# Alles uitbrengen (alle negen SPA's + API):
git tag -f release <sha> && git push -f origin release
# Alleen de API uitbrengen:
git tag -f release-api <sha> && git push -f origin release-api
# Eén SPA uitbrengen (bijv. admin):
git tag -f release-admin <sha> && git push -f origin release-admin

De overkoepelende release-tag brengt alle negen SPA’s en de API uit in één push, waardoor de GitHub-limiet wordt omzeild die CI onderdrukt wanneer meer dan drie tags tegelijk worden gepusht. Niet-herkende tagnamen laten de resolve-stap falen in plaats van stilzwijgend te deployen.

Een web-<app>-r…- of api-r…-releasemarker wordt aangemaakt na elke geslaagde productie-deploy en getagd als --prerelease, zodat deze de native semver-badge “Latest release” niet verdringt. Deze markers zijn de gezaghebbende changelog — registraties van wat is uitgebracht, geen poorten.

De API-release voegt ook een migrations.txt-asset toe met alle D1-migratiebestanden die op dat commit aanwezig zijn, zodat je vanuit de Releases-interface kunt beantwoorden of migratie N is uitgebracht.

Releasenotities worden automatisch door GitHub gegenereerd op basis van de titels van samengevoegde pull requests tussen de vorige release-tag en de huidige. Conventional Commit-voorvoegsels (feat:, fix:, perf:, …) in PR-titels groeperen wijzigingen visueel binnen de notities.