timetracker/.tasks/done/TT-015-apk-retention-script.md
2026-08-03 21:51:48 +02:00

1.8 KiB

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)