From 6c7f2fa2e24010a5a6194259372a0db2c499d6fd Mon Sep 17 00:00:00 2001 From: Siphonight Date: Sun, 6 Sep 2026 10:23:43 +0200 Subject: [PATCH] =?UTF-8?q?Docs=20:=20audit=20de=20fra=C3=AEcheur=20comple?= =?UTF-8?q?t=20=E2=80=94=20compteurs=20de=20tests=20(87),=20TOC=20(.bis),?= =?UTF-8?q?=20=C2=A73=20buildConfig,=20=C2=A716=20workflow,=20=C2=A78.bis,?= =?UTF-8?q?=20README=20versions,=20GUIDE=20logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - DEVELOPPEMENT : §16 (87 tests), §16.bis étape 2 (87), footer (87/87), §8.bis (44 au lieu de 87), §3 (buildFeatures buildConfig), TOC (§6.bis, §8.bis, §16.bis ajoutés ; titre §16 harmonisé), README (releases v1.1.0 → v1.3.1), GUIDE (logs de diagnostic) - 87/87 tests verts, scan confidentialité : 0 hit --- README.md | 2 +- docs/DEVELOPPEMENT.md | 17 +++++++++-------- docs/GUIDE_INSTALLATION.md | 2 ++ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 62b1491..29ea8b4 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ Pas de Play Store : l'app est sideloadée. Détails pas-à-pas : [docs/GUIDE_INS Dépôts : **gitea.cloudyfy.fr** et **gitea.farewell.dev** (miroir) — `Siphonight/HormoneTrack` sur les deux (privé), avec -**releases taguées** (`v1.1.0` → `v1.2.5`) et **deux APK par release** +**releases taguées** (`v1.1.0` → `v1.3.1`) et **deux APK par release** (depuis v1.2.5) (téléchargeables sans compiler, cf [docs/DEVELOPPEMENT.md §16.bis](docs/DEVELOPPEMENT.md)) : `-release.apk` (**recommandé**, optimisé R8, 2,4 Mo) et `-debug.apk` (20 Mo) : diff --git a/docs/DEVELOPPEMENT.md b/docs/DEVELOPPEMENT.md index e6162fc..37cf593 100644 --- a/docs/DEVELOPPEMENT.md +++ b/docs/DEVELOPPEMENT.md @@ -14,9 +14,9 @@ 3. [Stack & versions (épinglées)](#3-stack--versions-épinglées) 4. [Environnement de build (cette machine)](#4-environnement-de-build-cette-machine) 5. [Architecture générale](#5-architecture-générale) -6. [Modèle de données (Room)](#6-modèle-de-données-room) +6. [Modèle de données (Room)](#6-modèle-de-données-room) + [6.bis Sémantique isActive](#6bis-sémantique-isactive-v124--drapeau-administratif-jamais-un-filtre) 7. [Moteur pharmacocinétique](#7-moteur-pharmacocinétique) -8. [Tests unitaires](#8-tests-unitaires) +8. [Tests unitaires](#8-tests-unitaires) + [8.bis Données de test hors dépôt](#8bis-données-de-test-réelles--hors-dépôt-local-test-data) 9. [Système de rappels](#9-système-de-rappels) 10. [UI & navigation](#10-ui--navigation) 11. [Graphiques (CurveChart)](#11-graphiques-curvechart) @@ -24,7 +24,7 @@ 13. [Sauvegarde JSON](#13-sauvegarde-json) 14. [Bugs corrigés (historique complet — à ne pas réintroduire)](#14-bugs-corrigés) 15. [Comment régénérer l'asset pk_profiles.json](#15-comment-régénérer-lasset-pk_profilesjson) -16. [Workflow build / test / install](#16-workflow-build--test--install) +16. [Workflow build / test / install](#16-workflow-build--test--install) + [16.bis Releases Gitea](#16bis-releases-gitea-avec-apk-téléchargeable) 17. [Montre : Gadgetbridge & options](#17-montre--gadgetbridge--options) 18. [Espace disque & coûts](#18-espace-disque--coûts) 19. [Limites connues & choix volontaires](#19-limites-connues) @@ -105,6 +105,7 @@ et en testant** — aucun build n'avait été lancé avant la session 3. | JUnit | 4.13.2 (testImplementation) | idem | | WorkManager | 2.11.2 (déclaré, non utilisé — supprimable) | idem | | compileSdk / targetSdk | **37** / 37 ; minSdk 26 ; Java target 17 | app | +| buildFeatures | compose + **buildConfig** (VERSION_NAME pour l'app) | app | Notes importantes (v1.2.0) : - **AGP 9** : Kotlin est intégré à AGP — appliquer `org.jetbrains.kotlin.android` est une @@ -406,7 +407,7 @@ dépôt (ni maintenant, ni si le repo devient public un jour). - `.gitignore` contient `local-test-data/` → jamais commités ; - les tests font `Assume.assumeTrue(file.exists())` dans le `@Before` : **sans le fichier, la classe est IGNORÉE** (skipped, pas failed) — un clone neuf ou une CI - exécute 44 tests au lieu de 67 ; + exécute 44 tests au lieu de 87 ; - le workdir des tests Gradle est le dossier du module (`app/`) → les tests cherchent les fichiers à plusieurs chemins (`../local-test-data/…` en premier) ; - **pour les lancer** : exporter un backup JSON depuis l'app → l'enregistrer sous @@ -777,11 +778,11 @@ Le script de la session 1 a été exécuté inline (non archivé) — le refaire structure ci-dessus. **Toute restructuration du JSON impose de mettre à jour `PKProfileStore.initWithJson`.** -## 16. Workflow build / test / git +## 16. Workflow build / test / install / git ```bash cd ~/projects/HormoneTrack -./gradlew assembleDebug testDebugUnitTest # build + 62 tests (44 sans données locales) +./gradlew assembleDebug testDebugUnitTest # build + 87 tests (44 sans données locales) ./gradlew assembleRelease # APK optimisé R8 (cf §16.bis) adb install -r app/build/outputs/apk/debug/app-debug.apk ``` @@ -885,7 +886,7 @@ vérifie pas en tests JVM). 1. **Bumper la version** dans `app/build.gradle.kts` : `versionCode = N+1`, `versionName = "X.Y.Z+1"` (SemVer : fix = Z, feature = Y). -2. **Tests verts obligatoires** : `./gradlew testDebugUnitTest` — 62 au total, +2. **Tests verts obligatoires** : `./gradlew testDebugUnitTest` — 87 au total, 44 si `local-test-data/` est absent (les régressions réelles sont skippées). 3. **Docs** : section `## [X.Y.Z]` en tête de `docs/CHANGELOG.md` (le corps des releases Gitea en sera extrait automatiquement par le script), + §14 si bug @@ -1026,4 +1027,4 @@ Sur le téléphone de test (à compléter par l'utilisatrice) : sur le graphique** et la calibration couvre toujours ses périodes --- -*Doc mise à jour le 6 sept. 2026 (v1.3.1) — build OK, 62/62 tests verts (44 sans les données locales), dépôts Gitea (cloudyfy + farewell) avec releases APK, aucune donnée de santé dans le dépôt ni l'historique.* +*Doc mise à jour le 6 sept. 2026 (v1.3.1) — build OK, 87/87 tests verts (44 sans les données locales), dépôts Gitea (cloudyfy + farewell) avec releases APK, aucune donnée de santé dans le dépôt ni l'historique.* diff --git a/docs/GUIDE_INSTALLATION.md b/docs/GUIDE_INSTALLATION.md index c94af2c..a03feca 100644 --- a/docs/GUIDE_INSTALLATION.md +++ b/docs/GUIDE_INSTALLATION.md @@ -108,6 +108,8 @@ Les notifications de l'app remontent automatiquement sur la montre via **Huawei - Choisis bien l'unité : elle est convertie automatiquement pour l'affichage et la calibration (E2 en pg/mL ; T en ng/mL, ng/dL, ng/L, nmol/L) 4. **Calibration** (dans l'édition d'un traitement E2) → « Calibrer avec les analyses » + - Paramètres → **Logs de diagnostic** : exporte le journal de l'app (utile + en cas de bug à signaler) → calcule le facteur d'échelle = médiane(lab ÷ prédiction), comme le « Scale factor » du `.ods` 5. **Paramètres** : - **Langue** : Système / Français / English