# TT-015 — APK-Retention-Script **Type:** Task **Priority:** High **Labels:** tooling, shell **Depends on:** — **Blocks:** TT-016 (build_android Make-Target) --- ## Summary Shell-Script `scripts/apk_retention.sh` das nach jedem APK-Build die Build-Historie bereinigt. Wird vom Makefile als letzter Schritt von `build_android` aufgerufen. ## Retention-Strategie ### Regel 1 — Aktuelle Minor-Version In der Minor-Version die gerade entwickelt wird (höchste Minor): - Behalte die **letzten 15 APKs** nach Build-Nummer - Lösche ältere ### Regel 2 — Abgeschlossene Minor-Versionen Für ältere Minor-Versionen (z.B. 0.1.x wenn aktuell 0.2.x entwickelt wird): - Behalte immer genau **eine APK pro Minor-Version** (die mit der höchsten Build-Nummer) - Das ist der "Release-Marker" für diese Version ### Beispiel ``` Aktuell: 0.1.x (Build +1 bis +20 vorhanden) → Behalte +6 bis +20 (15 neueste) → Lösche +1 bis +5 Später: 0.2.x existiert, 0.1.x hat +1 bis +20 → 0.1.x: Behalte nur +20 (höchste = Release-Marker) → 0.2.x: Behalte letzte 15 ``` ## APK-Dateiformat `timetrack-{VERSION}+{BUILD}.apk` Beispiele: - `timetrack-0.1.0+1.apk` - `timetrack-0.1.0+15.apk` - `timetrack-0.2.0+3.apk` ## Acceptance Criteria - [ ] Script nimmt `--dir` als Argument (default: `build/apk`) - [ ] Erkennt Minor-Versionen korrekt (0.1, 0.2, etc.) - [ ] Behält letzte 15 in aktueller Minor-Version - [ ] Behält je eine (neueste) APK für ältere Minor-Versionen - [ ] Löscht zugehörige `.sha256`-Dateien mitgleich - [ ] Gibt Liste der gelöschten Dateien aus - [ ] Gibt Liste der behaltenen Dateien aus - [ ] Tut nichts wenn weniger als 16 APKs vorhanden (keine Löschung nötig) - [ ] Löscht niemals den `timetrack.apk`-Symlink ## Files to create - `scripts/apk_retention.sh` (ausführbar, `chmod +x`)