Upstream release procedure ========================== Do not import the parent workspace or its Git history. This standalone tree contains the build inputs; the parent holds production credentials, signing keys, private reports and generated data that must never be published. 1. Synchronize shared Android code using the parent's allowlist exporter: python3 tools/fdroid/export_android.py (This command is run in the private workspace, not by F-Droid builders.) Review changes, especially the transformation removing the website updater. The public repo builds independently; contributors need no parent workspace. 2. Bump versionCode/versionName in app/build.gradle for each published change. Preserve them in the private export script as well. Do not reuse a versionCode. 3. Update fastlane/metadata/android/en-US/changelogs/.txt. 4. Finalize licensing before the initial release tag. Public repo: https://git.glosira.com/glosira-android.git Maintainer push: git@git.glosira.com:glosira-android.git 5. Run tools/check_public_tree.py and the build/lint commands in BUILDING.txt. 6. Review git diff and git status, then stage only intended source files. Do not force-add ignored APKs, caches, local.properties, credentials or keystores. 7. Commit, create an annotated tag matching versionName (e.g. v1.0.4), and verify a separate clean clone can build. Never move a published version tag. 8. Push commits and tags over SSH. Ensure anonymous HTTPS clone works. 9. Generate metadata, run fdroid lint and submit it upstream. Future releases use Tags update detection; keep version values literal and tags consistent. The release APK stays unsigned for F-Droid. Do not add the website's signing configuration to this variant. The package ID must remain com.glosira.app.fdroid.