Trackhop

Release process

  1. Version: bump versionCode and versionName in android/app/build.gradle. Every version that users should get is a release: Obtainium and F-Droid follow the tags.
  2. Changelog: fastlane/metadata/android/<locale>/changelogs/<versionCode>.txt in all seven locales (en-US, it-IT, fr-FR, de-DE, es-ES, zh-CN, ja-JP), under 500 characters.
  3. Push to main. CI (.github/workflows/build.yml) runs the unit tests, builds the debug APK, the signed release APK (full flavour) and the AAB (play flavour), and, when the versionName has no tag yet, creates the tag vX.Y.Z and the GitHub Release with Trackhop-vX.Y.Z.apk and Trackhop-vX.Y.Z-play.aab (up to 1.5.2 the APK was Songport-vX.Y.Z.apk).
  4. Obtainium users get it at once. F-Droid finds the new tag (UpdateCheckMode: Tags), builds it from source a few days later and, because the build is reproducible, publishes the GitHub APK with its own signature.

Desktop and Docker

They have their own version, separate from the app’s: server/VERSION, with its notes in server/CHANGELOG.md. Bump it (and add its section) when a server or Desktop change should reach people; the app’s version does not move for it, nor theirs for an app-only change.

Keeping the F-Droid build reproducible

Google Play

After each app release play.yml uploads the bundle to the closed track, once its secret exists, with the notes in play/whatsnew/<versionCode>/ (en-US and it-IT, written for Play: write them with the changelog of each version).

The play flavour is published as Trackhop, like every other build: same package id, no built-in web connectors, AdMob banner. Listing texts, Data safety answers and the closed-test kit are in docs/play-store-listing.md and docs/play-testers.md.

Store graphics

scripts/store_graphics.sh (ImageMagick) redraws the icon PNGs and the EN/IT feature graphics from the same geometry as the icon’s vector drawables, and prints the contrast of every line of text; scripts/store_graphics.sh preview DIR also writes icon previews for review.

Checks before pushing

All guide pages