From fb9806afd31f1fa3786d19b11f6df9d94d543376 Mon Sep 17 00:00:00 2001 From: Siphonight Date: Sat, 5 Sep 2026 20:28:47 +0200 Subject: [PATCH] =?UTF-8?q?Docs=20:=20audit=20de=20compl=C3=A9tude=20post-?= =?UTF-8?q?release-build=20(=C2=A716=20workflow=20assembleRelease,=20?= =?UTF-8?q?=C2=A716.bis=20les=20deux=20APK=20par=20tag,=20=C2=A720=20keyst?= =?UTF-8?q?ore=20d=C3=A9di=C3=A9=20restant,=20=C2=A719=20smoke-test=20R8,?= =?UTF-8?q?=20historique,=20README)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++-- docs/DEVELOPPEMENT.md | 29 +++++++++++++++++++---------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 38dedd8..6a73d00 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,9 @@ Pas de Play Store : l'app est sideloadée. Détails pas-à-pas : [docs/GUIDE_INS ## Git Dépôt : **https://gitea.cloudyfy.fr/Siphonight/HormoneTrack** (privé), avec -**releases taguées** (`v1.1.0` → `v1.2.3`) et **APK en pièce jointe de chaque -release** (téléchargeable sans compiler, cf [docs/DEVELOPPEMENT.md §16.bis](docs/DEVELOPPEMENT.md)) : +**releases taguées** (`v1.1.0` → `v1.2.5`) et **deux APK par release** +(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) : ```bash git tag # lister les releases diff --git a/docs/DEVELOPPEMENT.md b/docs/DEVELOPPEMENT.md index 3f0d364..0efd999 100644 --- a/docs/DEVELOPPEMENT.md +++ b/docs/DEVELOPPEMENT.md @@ -64,6 +64,7 @@ Fonctionnalités v1 : | 5 sept. 2026 (session tests/docs) | Correction de toutes les erreurs de compilation (dont 3 vrais bugs logiciels trouvés par les tests), **24 tests unitaires verts**, APK debug généré (18 MB), documentation complète (README + docs/), préparation repo git. | | 5 sept. 2026 (session v1.1.0) | Bugs remontés par l'utilisatrice : courbes vides (casse EEn) + pas d'édition des doses → corrigés ; régression épinglée sur ses données réelles ; APK v1.1.0. | | 5 sept. 2026 (session v1.2.0) | **Repo git initialisé** (commits par couche + tags de release) ; montée toolchain AGP 9.4/Gradle 9.7.1/Kotlin 2.3.21/BOM 2026.08.00/compileSdk 37 ; panoramique du chart, superposition des deux modèles, prévision par « Fréquence », calibration automatique optionnelle, intervalles entre doses, TimePicker centré ; **36 tests verts**, APK v1.2.0 (23 MB). | +| 5 sept. 2026 (session builds release) | Question debug vs release → **builds release optimisés** (R8 full mode + shrinkResources, 20 Mo → **2,4 Mo**, signés avec la clé debug → upgradables sans perte) ; garde-fous Gson dans `proguard-rules.pro` (réflexion) ; releases publiées avec les **deux APK** (release recommandé + debug) ; 62 tests verts. | | 5 sept. 2026 (session v1.2.5) | Bug graphique : double espace en haut (double insets) → **edge-to-edge propre** (`enableEdgeToEdge` + insets consommés une seule fois) ; 62 tests verts, APK v1.2.5 + release. | | 5 sept. 2026 (session v1.2.4) | Bug `isActive` (simulation effacée) → sémantique « drapeau administratif » (§6.bis) ; régression n°3 sur le 3ᵉ export réel (transition EV inactif → EEn actif, 38 doses, 22 labs) ; **62 tests verts**, APK v1.2.4. | | 5 sept. 2026 (session push Gitea + v1.2.3) | Push initial vers **gitea.cloudyfy.fr/Siphonight/HormoneTrack** (privé) après **anonymisation de l'historique** (filter-branch : les premiers commits embarquaient les valeurs réelles des tests) ; **données de test réelles déplacées hors dépôt** (`local-test-data/` gitignoré, tests `Assume`-skippés) ; **releases avec APK en pièce jointe** ; pics/creux + calibration T par période d'ester ; **56 tests verts**. | @@ -675,8 +676,8 @@ structure ci-dessus. **Toute restructuration du JSON impose de mettre à jour ```bash cd ~/projects/HormoneTrack -./gradlew assembleDebug testDebugUnitTest # build + 36 tests -./gradlew lint # linters Android (à configurer) +./gradlew assembleDebug testDebugUnitTest # build + 62 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 ``` @@ -707,15 +708,18 @@ Le tout est automatisé par `scripts/gitea-release.py` — **multi-instances** (`cloudyfy` par défaut, `farewell`) : ```bash -# 1. Construire l'APK au niveau du tag -git checkout vX.Y.Z && ./gradlew assembleDebug -cp app/build/outputs/apk/debug/app-debug.apk /tmp/apks/HormoneTrack-vX.Y.Z.apk +# 1. Construire les DEUX APK au niveau du tag (debug + release R8) +git checkout vX.Y.Z +./gradlew assembleRelease assembleDebug # release = recommandé (R8, cf plus bas) +cp app/build/outputs/apk/release/app-release.apk /tmp/apks/HormoneTrack-vX.Y.Z-release.apk +cp app/build/outputs/apk/debug/app-debug.apk /tmp/apks/HormoneTrack-vX.Y.Z-debug.apk git checkout main -# 2. Publier sur chaque instance (corps = CHANGELOG + APK attaché) -python3 scripts/gitea-release.py cloudyfy vX.Y.Z /tmp/apks/HormoneTrack-vX.Y.Z.apk -python3 scripts/gitea-release.py farewell vX.Y.Z /tmp/apks/HormoneTrack-vX.Y.Z.apk -# sans APK : python3 scripts/gitea-release.py farewell vX.Y.Z (corps seul) +# 2. Publier sur chaque instance (corps = CHANGELOG + les 2 APK attachés) +for I in cloudyfy farewell; do + python3 scripts/gitea-release.py $I vX.Y.Z /tmp/apks/HormoneTrack-vX.Y.Z-release.apk + python3 scripts/gitea-release.py $I vX.Y.Z /tmp/apks/HormoneTrack-vX.Y.Z-debug.apk +done ``` Le script choisit l'instance (URL, owner) et lit le token Gitea correspondant @@ -802,6 +806,10 @@ Volontaires (v1) : prochain reschedule (boot/save) — mineur - Labs : marqueur libre — E2/T exacts requis pour calibration/charts - `allowBackup=false` → seul backup = export JSON manuel +- **APK release (R8)** : la réflexion Gson est couverte par des `-keep` + explicites, mais R8 ne se vérifie pas en tests JVM → **smoke-test sur + téléphone** (export/import backup, graphiques) avant chaque publication ; + signé clé debug → upgradable sans perte, mais pas une signature « officielle » ## 20. Idées d'évolution @@ -812,7 +820,8 @@ Volontaires (v1) : 5. Verrou biométrique (BiometricPrompt), widget, export CSV 6. Charts : **zoom** + tooltip au toucher (le pan est fait, v1.2.0) ; MaterialExpressiveTheme quand l'API passera publique (cf §3) -7. Release workflow : version signée (release build) au lieu de debug APK +7. **Vrai keystore de distribution** (signature dédiée ≠ clé debug → nécessite + une migration : backup → désinstallation → installation signée → réimport) Fait (à ne pas refaire) : pan du chart (v1.2.0), pics/creux (v1.2.3), prévision par fréquence (v1.2.0), calibration par période d'ester E2 **et** T