Skip to content
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,8 @@ Alle relevanten Änderungen dieses Projekts werden in dieser Datei dokumentiert.
- Compose-UI nutzt stärkere asynchrone Sperrlogik via Mutex für Command-Dispatch und aktualisiert Laufzeitmetriken automatisch bei aktiver Verbindung.
- Compose-UI enthält nun einen dynamischen Server-Browser mit Profilverwaltung, Direkt-Connect/Ping-Aktionen und Server-spezifischer Metrikverfolgung.
- CI-Workflow nutzt nun explizites Gradle-Warmup und Retry-Strategien für Plugin-/Dependency-Auflösung, um transiente Auflösungsfehler robuster abzufangen.

### Documentation

- Alle Markdown-Dokumente wurden um vollständige Setup-Voraussetzungen und eine konkrete `run test`-Durchführung erweitert.
- Einheitliche Befehle für Gradle-Warmup, JVM-Tests, native CMake/CTest-Läufe und abschließendes `./gradlew --no-daemon check build --stacktrace` wurden dokumentiert.
21 changes: 21 additions & 0 deletions Projectvorstellungs.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,24 @@ Das Repository ist bereits so strukturiert, dass UI, Bridge und Native-Layer una
- Entwickler, die Kotlin- und C++-Interop evaluieren möchten
- Teams, die einen kontrollierten Multiplayer-nahen Clientzustand visualisieren wollen
- Mitwirkende, die ein klar dokumentiertes Compose/NDK-Beispiel suchen

## Vollständiges Setup und Durchführung `run test`

### Setup

1. Repository lokal öffnen und in das Repository-Root wechseln.
2. Gradle Wrapper freischalten:

```bash
chmod +x ./gradlew
```

3. Notwendige Toolchain:
- JDK 17
- Android SDK 34
- Android NDK `27.3.13750724`
- CMake 3.22.1+

### Testdurchführung

Für den vollständigen projektweiten `run test` mit allen Schritten (Gradle-Warmup, JVM-Tests, native Host-Tests, abschließendes `check build`) siehe `/README.md`.
60 changes: 56 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,11 +207,13 @@ chmod +x ./gradlew
Zusätzlich für native Host-Tests:

```bash
cmake -S app/src/main/cpp -B /tmp/androidsa-native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON
cmake --build /tmp/androidsa-native-tests --target client_state_test
ctest --test-dir /tmp/androidsa-native-tests --output-on-failure
cmake -S app/src/main/cpp -B build/native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON
cmake --build build/native-tests --target client_state_test
ctest --test-dir build/native-tests --output-on-failure
```

`build/native-tests` liegt unter `build/` und ist per `.gitignore` vom Commit ausgeschlossen.

### Lokaler Google-Maven-Fallback für blockierte Umgebungen

Wenn `dl.google.com` lokal nicht aufgelöst oder durch die Laufzeitumgebung blockiert wird, kann ein lokaler Mirror-Proxy für Google-Maven-Artefakte gestartet werden:
Expand Down Expand Up @@ -259,10 +261,60 @@ Die Pipeline führt aus:

- **JNI-Library lädt nicht:** sicherstellen, dass `androidsa` erfolgreich gebaut wurde
- **Gradle-Abhängigkeiten schlagen fehl:** Google Maven und Maven Central Erreichbarkeit prüfen; in blockierten Agent-Umgebungen den lokalen Mirror via `tools/google_maven_proxy.py` und `ANDROIDSA_GOOGLE_MAVEN_URL=http://127.0.0.1:38473/` verwenden
- **Native Tests schlagen fehl:** Build-Verzeichnis unter `/tmp/androidsa-native-tests` neu erzeugen
- **Native Tests schlagen fehl:** Build-Verzeichnis unter `build/native-tests` neu erzeugen
- **Command wird abgelehnt:** Syntax, Maximallänge, verbotene Zeichen und Wertebereich prüfen
- **Keine Paketereignisse sichtbar:** Connect- oder Simulations-Commands erneut auslösen, damit neue UDP-Probes erzeugt werden

## Vollständiges Setup und Durchführung der Testläufe

### Setup-Schritte

1. Repository klonen und in das Projektverzeichnis wechseln.
2. Gradle Wrapper ausführbar machen:

```bash
chmod +x ./gradlew
```

3. Android-Toolchain bereitstellen:
- JDK 17
- Android SDK 34
- NDK `27.3.13750724`
- CMake 3.22.1+
4. Optional in eingeschränkten Netzumgebungen den lokalen Google-Maven-Proxy starten:

```bash
python3 tools/google_maven_proxy.py --port 38473
```

### Durchführung `run test`

1. Dependency-/Plugin-Auflösung vorwärmen:

```bash
./gradlew --no-daemon help :app:testDebugUnitTest :app:assemble --stacktrace --refresh-dependencies
```

2. JVM-Unit-Tests ausführen:

```bash
./gradlew --no-daemon :app:testDebugUnitTest --stacktrace
```

3. Native Host-Tests ausführen:

```bash
cmake -S app/src/main/cpp -B build/native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON
cmake --build build/native-tests --target client_state_test
ctest --test-dir build/native-tests --output-on-failure
```

4. Vollständige Projektvalidierung abschließen:

```bash
./gradlew --no-daemon check build --stacktrace
```

## Lizenz

Proprietary (XRDOGE-XRPL)
32 changes: 32 additions & 0 deletions app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,35 @@ Diese Regeln werden im nativen Layer erneut abgesichert.
- Änderungen an Summary-Feldern müssen mit dem nativen Format synchron bleiben
- UI-Texte sollten zum tatsächlichen Laufzeitverhalten der nativen Commands passen
- Race-Conditions besonders bei Busy-State, Auto-Refresh und manuellem Dispatch beachten

## Vollständiges Setup und Durchführung `run test`

### Setup im App-Modul

1. In das Repository-Root wechseln.
2. Gradle Wrapper aktivieren:

```bash
chmod +x ./gradlew
```

3. Lokale Toolchain sicherstellen:
- JDK 17
- Android SDK 34
- NDK `27.3.13750724`
- CMake 3.22.1+
4. Bei blockiertem Google Maven optional:

```bash
python3 tools/google_maven_proxy.py --port 38473
```

### Durchführung Testlauf (App-Modul)

```bash
./gradlew --no-daemon help :app:testDebugUnitTest :app:assemble --stacktrace --refresh-dependencies
./gradlew --no-daemon :app:testDebugUnitTest --stacktrace
./gradlew --no-daemon :app:check :app:build --stacktrace
```

Für den vollständigen projektweiten `run test` (inkl. Root-`check build`) siehe `/README.md`.
32 changes: 29 additions & 3 deletions app/src/main/cpp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,9 @@ Das Logging wird nach erfolgreichen Dispatches mit der aktuellen Diagnostics-Mel
### Direkter Host-Testlauf

```bash
cmake -S app/src/main/cpp -B /tmp/androidsa-native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON
cmake --build /tmp/androidsa-native-tests --target client_state_test
ctest --test-dir /tmp/androidsa-native-tests --output-on-failure
cmake -S app/src/main/cpp -B build/native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON
cmake --build build/native-tests --target client_state_test
ctest --test-dir build/native-tests --output-on-failure
```

## Änderungsrichtlinien
Expand All @@ -127,3 +127,29 @@ ctest --test-dir /tmp/androidsa-native-tests --output-on-failure
- Änderungen an UDP-Probing oder Summary-Feldern mit Host-Test und JVM-Tests absichern
- Event-Texte bewusst wählen, da sie direkt in der Android-Oberfläche erscheinen
- Fehlerdiagnosen so formulieren, dass die Bridge sie konsistent als Fehlerzustand interpretieren kann

## Vollständiges Setup und Durchführung `run test`

### Setup für den nativen Layer

1. Im Repository-Root arbeiten.
2. Voraussetzungen sicherstellen:
- JDK 17 (für Gradle/JVM-Tests)
- Android SDK 34 (für Gradle-Validierung)
- CMake 3.22.1+
- Android NDK `27.3.13750724`
3. Optional Gradle-Wrapper ausführbar machen:

```bash
chmod +x ./gradlew
```

### Durchführung Testlauf

```bash
cmake -S app/src/main/cpp -B build/native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON
cmake --build build/native-tests --target client_state_test
ctest --test-dir build/native-tests --output-on-failure
```

Für den vollständigen app-/projektweiten Gradle-Testlauf siehe die zentrale Anleitung in `/README.md`.
11 changes: 11 additions & 0 deletions docs/RELEASE_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Release Checklist

## 0) Vollständiges Setup und Durchführung `run test`

- [ ] Befehle werden im Repository-Root ausgeführt
- [ ] Gradle Wrapper ist ausführbar (`chmod +x ./gradlew`)
- [ ] Toolchain ist installiert (JDK 17, Android SDK 34, NDK `27.3.13750724`, CMake 3.22.1+)
- [ ] Optionaler Google-Maven-Proxy bei blockierten Netzwerken gestartet (`python3 tools/google_maven_proxy.py --port 38473`)
- [ ] Gradle-Warmup erfolgreich (`./gradlew --no-daemon help :app:testDebugUnitTest :app:assemble --stacktrace --refresh-dependencies`)
- [ ] JVM-Tests erfolgreich (`./gradlew --no-daemon :app:testDebugUnitTest --stacktrace`)
- [ ] Native Host-Tests erfolgreich (`cmake -S app/src/main/cpp -B build/native-tests -DANDROIDSA_ENABLE_NATIVE_TESTS=ON && cmake --build build/native-tests --target client_state_test && ctest --test-dir build/native-tests --output-on-failure`)
- [ ] Vollständige Validierung erfolgreich (`./gradlew --no-daemon check build --stacktrace`)

## 1) Inhalt und Dokumentation

- [ ] `CHANGELOG.md` unter `Unreleased` vollständig aktualisiert
Expand Down
Loading