267 lines
9.8 KiB
Markdown
267 lines
9.8 KiB
Markdown
<!-- file: deltas/0.1.3/beta.1.md -->
|
|
<!-- version: 1 -->
|
|
|
|
# Delta 0.1.3-beta.1 — réconciliation Android et décision finale d'artefacts
|
|
|
|
## Baseline et version
|
|
|
|
Baseline attendue : commit opérateur de `0.1.3-alpha.3`, réalisé après application de `history/0.1.3/alpha.3.md` avec statut `PASS`.
|
|
|
|
Version avant application :
|
|
|
|
```text
|
|
0.1.3-alpha.3
|
|
```
|
|
|
|
Version après application :
|
|
|
|
```text
|
|
0.1.3-beta.1
|
|
```
|
|
|
|
## Objet
|
|
|
|
Cette tranche exécute la réconciliation prévue après les révisions Android `alpha.2` et `alpha.3`. Elle ne crée aucune nouvelle règle fonctionnelle et ne modifie pas `610-ANDROID.md`.
|
|
|
|
La beta vérifie que le profil révisé reste générique face au corpus Games, se compose correctement avec `400-VALIDATION.md`, `520-JAVA.md`, `522-GRADLE.md` et `600-PLATFORMS.md`, puis tranche explicitement la question des artefacts Android supplémentaires.
|
|
|
|
## Scope
|
|
|
|
REPLACE :
|
|
|
|
```text
|
|
VERSION
|
|
README.md
|
|
docs/000-README.md
|
|
docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
|
```
|
|
|
|
ADD :
|
|
|
|
```text
|
|
deltas/0.1.3/beta.1.md
|
|
```
|
|
|
|
DELETE : aucun.
|
|
|
|
Aucun `history/0.1.3/beta.1.md` n'est anticipé.
|
|
|
|
## Réconciliation contre les owners PGR
|
|
|
|
La revue confirme la composition suivante :
|
|
|
|
```text
|
|
400-VALIDATION.md sélection et autorité générales des preuves
|
|
520-JAVA.md Java uniquement lorsqu'il est présent
|
|
522-GRADLE.md Gradle uniquement lorsqu'il est utilisé
|
|
600-PLATFORMS.md contrat commun des plateformes
|
|
610-ANDROID.md spécialisation Android
|
|
```
|
|
|
|
Le profil Android ne recopie donc pas les contrats Java/Gradle généraux et ne transforme pas la présence d'AGP ou d'un JDK de build en applicabilité automatique du profil Java.
|
|
|
|
`400-VALIDATION.md` possède déjà la validation proportionnée et les catégories de preuves. `610-ANDROID.md` ajoute uniquement les responsabilités Android nécessaires pour choisir Lint, tests, packaging, installation et smokes selon le risque.
|
|
|
|
## Réconciliation contre Games
|
|
|
|
Les choix réutilisables démontrés par Games sont intégrés comme contrats génériques sans reprendre ses valeurs concrètes.
|
|
|
|
Restent explicitement locaux à Games :
|
|
|
|
```text
|
|
chemin concret Android/
|
|
Groovy DSL
|
|
Gradle système sans Wrapper
|
|
AGP 9.4.0
|
|
Gradle 9.7.1 / contrainte système >= 9.6.0
|
|
JDK 25.0.4.1
|
|
Java source/target 17
|
|
compileSdk 36 / targetSdk 36 / minSdk 21
|
|
NDK r28c
|
|
arm64-v8a / armeabi-v7a / x86_64 / x86
|
|
cargo ndk / bridge JNI / SDL3 / staging jniLibs
|
|
modules, Activities, labels et assets Games
|
|
```
|
|
|
|
Aucune de ces valeurs n'est promue comme minimum Android PGR.
|
|
|
|
Les deux corrections `OVERRIDE` initiales sont résolues : le Wrapper n'est plus présenté comme élément structurel obligatoire et `minSdk` est un contrat produit explicitement justifié.
|
|
|
|
Le sujet 16 KB, initialement `DEFER`, a été vérifié pendant `alpha.3` puis normalisé uniquement de manière conditionnelle au code natif, au package et au canal de distribution concerné. Les versions d'outils et échéances observées restent des informations datées, pas des defaults universels.
|
|
|
|
## Décision finale d'artefacts
|
|
|
|
Aucun artefact technique supplémentaire n'est justifié pour `0.1.3`.
|
|
|
|
Ne sont donc pas créés :
|
|
|
|
```text
|
|
docs/validation/006-ANDROID_VALIDATION.md
|
|
skeleton Android
|
|
template de build Android générique
|
|
audit Python Android
|
|
owner JNI / Rust Android / SDL
|
|
```
|
|
|
|
`400 + 600 + 610`, complétés par `520` et `522` lorsqu'ils sont applicables, couvrent déjà les responsabilités réutilisables démontrées. PGR ne possède en outre aucun build Android exécutable qui fournirait aujourd'hui un sujet légitime pour un skeleton, template ou audit spécialisé.
|
|
|
|
Si un nouvel artefact fonctionnel devenait réellement nécessaire, il exigerait un REPLAN vers une tranche alpha dédiée. La beta ne doit pas ajouter opportunément du contenu fonctionnel nouveau.
|
|
|
|
## Documentation durable
|
|
|
|
La tranche actualise :
|
|
|
|
- le statut racine de la release ;
|
|
- l'index documentaire `0.1.3` ;
|
|
- le plan actif avec le `PASS` réel de `alpha.3`, la résolution des classifications et la décision finale d'artefacts.
|
|
|
|
`610-ANDROID.md` reste en révision `5`. `ROADMAP.md`, `CHANGELOG.md`, `RULES.md`, les owners `400/520/522/600`, les skeletons, templates, validations et scripts restent inchangés.
|
|
|
|
Tauri demeure strictement réservé à `0.1.4` et l'adoption Games à `0.1.5`.
|
|
|
|
## Validation opérateur
|
|
|
|
Après application du history `PASS` de `alpha.3`, commit/push de `alpha.3`, puis application du présent delta :
|
|
|
|
```bash
|
|
test "$(cat VERSION)" = '0.1.3-beta.1'
|
|
git cat-file -e HEAD:history/0.1.3/alpha.3.md
|
|
test -f history/0.1.3/alpha.3.md
|
|
test -f deltas/0.1.3/beta.1.md
|
|
test ! -e history/0.1.3/beta.1.md
|
|
|
|
grep -A2 '^## Statut$' history/0.1.3/alpha.3.md | grep -Fx 'PASS'
|
|
|
|
grep -Fx '<!-- version: 24 -->' README.md
|
|
grep -Fx '<!-- version: 38 -->' docs/000-README.md
|
|
grep -Fx '<!-- version: 4 -->' docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
|
grep -Fx '<!-- version: 5 -->' docs/rules/610-ANDROID.md
|
|
|
|
grep -Fx '<!-- version: 1 -->' docs/rules/400-VALIDATION.md
|
|
grep -Fx '<!-- version: 4 -->' docs/rules/520-JAVA.md
|
|
grep -Fx '<!-- version: 1 -->' docs/rules/522-GRADLE.md
|
|
grep -Fx '<!-- version: 1 -->' docs/rules/600-PLATFORMS.md
|
|
|
|
python3 -B -m unittest discover -s tests -v
|
|
|
|
python3 -B scripts/audit_markdown_headers.py \
|
|
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
|
python3 -B scripts/audit_markdown_tables.py \
|
|
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
|
python3 -B scripts/audit_markdown_links.py \
|
|
README.md RULES.md ROADMAP.md CHANGELOG.md docs deltas history prompts
|
|
|
|
python3 -B - <<'PYGATE'
|
|
from pathlib import Path
|
|
import re
|
|
|
|
history = Path('history/0.1.3/alpha.3.md').read_text(encoding='utf-8')
|
|
assert re.search(r'## Statut\s+PASS\s', history)
|
|
|
|
validation = Path('docs/rules/400-VALIDATION.md').read_text(encoding='utf-8')
|
|
java = Path('docs/rules/520-JAVA.md').read_text(encoding='utf-8')
|
|
gradle = Path('docs/rules/522-GRADLE.md').read_text(encoding='utf-8')
|
|
platforms = Path('docs/rules/600-PLATFORMS.md').read_text(encoding='utf-8')
|
|
android = Path('docs/rules/610-ANDROID.md').read_text(encoding='utf-8')
|
|
plan = Path('docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md').read_text(encoding='utf-8')
|
|
|
|
for phrase in (
|
|
'La validation existe pour fournir une preuve utile proportionnée au changement.',
|
|
'BUILD, PACKAGE et PUBLISH',
|
|
'## Autorité du gate opérateur',
|
|
):
|
|
assert phrase in validation, phrase
|
|
|
|
assert '# Profil Java' in java
|
|
assert '# Profil Gradle' in gradle
|
|
assert '# Règles de profils plateforme' in platforms
|
|
|
|
for phrase in (
|
|
'Android ne sélectionne pas à lui seul le langage applicatif du projet.',
|
|
'Le choix de `minSdk` MUST être justifié par le contrat produit',
|
|
'PGR ne fixe ni version NDK ni liste universelle d\'ABI.',
|
|
'PGR MUST NOT supposer qu\'un build Gradle ordinaire exécute Lint automatiquement.',
|
|
'Un AAB n\'est pas directement une preuve d\'installation ou d\'exécution sur device.',
|
|
'## Pages mémoire 16 KB et packaging natif',
|
|
'PGR MUST NOT imposer une version AGP/NDK globale uniquement pour cette raison.',
|
|
):
|
|
assert phrase in android, phrase
|
|
|
|
for forbidden in (
|
|
'targetSdk MUST être 36',
|
|
'minSdk MUST être 21',
|
|
'NDK MUST être r28',
|
|
'MUST supporter arm64-v8a, armeabi-v7a, x86_64 et x86',
|
|
'Gradle MUST être 9.7.1',
|
|
'AGP MUST être 9.4.0',
|
|
'JDK MUST être 25',
|
|
):
|
|
assert forbidden not in android, forbidden
|
|
|
|
for phrase in (
|
|
'## Décision après `alpha.3` et réconciliation `beta.1`',
|
|
'La gate opérateur de `alpha.3` est `PASS`',
|
|
'### Résolution de la classification initiale',
|
|
'### Décision finale d\'artefacts Android',
|
|
'Aucun artefact technique supplémentaire n\'est justifié pour `0.1.3`.',
|
|
'docs/validation/006-ANDROID_VALIDATION.md',
|
|
'### Frontières après réconciliation',
|
|
'Tauri 0.1.4',
|
|
'adoption Games 0.1.5',
|
|
):
|
|
assert phrase in plan, phrase
|
|
|
|
assert not Path('docs/validation/006-ANDROID_VALIDATION.md').exists()
|
|
assert not Path('history/0.1.3/beta.1.md').exists()
|
|
|
|
for forbidden_path in (
|
|
'templates/android',
|
|
'docs/skeletons/004-ANDROID.md',
|
|
'docs/rules/620-JNI.md',
|
|
):
|
|
assert not Path(forbidden_path).exists(), forbidden_path
|
|
|
|
print('0.1.3 beta.1 reconciliation audit: clean (Android profile generic, Games-local choices preserved, existing owners sufficient, no extra artifacts justified)')
|
|
PYGATE
|
|
|
|
git diff --check
|
|
|
|
git add README.md VERSION \
|
|
docs/000-README.md \
|
|
docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md \
|
|
deltas/0.1.3/beta.1.md
|
|
|
|
git diff --cached --check
|
|
git status --short
|
|
```
|
|
|
|
Le scope indexé attendu avant ajout du history est exactement :
|
|
|
|
```text
|
|
M README.md
|
|
M VERSION
|
|
A deltas/0.1.3/beta.1.md
|
|
M docs/000-README.md
|
|
M docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md
|
|
```
|
|
|
|
La revue qualitative doit confirmer que :
|
|
|
|
- aucun choix local Games n'est devenu une règle Android générale ;
|
|
- les contraintes NDK/ABI/16 KB restent conditionnelles et n'imposent aucune toolchain universelle ;
|
|
- Java et Gradle restent des profils composés uniquement lorsqu'ils sont applicables ;
|
|
- `400 + 600 + 610` expriment déjà la validation Android sans contrat séparé redondant ;
|
|
- aucun skeleton, template, audit ou owner spécialisé n'est ajouté pour satisfaire une structure théorique ;
|
|
- Tauri `0.1.4` n'est pas commencé et l'adoption Games `0.1.5` reste hors scope ;
|
|
- aucun `0.1.8` n'est réservé.
|
|
|
|
## Transition
|
|
|
|
### PASS
|
|
|
|
Produire `history/0.1.3/beta.1.md`, puis préparer `0.1.3-rc.1` pour geler le scope Android, préparer le changelog candidat et le prompt de reprise `0.1.4`, puis rejouer le release gate complet sans commencer Tauri.
|
|
|
|
### FAIL
|
|
|
|
Consigner le diagnostic réel dans `history/0.1.3/beta.1.md`, puis produire `beta.1.fix.N` ou effectuer un REPLAN uniquement si un défaut d'ownership, de généricité ou de frontière ne peut pas être corrigé localement sans nouvelle matière fonctionnelle.
|