Files
pgr/deltas/0.0.2/alpha.5.md
2026-09-23 15:20:18 +02:00

143 lines
4.2 KiB
Markdown

<!-- file: deltas/0.0.2/alpha.5.md -->
<!-- version: 1 -->
# Delta 0.0.2-alpha.5 — profil plateforme Android
## Baseline
Version attendue avant application :
```text
0.0.2-alpha.4.fix.1
```
Le history `history/0.0.2/alpha.4.fix.1.md` MUST avoir été appliqué et committé avant ce delta.
Version après application :
```text
0.0.2-alpha.5
```
## Objet
Matérialiser le premier profil plateforme de PGR :
```text
docs/rules/610-ANDROID.md
```
La tranche consolide les règles Android réutilisables sans absorber les spécialisations Rust/JNI ou Tauri.
## Frontières retenues
Le profil Android possède notamment :
- la structure Android dans un dépôt mono- ou multi-plateforme ;
- Java comme défaut applicatif PGR lorsque rien n'impose un autre langage ;
- la matrice AGP / Gradle / JDK ;
- la séparation `compileSdk` / `targetSdk` / `minSdk` ;
- `VERSION` / `versionName` / `versionCode` ;
- configuration locale, signing et secrets ;
- modules et dépendances Android ;
- ABI lorsqu'un code natif existe, sans définir JNI ;
- niveaux de tests Android et ordre de validation ;
- manifest, permissions et ressources ;
- APK/AAB et packaging de distribution.
Restent hors scope :
```text
Rust / Android / JNI
Tauri desktop
Tauri mobile
Web / WASM
```
Ces compositions ne doivent pas être introduites implicitement dans `610-ANDROID.md`.
## Scope
REPLACE :
```text
VERSION
RULES.md
docs/rules/000-README.md
```
ADD :
```text
docs/rules/610-ANDROID.md
deltas/0.0.2/alpha.5.md
```
DELETE : aucun.
## Validation opérateur
```bash
test "$(cat VERSION)" = "0.0.2-alpha.5"
test -f docs/rules/610-ANDROID.md
test -f deltas/0.0.2/alpha.5.md
grep -F 'Les profils Rust/JNI et Tauri ne sont pas définis ici.' docs/rules/610-ANDROID.md
grep -F 'Dans un dépôt multi-plateforme où une zone Android distincte est nécessaire' docs/rules/610-ANDROID.md
grep -F 'Java est le langage applicatif Android par défaut du profil PGR' docs/rules/610-ANDROID.md
grep -F 'Android Gradle Plugin' docs/rules/610-ANDROID.md
grep -F 'PGR MUST NOT déduire une hausse de `minSdk`' docs/rules/610-ANDROID.md
grep -F '`versionCode` est un compteur Android monotone distinct du SemVer.' docs/rules/610-ANDROID.md
grep -F '`local.properties` est un fichier local Android typique' docs/rules/610-ANDROID.md
grep -F 'Les secrets de signature ne sont jamais versionnés.' docs/rules/610-ANDROID.md
grep -F 'Une ABI annoncée comme supportée doit disposer d' docs/rules/610-ANDROID.md
grep -F 'JVM unit' docs/rules/610-ANDROID.md
grep -F '`AndroidManifest.xml` MUST déclarer uniquement les permissions' docs/rules/610-ANDROID.md
grep -F 'APK debug' docs/rules/610-ANDROID.md
grep -F 'PGR lui-même ne contient actuellement aucun projet Android' docs/rules/610-ANDROID.md
grep -F '610-ANDROID.md' RULES.md
grep -F '610-ANDROID.md' docs/rules/000-README.md
python3 -B scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
git diff --check
git add VERSION RULES.md docs/rules/000-README.md docs/rules/610-ANDROID.md deltas/0.0.2/alpha.5.md
git diff --cached --check
git status --short
```
La sortie attendue avant ajout du history est :
```text
M RULES.md
M VERSION
A deltas/0.0.2/alpha.5.md
M docs/rules/000-README.md
A docs/rules/610-ANDROID.md
```
Revue opérateur complémentaire :
- confirmer que le profil reste Android général et n'absorbe ni JNI ni Tauri ;
- confirmer que `compileSdk`, `targetSdk` et `minSdk` restent des contrats distincts ;
- confirmer que l'usage d'une toolchain moderne ne relève pas automatiquement `minSdk` ;
- confirmer que `versionCode` reste un compteur Android distinct de SemVer ;
- confirmer que les secrets et configurations locales restent hors Git ;
- confirmer que les niveaux de preuve unit/instrumented/smoke ne sont pas confondus ;
- confirmer qu'aucune validation Android réelle n'est revendiquée pour PGR lui-même en l'absence de projet Android.
## Transition
### PASS
Créer et appliquer séparément `history/0.0.2/alpha.5.md`, committer la tranche, puis passer à `0.0.2-beta.1` pour la réconciliation des profils.
### FAIL
Rester dans `0.0.2-alpha.5.fix.M` jusqu'à correction. Un REPLAN n'est nécessaire que si la correction révèle un élargissement substantiel du scope.