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

57 lines
1.8 KiB
Markdown

# 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`)