v1.2.8 : « Fréquence d'injection » renommé « Posologie » ; script : renommage d'asset après upload (quirk Gitea)
- strings EN « Dosage » / FR « Posologie » ; hint « dernière prise » (au lieu
de « dernière injection ») — adapté aux voies non injectables
- quirk Gitea découvert : le nom d'asset passé à l'upload peut être normalisé
(observé : -release.apk → .apk générique) → le script renomme l'asset via
l'API d'édition (PATCH …/assets/{id}) après chaque upload
- release v1.2.8 publiée avec les 2 APK (release 2,5 Mo + debug 21 Mo)
- docs : §16.bis quirk, §8 (64 tests), historique, footer, README
- versionCode 11, versionName 1.2.8
This commit is contained in:
parent
ac5187b3b7
commit
1249dcdc79
@ -9,7 +9,7 @@ sauvegarde JSON. **100 % local, aucun compte, aucun serveur.**
|
|||||||
> à titre informatif — ce ne sont pas des mesures. Fie-toi toujours à tes analyses de
|
> à titre informatif — ce ne sont pas des mesures. Fie-toi toujours à tes analyses de
|
||||||
> sang et aux consignes de ton endocrinologue.
|
> sang et aux consignes de ton endocrinologue.
|
||||||
|
|
||||||
- **Statut** : v1.2.7 — build Android ✅, **64 tests unitaires** ✅ (44 sans les données de test locales ; 3 régressions épinglées sur données réelles **non versionnées**), intégration montre = notifications ✅, **dépôt Gitea privé + releases avec APK** ✅
|
- **Statut** : v1.2.8 — build Android ✅, **64 tests unitaires** ✅ (44 sans les données de test locales ; 3 régressions épinglées sur données réelles **non versionnées**), intégration montre = notifications ✅, **dépôt Gitea privé + releases avec APK** ✅
|
||||||
- **Journal des versions** : [docs/CHANGELOG.md](docs/CHANGELOG.md)
|
- **Journal des versions** : [docs/CHANGELOG.md](docs/CHANGELOG.md)
|
||||||
- **Guide utilisateur** : [docs/GUIDE_INSTALLATION.md](docs/GUIDE_INSTALLATION.md)
|
- **Guide utilisateur** : [docs/GUIDE_INSTALLATION.md](docs/GUIDE_INSTALLATION.md)
|
||||||
- **Doc de développement** (architecture, maths, décisions, bugs) : [docs/DEVELOPPEMENT.md](docs/DEVELOPPEMENT.md)
|
- **Doc de développement** (architecture, maths, décisions, bugs) : [docs/DEVELOPPEMENT.md](docs/DEVELOPPEMENT.md)
|
||||||
|
|||||||
@ -71,6 +71,7 @@ Fonctionnalités v1 :
|
|||||||
| 5 sept. 2026 (session v1.2.1) | Remontées UX/utilisateur : calibration **par période d'ester** (labs EV → doses EV, labs EEn → doses EEn — corrige les courbes gonflées), lab T "pg/mL" neutralisé, **édition des labs**, tap accueil → Graphiques + mini-légende, auto-cal fusionnée (E2+T, un seul switch) ; 2ᵉ régression épinglée sur le nouvel export ; **44 tests verts**, APK v1.2.1. |
|
| 5 sept. 2026 (session v1.2.1) | Remontées UX/utilisateur : calibration **par période d'ester** (labs EV → doses EV, labs EEn → doses EEn — corrige les courbes gonflées), lab T "pg/mL" neutralisé, **édition des labs**, tap accueil → Graphiques + mini-légende, auto-cal fusionnée (E2+T, un seul switch) ; 2ᵉ régression épinglée sur le nouvel export ; **44 tests verts**, APK v1.2.1. |
|
||||||
| 5 sept. 2026 (session v1.2.2) | Toggle T masque aussi les labs T ; **prise de sang E2 + T en une entrée** (chacune optionnelle) affichée **côte à côte** ; sélecteur d'édition par marqueur ; suppression par prise ; 4 tests de regroupement ; **48 tests verts**, APK v1.2.2. |
|
| 5 sept. 2026 (session v1.2.2) | Toggle T masque aussi les labs T ; **prise de sang E2 + T en une entrée** (chacune optionnelle) affichée **côte à côte** ; sélecteur d'édition par marqueur ; suppression par prise ; 4 tests de regroupement ; **48 tests verts**, APK v1.2.2. |
|
||||||
| 5 sept. 2026 (session v1.2.6) | Valeurs estimées affichées sur les pics/creux (drawExtremum) ; **import JSON en mode écrasement** (bug : conflit d'IDs si données existantes) avec restauration du tConfig et reprogrammation des rappels ; docs ; 62 tests verts, APK v1.2.6 + releases. |
|
| 5 sept. 2026 (session v1.2.6) | Valeurs estimées affichées sur les pics/creux (drawExtremum) ; **import JSON en mode écrasement** (bug : conflit d'IDs si données existantes) avec restauration du tConfig et reprogrammation des rappels ; docs ; 62 tests verts, APK v1.2.6 + releases. |
|
||||||
|
| 5 sept. 2026 (session v1.2.8) | « Fréquence d'injection » → **« Posologie »** (terme adapté à toutes les voies) ; quirk Gitea découvert (noms d'assets normalisés à l'upload) → renommage PATCH dans le script ; releases avec les 2 APK ; 64 tests verts. |
|
||||||
| 5 sept. 2026 (session v1.2.7) | Prévision : les créneaux passés ne sont plus simulés (bug oubli → faux pic historique) ; retard = décalage voulu ; mismatch doc-code §7.3b corrigé ; 2 tests ; **64 tests verts**, APK v1.2.7 + releases. |
|
| 5 sept. 2026 (session v1.2.7) | Prévision : les créneaux passés ne sont plus simulés (bug oubli → faux pic historique) ; retard = décalage voulu ; mismatch doc-code §7.3b corrigé ; 2 tests ; **64 tests verts**, APK v1.2.7 + releases. |
|
||||||
|
|
||||||
Leçon importante de la session build : **les erreurs de compilation et les bugs sémantiques
|
Leçon importante de la session build : **les erreurs de compilation et les bugs sémantiques
|
||||||
@ -338,7 +339,7 @@ Type de retour : `LevelPoint(timestamp, e2, t)`.
|
|||||||
|
|
||||||
## 8. Tests unitaires
|
## 8. Tests unitaires
|
||||||
|
|
||||||
**62 tests JVM, tous verts** (`./gradlew testDebugUnitTest`) — 44 sans les
|
**64 tests JVM, tous verts** (`./gradlew testDebugUnitTest`) — 44 sans les
|
||||||
données de test locales (cf §8.bis). Dépendance : JUnit 4.13.2.
|
données de test locales (cf §8.bis). Dépendance : JUnit 4.13.2.
|
||||||
Emplacement : `app/src/test/java/com/hormonetrack/`. Répertoire de travail d'exécution =
|
Emplacement : `app/src/test/java/com/hormonetrack/`. Répertoire de travail d'exécution =
|
||||||
`app/` → l'asset est lu via `src/main/assets/pk_profiles.json` (fallback `app/src/…`).
|
`app/` → l'asset est lu via `src/main/assets/pk_profiles.json` (fallback `app/src/…`).
|
||||||
@ -763,7 +764,10 @@ Le script :
|
|||||||
le fallback « Voir docs/CHANGELOG.md » ;
|
le fallback « Voir docs/CHANGELOG.md » ;
|
||||||
- crée la release si absente, sinon **met à jour le corps** (PATCH) ;
|
- crée la release si absente, sinon **met à jour le corps** (PATCH) ;
|
||||||
- attache l'APK (remplace l'asset du même nom si présent) — appeler le script
|
- attache l'APK (remplace l'asset du même nom si présent) — appeler le script
|
||||||
DEUX FOIS pour publier les deux APK (noms distincts) :
|
DEUX FOIS pour publier les deux APK (noms distincts) ;
|
||||||
|
⚠️ quirk Gitea : le nom passé à l'upload peut être normalisé (observé :
|
||||||
|
`-release.apk` → `.apk` générique) → le script RENOMME l'asset via l'API
|
||||||
|
d'édition (`PATCH …/assets/{id}`) après chaque upload — ne pas retirer ;
|
||||||
`HormoneTrack-vX.Y.Z-release.apk` (**recommandé**, R8) et
|
`HormoneTrack-vX.Y.Z-release.apk` (**recommandé**, R8) et
|
||||||
`HormoneTrack-vX.Y.Z-debug.apk` ;
|
`HormoneTrack-vX.Y.Z-debug.apk` ;
|
||||||
- lit le token Gitea dans le trousseau macOS (`security find-internet-password`) ;
|
- lit le token Gitea dans le trousseau macOS (`security find-internet-password`) ;
|
||||||
@ -923,4 +927,4 @@ Sur le téléphone de test (à compléter par l'utilisatrice) :
|
|||||||
sur le graphique** et la calibration couvre toujours ses périodes
|
sur le graphique** et la calibration couvre toujours ses périodes
|
||||||
|
|
||||||
---
|
---
|
||||||
*Doc mise à jour le 5 sept. 2026 (v1.2.7) — 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 5 sept. 2026 (v1.2.8) — 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.*
|
||||||
|
|||||||
@ -134,6 +134,11 @@ def main():
|
|||||||
"POST", token=token,
|
"POST", token=token,
|
||||||
files={"name": asset_name, "data": f.read()},
|
files={"name": asset_name, "data": f.read()},
|
||||||
)
|
)
|
||||||
|
# ⚠️ Quirk Gitea : le nom passé à l'upload peut être normalisé/écrasé
|
||||||
|
# (observé : "-release.apk"/"-debug.apk" → ".apk" générique) → renommage
|
||||||
|
# explicite via l'API d'édition d'asset, TOUJOURS.
|
||||||
|
request(f"{base}/releases/{release_id}/assets/{asset['id']}",
|
||||||
|
"PATCH", token=token, data={"name": asset_name})
|
||||||
link = asset.get("browser_download_url", "?")
|
link = asset.get("browser_download_url", "?")
|
||||||
else:
|
else:
|
||||||
link = "—"
|
link = "—"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user