0.1.3-beta.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: README.md -->
|
<!-- file: README.md -->
|
||||||
<!-- version: 23 -->
|
<!-- version: 24 -->
|
||||||
|
|
||||||
# Project Governance Rules
|
# Project Governance Rules
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ Le dépôt officiel est `https://git.sasedev.com/Sasedev/pgr`.
|
|||||||
|
|
||||||
## Statut
|
## Statut
|
||||||
|
|
||||||
PGR a clôturé sa phase de fondation `0.0.x`, dispose avec `0.1.0` de sa première baseline réutilisable stable, avec `0.1.1` d’une fondation frontend Web stable et avec `0.1.2` d’owners Java, Maven et Gradle séparés et composables après réévaluation du corpus Games. La release `0.1.3-alpha.1` ouvre maintenant la réévaluation pratique du profil Android à partir de la baseline Games autoritaire, sans absorber Tauri ni l’adoption Games.
|
PGR a clôturé sa phase de fondation `0.0.x`, dispose avec `0.1.0` de sa première baseline réutilisable stable, avec `0.1.1` d’une fondation frontend Web stable et avec `0.1.2` d’owners Java, Maven et Gradle séparés et composables après réévaluation du corpus Games. La release `0.1.3-beta.1` réconcilie maintenant le profil Android révisé contre Games et les owners PGR existants : les choix locaux Games restent locaux, les contraintes natives restent conditionnelles et aucun artefact Android supplémentaire n’est ajouté sans besoin démontré. Tauri reste réservé à `0.1.4` et l’adoption Games à `0.1.5`.
|
||||||
|
|
||||||
La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` établit la gouvernance normative et documentaire de PGR lui-même. La release `0.0.2` ajoute les premiers profils réutilisables Rust/Cargo, Java/Maven/Gradle et Android, ainsi que deux audits Markdown. La release `0.0.3` fournit les premiers modèles Rust/Cargo, deux audits de style Rust facultatifs, l'audit des headers Markdown et la spécification du message manuel de reprise. La release `0.0.4` définit le contrat transversal des skeleton specifications, ajoute une fondation composable de gouvernance locale et une première spécialisation Rust/Cargo workspace fondée sur les profils `500 + 510` et les cinq templates existants. La release `0.0.5` réconcilie PGR avec les baselines réelles de `khadhroony-solana-project` et `sasedev-games` : prompts versionnés, contrats documentaires locaux, lifecycle inter-release, profil Rust strict et audits monotâches, premier profil Tauri 2 et décision explicite de différer son skeleton complet jusqu'à matérialisation d'owners Web suffisants. La release `0.1.0` stabilise la première baseline réutilisable : adoption `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER`, skeletons/templates Rust/Cargo exercés par dry-run, clôture `rel.N`, handoff opérateur automatique et trajectoire `0.1.1` à `0.1.7` issue d'une revue d'horizon explicite. La release `0.1.1` stabilise la fondation frontend Web : owners indépendants TypeScript/package/Vite/CSS-Sass, déclarations de types externes conditionnelles, package manager neutre, validation frontend indépendante du host et skeleton Web composable, tout en conservant le skeleton Tauri en `DEFER` jusqu’à son réexamen `0.1.4`. La release `0.1.2` stabilise trois owners indépendants `520-JAVA`, `521-MAVEN` et `522-GRADLE`, clarifie JDK/source/bytecode et l'ownership Gradle, conserve Maven cohérent sans corpus artificiel et maintient les responsabilités Android dans `610-ANDROID.md` pour leur réévaluation distincte en `0.1.3`.
|
La version courante est définie par [`VERSION`](VERSION). La release `0.0.1` établit la gouvernance normative et documentaire de PGR lui-même. La release `0.0.2` ajoute les premiers profils réutilisables Rust/Cargo, Java/Maven/Gradle et Android, ainsi que deux audits Markdown. La release `0.0.3` fournit les premiers modèles Rust/Cargo, deux audits de style Rust facultatifs, l'audit des headers Markdown et la spécification du message manuel de reprise. La release `0.0.4` définit le contrat transversal des skeleton specifications, ajoute une fondation composable de gouvernance locale et une première spécialisation Rust/Cargo workspace fondée sur les profils `500 + 510` et les cinq templates existants. La release `0.0.5` réconcilie PGR avec les baselines réelles de `khadhroony-solana-project` et `sasedev-games` : prompts versionnés, contrats documentaires locaux, lifecycle inter-release, profil Rust strict et audits monotâches, premier profil Tauri 2 et décision explicite de différer son skeleton complet jusqu'à matérialisation d'owners Web suffisants. La release `0.1.0` stabilise la première baseline réutilisable : adoption `ADOPT / KEEP-LOCAL / OVERRIDE / DEFER`, skeletons/templates Rust/Cargo exercés par dry-run, clôture `rel.N`, handoff opérateur automatique et trajectoire `0.1.1` à `0.1.7` issue d'une revue d'horizon explicite. La release `0.1.1` stabilise la fondation frontend Web : owners indépendants TypeScript/package/Vite/CSS-Sass, déclarations de types externes conditionnelles, package manager neutre, validation frontend indépendante du host et skeleton Web composable, tout en conservant le skeleton Tauri en `DEFER` jusqu’à son réexamen `0.1.4`. La release `0.1.2` stabilise trois owners indépendants `520-JAVA`, `521-MAVEN` et `522-GRADLE`, clarifie JDK/source/bytecode et l'ownership Gradle, conserve Maven cohérent sans corpus artificiel et maintient les responsabilités Android dans `610-ANDROID.md` pour leur réévaluation distincte en `0.1.3`.
|
||||||
|
|
||||||
|
|||||||
266
deltas/0.1.3/beta.1.md
Normal file
266
deltas/0.1.3/beta.1.md
Normal file
@@ -0,0 +1,266 @@
|
|||||||
|
<!-- 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.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/000-README.md -->
|
<!-- file: docs/000-README.md -->
|
||||||
<!-- version: 37 -->
|
<!-- version: 38 -->
|
||||||
|
|
||||||
# Documentation PGR
|
# Documentation PGR
|
||||||
|
|
||||||
@@ -22,8 +22,8 @@ Les templates techniques copiables sous `templates/` restent séparés des instr
|
|||||||
|
|
||||||
## Points d'entrée de 0.1.3
|
## Points d'entrée de 0.1.3
|
||||||
|
|
||||||
- [`plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md`](plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md) — plan actif de la réévaluation pratique Android, créé après audit de `v0.1.2` et du corpus Games autoritaire.
|
- [`plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md`](plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md) — plan actif de la réévaluation Android ; `alpha.2` et `alpha.3` ont révisé le profil et `beta.1` réconcilie les décisions avant gel RC.
|
||||||
- [`rules/610-ANDROID.md`](rules/610-ANDROID.md) — owner Android à réévaluer ; il reste inchangé dans `alpha.1` avant normalisation des décisions démontrées.
|
- [`rules/610-ANDROID.md`](rules/610-ANDROID.md) — owner Android révisé : contrats SDK/identité/signing, natif/ABI, Lint, niveaux de tests, packaging/distribution et 16 KB conditionnel, sans absorber les choix propres à Games.
|
||||||
- [`rules/520-JAVA.md`](rules/520-JAVA.md) et [`rules/522-GRADLE.md`](rules/522-GRADLE.md) — owners composés uniquement lorsqu'un projet Android contient réellement du Java ou utilise Gradle.
|
- [`rules/520-JAVA.md`](rules/520-JAVA.md) et [`rules/522-GRADLE.md`](rules/522-GRADLE.md) — owners composés uniquement lorsqu'un projet Android contient réellement du Java ou utilise Gradle.
|
||||||
- [`rules/600-PLATFORMS.md`](rules/600-PLATFORMS.md) et [`rules/400-VALIDATION.md`](rules/400-VALIDATION.md) — contrats généraux de plateforme et de preuve auxquels la spécialisation Android doit rester conforme.
|
- [`rules/600-PLATFORMS.md`](rules/600-PLATFORMS.md) et [`rules/400-VALIDATION.md`](rules/400-VALIDATION.md) — contrats généraux de plateforme et de preuve auxquels la spécialisation Android doit rester conforme.
|
||||||
- [`studies/003-V0_1_0_HORIZON_REVIEW.md`](studies/003-V0_1_0_HORIZON_REVIEW.md) — revue ayant engagé Android `0.1.3`, Tauri `0.1.4` puis l'adoption Games `0.1.5` comme scopes distincts.
|
- [`studies/003-V0_1_0_HORIZON_REVIEW.md`](studies/003-V0_1_0_HORIZON_REVIEW.md) — revue ayant engagé Android `0.1.3`, Tauri `0.1.4` puis l'adoption Games `0.1.5` comme scopes distincts.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md -->
|
<!-- file: docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md -->
|
||||||
<!-- version: 3 -->
|
<!-- version: 4 -->
|
||||||
|
|
||||||
# Plan 0.1.3 — réévaluation pratique Android
|
# Plan 0.1.3 — réévaluation pratique Android
|
||||||
|
|
||||||
@@ -411,6 +411,64 @@ La tranche révise uniquement `610-ANDROID.md` pour :
|
|||||||
|
|
||||||
Aucun owner JNI/Rust/SDL, skeleton Android, audit Python ou contrat `docs/validation/` n'est créé. La décision finale sur l'absence d'artefact supplémentaire reste réservée à `beta.1` après réconciliation.
|
Aucun owner JNI/Rust/SDL, skeleton Android, audit Python ou contrat `docs/validation/` n'est créé. La décision finale sur l'absence d'artefact supplémentaire reste réservée à `beta.1` après réconciliation.
|
||||||
|
|
||||||
|
## Décision après `alpha.3` et réconciliation `beta.1`
|
||||||
|
|
||||||
|
La gate opérateur de `alpha.3` est `PASS`. Les `48/48` tests Python, les trois audits Markdown, l'audit Android natif/distribution et les contrôles Git sont propres ; aucun `alpha.3.fix.N` n'est requis.
|
||||||
|
|
||||||
|
La réconciliation beta relit le profil Android révisé contre le corpus Games, [`400-VALIDATION.md`](../rules/400-VALIDATION.md), [`520-JAVA.md`](../rules/520-JAVA.md), [`522-GRADLE.md`](../rules/522-GRADLE.md), [`600-PLATFORMS.md`](../rules/600-PLATFORMS.md) et la revue d'horizon. Elle ne rouvre aucun contrat fonctionnel déjà validé en `alpha.2` / `alpha.3`.
|
||||||
|
|
||||||
|
### Résolution de la classification initiale
|
||||||
|
|
||||||
|
Les décisions `ADOPT` sont couvertes par les owners existants : structure Android conditionnelle, composition de profils, compatibilité AGP/Gradle/JDK, séparation des niveaux SDK, versioning Android, configuration locale/signing, ABI conditionnelles et validation package/runtime proportionnée.
|
||||||
|
|
||||||
|
Les décisions `KEEP-LOCAL` restent locales à Games : chemin concret `Android/`, Groovy DSL, Gradle système sans Wrapper, versions AGP/Gradle/JDK/Java, niveaux SDK, NDK `r28c`, quatre ABI, `cargo ndk`, bridge JNI, SDL3, modules, Activities, labels et assets. Aucune de ces valeurs ou stacks n'est devenue un `MUST` Android général.
|
||||||
|
|
||||||
|
Les deux `OVERRIDE` initiaux sont résolus par `alpha.2` : l'exemple structurel ne présente plus `gradlew*` comme élément obligatoire et `minSdk` est désormais un contrat produit explicitement justifié plutôt qu'une course vers la valeur la plus basse.
|
||||||
|
|
||||||
|
Le `DEFER` 16 KB a été levé en `alpha.3` après vérification des sources Android officielles courantes, sous forme d'un contrat conditionnel au code natif, au package et au canal de distribution ; aucune version d'outil ni échéance datée n'est transformée en default PGR universel.
|
||||||
|
|
||||||
|
Les autres `DEFER` restent bornés : aucun owner JNI/Rust Android n'est justifié, Tauri reste réservé à `0.1.4` et l'adoption Games à `0.1.5`.
|
||||||
|
|
||||||
|
### Décision finale d'artefacts Android
|
||||||
|
|
||||||
|
Aucun artefact technique supplémentaire n'est justifié pour `0.1.3`.
|
||||||
|
|
||||||
|
Ne sont donc pas ajouté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
|
||||||
|
```
|
||||||
|
|
||||||
|
La raison est positive et vérifiable :
|
||||||
|
|
||||||
|
- `400-VALIDATION.md` possède déjà la sélection proportionnée des preuves, les catégories `LINT`, `TEST`, `PACKAGE` et `SMOKE`, ainsi que l'autorité du gate opérateur ;
|
||||||
|
- `600-PLATFORMS.md` possède la composition et la validation spécialisées des plateformes sans rendre chaque smoke obligatoire ;
|
||||||
|
- `520-JAVA.md` et `522-GRADLE.md` restent composés uniquement lorsqu'ils sont applicables et évitent de recopier leurs contrats dans Android ;
|
||||||
|
- `610-ANDROID.md` possède désormais les responsabilités spécifiques de SDK, identité applicative, signing, NDK/ABI, Android Lint, niveaux de tests, packaging APK/AAB, distribution et 16 KB ;
|
||||||
|
- PGR ne contient aucun build Android exécutable qui justifierait aujourd'hui un skeleton, template ou audit spécialisé supplémentaire.
|
||||||
|
|
||||||
|
Créer un artefact seulement pour refléter la structure de Games ou pour dupliquer `400 + 610` augmenterait la maintenance sans apporter de nouvelle preuve. Si un futur corpus démontre une lacune réutilisable, elle devra être traitée dans une tranche qui possède réellement ce scope.
|
||||||
|
|
||||||
|
### Frontières après réconciliation
|
||||||
|
|
||||||
|
La beta confirme donc :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Android générique 600 + 610
|
||||||
|
Gradle si utilisé + 522
|
||||||
|
Java si présent + 520
|
||||||
|
validation générale 400
|
||||||
|
JNI / Rust / SDL hors 610
|
||||||
|
Tauri 0.1.4
|
||||||
|
adoption Games 0.1.5
|
||||||
|
```
|
||||||
|
|
||||||
|
La prochaine tranche peut être `rc.1` si la gate opérateur de `beta.1` confirme cette réconciliation. La RC devra geler le scope Android et préparer le prompt de reprise `0.1.4` sans commencer le réexamen Tauri.
|
||||||
|
|
||||||
## Réévaluation initiale de `610-ANDROID.md`
|
## Réévaluation initiale de `610-ANDROID.md`
|
||||||
|
|
||||||
Le profil courant contient déjà une part importante des contrats démontrés par Games : structure conditionnelle, matrice AGP/Gradle/JDK, niveaux SDK séparés, version Android, configuration locale, signing, modules, dépendances, ABI conditionnelles, niveaux de tests, validation proportionnée, manifests/resources et artefacts APK/AAB.
|
Le profil courant contient déjà une part importante des contrats démontrés par Games : structure conditionnelle, matrice AGP/Gradle/JDK, niveaux SDK séparés, version Android, configuration locale, signing, modules, dépendances, ABI conditionnelles, niveaux de tests, validation proportionnée, manifests/resources et artefacts APK/AAB.
|
||||||
|
|||||||
102
history/0.1.3/beta.1.md
Normal file
102
history/0.1.3/beta.1.md
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<!-- file: history/0.1.3/beta.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# History 0.1.3-beta.1 — réconciliation Android et décision finale d'artefacts
|
||||||
|
|
||||||
|
## Statut
|
||||||
|
|
||||||
|
PASS
|
||||||
|
|
||||||
|
La gate opérateur de `0.1.3-beta.1` exécutée le `2026-09-28` est propre. La réconciliation confirme que le profil Android révisé reste générique, que les choix Games restent locaux et qu'aucun artefact Android supplémentaire n'est justifié avant la release candidate.
|
||||||
|
|
||||||
|
## Intégration de `alpha.3`
|
||||||
|
|
||||||
|
Avant la gate `beta.1`, l'opérateur a intégré le history `PASS` de `alpha.3`, puis commit/push la tranche :
|
||||||
|
|
||||||
|
```text
|
||||||
|
commit local observé 8cbd686 0.1.3-alpha.3
|
||||||
|
push origin/master 1223a70..8cbd686
|
||||||
|
```
|
||||||
|
|
||||||
|
Le history `history/0.1.3/alpha.3.md` est donc présent dans `HEAD` avant validation de `beta.1`.
|
||||||
|
|
||||||
|
## Contrôles d'identité
|
||||||
|
|
||||||
|
Les contrôles opérateur ont confirmé :
|
||||||
|
|
||||||
|
```text
|
||||||
|
VERSION 0.1.3-beta.1
|
||||||
|
history/0.1.3/alpha.3.md présent dans HEAD et PASS
|
||||||
|
deltas/0.1.3/beta.1.md présent
|
||||||
|
history/0.1.3/beta.1.md absent pendant la gate
|
||||||
|
README.md version 24
|
||||||
|
docs/000-README.md version 38
|
||||||
|
docs/plans/009-V0_1_3_ANDROID_REEVALUATION_PLAN.md version 4
|
||||||
|
docs/rules/610-ANDROID.md version 5
|
||||||
|
docs/rules/400-VALIDATION.md version 1
|
||||||
|
docs/rules/520-JAVA.md version 4
|
||||||
|
docs/rules/522-GRADLE.md version 1
|
||||||
|
docs/rules/600-PLATFORMS.md version 1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Tests Python
|
||||||
|
|
||||||
|
La suite complète a affiché :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Ran 48 tests in 0.696s
|
||||||
|
|
||||||
|
OK
|
||||||
|
```
|
||||||
|
|
||||||
|
Soit `48/48` tests `PASS`.
|
||||||
|
|
||||||
|
## Audits Markdown
|
||||||
|
|
||||||
|
Les trois audits documentaires sont propres :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Markdown header audit: clean (258 file(s))
|
||||||
|
Markdown table audit: clean (11 table(s), 258 file(s))
|
||||||
|
Markdown link audit: clean (327 local link(s), 258 file(s))
|
||||||
|
```
|
||||||
|
|
||||||
|
## Réconciliation Android `beta.1`
|
||||||
|
|
||||||
|
Le contrôle structurel a affiché :
|
||||||
|
|
||||||
|
```text
|
||||||
|
0.1.3 beta.1 reconciliation audit: clean (Android profile generic, Games-local choices preserved, existing owners sufficient, no extra artifacts justified)
|
||||||
|
```
|
||||||
|
|
||||||
|
Il a notamment confirmé :
|
||||||
|
|
||||||
|
- `400-VALIDATION.md`, `520-JAVA.md`, `522-GRADLE.md`, `600-PLATFORMS.md` et `610-ANDROID.md` restent des owners séparés et composables ;
|
||||||
|
- Android ne sélectionne pas Java à lui seul et ne recopie pas les responsabilités Gradle générales ;
|
||||||
|
- les versions AGP/Gradle/JDK/Java, niveaux SDK, NDK, quatre ABI et la chaîne Rust/JNI/SDL observés dans Games restent des choix locaux ;
|
||||||
|
- aucune valeur Games n'est devenue un `MUST` Android général ;
|
||||||
|
- les contraintes natives, de packaging et 16 KB restent conditionnelles ;
|
||||||
|
- aucun `docs/validation/006-ANDROID_VALIDATION.md`, skeleton Android, template Android, audit Python Android ou owner JNI/Rust/SDL n'est créé ;
|
||||||
|
- les frontières `0.1.4` Tauri et `0.1.5` adoption Games restent intactes.
|
||||||
|
|
||||||
|
## Hygiène Git et scope observé
|
||||||
|
|
||||||
|
`git diff --check` et `git diff --cached --check` n'ont produit aucun diagnostic.
|
||||||
|
|
||||||
|
Le scope indexé observé 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
|
||||||
|
```
|
||||||
|
|
||||||
|
## Décision
|
||||||
|
|
||||||
|
`0.1.3-beta.1` est validée `PASS`.
|
||||||
|
|
||||||
|
Aucun fix ni REPLAN n'est requis. La tranche suivante est `0.1.3-rc.1` : elle doit geler le scope Android déjà validé, produire le changelog candidat, préparer `prompts/010-V0_1_4_START_PROMPT.md` et rejouer les gates de release sans introduire de nouvelle règle fonctionnelle Android.
|
||||||
|
|
||||||
|
Le prompt `010` doit préparer uniquement le réexamen Tauri `0.1.4` après publication vérifiée de `v0.1.3`. Il ne doit ni lever le `DEFER` Tauri par anticipation, ni commencer l'adoption Games `0.1.5`.
|
||||||
Reference in New Issue
Block a user