3.2 KiB
Releasing Tane (manual, no CI yet)
Block 1 ships as a self-contained Android app (desktop builds also work). There is no release pipeline yet — this page is the by-hand checklist.
Versioning
- Semantic version in
apps/app_seeds/pubspec.yamlasMAJOR.MINOR.PATCH+BUILD(e.g.0.1.0+1). Flutter maps+BUILDto AndroidversionCodeand the rest toversionName. - Record every user-visible change in
../CHANGELOG.mdand add a matching per-locale note underapps/app_seeds/fastlane/metadata/android/<locale>/changelogs/<versionCode>.txt.
Android signing (one-time)
Release builds sign with your own keystore when a gitignored
apps/app_seeds/android/key.properties exists; without it they fall back to
debug keys (so contributors can still flutter run --release).
- Create a keystore (keep it and its passwords safe — losing it means you can
never update the app under the same identity):
keytool -genkey -v -keystore ~/tane-release.jks \ -keyalg RSA -keysize 4096 -validity 10000 -alias tane - Create
apps/app_seeds/android/key.properties(never commit it):storeFile=/home/you/tane-release.jks storePassword=… keyAlias=tane keyPassword=…
Build the beta by hand
cd apps/app_seeds
dart run slang # i18n (if strings changed)
dart run build_runner build --delete-conflicting-outputs # Drift (if schema changed)
flutter test # must be green
flutter build apk --release # or: flutter build appbundle --release
The APK lands at
apps/app_seeds/build/app/outputs/flutter-apk/app-release.apk.
Store metadata
F-Droid / Fastlane-style metadata lives under
apps/app_seeds/fastlane/metadata/android/. Descriptions are derived from
intro.md; icon and splash are generated by
flutter_launcher_icons / flutter_native_splash (see pubspec.yaml).
Legal & Play compliance (before any store submission)
- The privacy policy must be live at
https://tane.comunes.org/legal/privacy(sources inlegal/) — Play Console requires the URL. - Fill the Data Safety form and the UGC/content-rating questionnaires from the
answer sheet in
legal/internal/play-compliance.md. - The in-app requirements (community-rules acceptance on market entry, report and block) ship with the app; keep them working — Play's UGC policy review looks for them.
Manual smoke test before shipping
Automated tests cover behaviour; a release build still gets a human pass on a real device (the one place we allow manual testing — it validates the packaged artifact, it does not replace tests):
- Cold start → intro carousel → home.
- Quick-add a seed with a photo; it appears in the list.
- Mark a lot to share; the "I share" filter and printable catalog appear.
- Save a backup, then restore it (and test the recovery sheet + code on a second install).
- Switch language (es / en / pt); check an RTL locale if the device offers one.
Not in this release
CI, Play Store automation, web builds (SQLCipher is unavailable on web), and the whole social layer (Block 2).