0.1.2-beta.1
This commit is contained in:
275
deltas/0.1.2/beta.1.md
Normal file
275
deltas/0.1.2/beta.1.md
Normal file
@@ -0,0 +1,275 @@
|
||||
<!-- file: deltas/0.1.2/beta.1.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# Delta 0.1.2-beta.1 — réconciliation intégrée et décision finale d'artefacts
|
||||
|
||||
## Baseline et version
|
||||
|
||||
Baseline attendue : commit opérateur de `0.1.2-alpha.3`, réalisé après application de `history/0.1.2/alpha.3.md` avec statut `PASS`.
|
||||
|
||||
Version avant application :
|
||||
|
||||
```text
|
||||
0.1.2-alpha.3
|
||||
```
|
||||
|
||||
Version après application :
|
||||
|
||||
```text
|
||||
0.1.2-beta.1
|
||||
```
|
||||
|
||||
## Objet
|
||||
|
||||
Cette tranche exécute la réconciliation prévue après la scission des owners Java, Maven et Gradle. Elle ne crée aucune nouvelle règle fonctionnelle et ne modifie aucun des profils `520-JAVA.md`, `521-MAVEN.md`, `522-GRADLE.md` ou `610-ANDROID.md`.
|
||||
|
||||
La beta confirme que la séparation `520/521/522` résout l'ambiguïté d'applicabilité sans importer les choix locaux Games ni ouvrir le scope Android.
|
||||
|
||||
## Scope
|
||||
|
||||
REPLACE :
|
||||
|
||||
```text
|
||||
VERSION
|
||||
README.md
|
||||
docs/000-README.md
|
||||
docs/architecture/003-RULE_PROFILE_MODEL.md
|
||||
docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md
|
||||
```
|
||||
|
||||
ADD :
|
||||
|
||||
```text
|
||||
deltas/0.1.2/beta.1.md
|
||||
```
|
||||
|
||||
DELETE : aucun.
|
||||
|
||||
Aucun `history/0.1.2/beta.1.md` n'est anticipé.
|
||||
|
||||
## Réconciliation des owners
|
||||
|
||||
La revue confirme les contrats suivants :
|
||||
|
||||
```text
|
||||
520-JAVA.md Java uniquement
|
||||
521-MAVEN.md Maven uniquement lorsqu'il est réellement utilisé
|
||||
522-GRADLE.md Gradle uniquement lorsqu'il est réellement utilisé
|
||||
```
|
||||
|
||||
La composition reste explicite. Un projet Java/Maven applique `520 + 521`; un projet Java/Gradle applique `520 + 522`; un projet Gradle sans Java n'applique pas `520` par simple transitivité.
|
||||
|
||||
L'ancien `520-JAVA_MAVEN_GRADLE.md` reste un bridge `SUPERSEDED` non normatif pour la compatibilité documentaire historique et ne redevient pas sélectionnable.
|
||||
|
||||
## Réconciliation contre Games
|
||||
|
||||
Games fournit une preuve réelle pour Java et Gradle, mais aucune preuve Maven. La beta confirme donc que :
|
||||
|
||||
- la séparation JDK de build / niveau source / bytecode-runtime est généralisable ;
|
||||
- l'ownership `settings` / root / module / propriétés partagées est généralisable ;
|
||||
- une politique Gradle système doit avoir une contrainte effectivement vérifiée ;
|
||||
- le Wrapper reste un mécanisme conditionnel de reproductibilité ;
|
||||
- Groovy DSL et absence de Wrapper restent des choix locaux Games ;
|
||||
- JDK 25, Java 17, Gradle 9.6.0+ et Gradle 9.7.1 ne deviennent aucun minimum PGR ;
|
||||
- aucun contenu Maven nouveau n'est déduit d'un corpus qui n'utilise pas Maven.
|
||||
|
||||
## Frontière Android
|
||||
|
||||
La beta ne modifie pas `610-ANDROID.md`.
|
||||
|
||||
Restent explicitement hors du scope `0.1.2` :
|
||||
|
||||
```text
|
||||
AGP
|
||||
compileSdk / targetSdk / minSdk
|
||||
SDK / NDK
|
||||
ABI / JNI
|
||||
manifests / resources
|
||||
APK / AAB / signing
|
||||
Variant API
|
||||
AVD / devices / smokes Android
|
||||
contraintes 16 KB
|
||||
SDL3 et architecture produit Games
|
||||
```
|
||||
|
||||
Ces responsabilités restent réservées à `0.1.3` ou à un owner plus spécifique.
|
||||
|
||||
## Décision finale d'artefacts
|
||||
|
||||
Aucun artefact technique supplémentaire n'est justifié pour `0.1.2`.
|
||||
|
||||
Ne sont donc pas ajoutés :
|
||||
|
||||
```text
|
||||
nouveau contrat docs/validation/
|
||||
template Java/Maven/Gradle générique
|
||||
skeleton Java/Gradle générique
|
||||
audit Python Java/Maven/Gradle
|
||||
artefact Maven déduit de Games
|
||||
```
|
||||
|
||||
La raison est positive et vérifiable : les trois owners couvrent déjà les responsabilités génériques démontrées, tandis que Java, Maven et Gradle eux-mêmes possèdent les preuves exécutables de compilation/build/test. Ajouter un artefact uniquement pour remplir la release introduirait de la duplication ou une convention insuffisamment éprouvée.
|
||||
|
||||
## Documentation durable
|
||||
|
||||
La tranche actualise :
|
||||
|
||||
- le statut racine de la release ;
|
||||
- l'index documentaire `0.1.2` ;
|
||||
- le modèle architectural avec la décision beta durable ;
|
||||
- le plan actif avec le `PASS` de `alpha.3` et la décision finale d'artefacts.
|
||||
|
||||
Aucun changement n'est requis dans `RULES.md`, `docs/rules/000-README.md` ou `ROADMAP.md`, déjà réconciliés pendant `alpha.3`.
|
||||
|
||||
## 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.2-beta.1'
|
||||
git cat-file -e HEAD:history/0.1.2/alpha.3.md
|
||||
test -f history/0.1.2/alpha.3.md
|
||||
test -f deltas/0.1.2/beta.1.md
|
||||
test ! -e history/0.1.2/beta.1.md
|
||||
|
||||
grep -A2 '^## Statut$' history/0.1.2/alpha.3.md | grep -Fx 'PASS'
|
||||
|
||||
grep -Fx '<!-- version: 21 -->' README.md
|
||||
grep -Fx '<!-- version: 34 -->' docs/000-README.md
|
||||
grep -Fx '<!-- version: 8 -->' docs/architecture/003-RULE_PROFILE_MODEL.md
|
||||
grep -Fx '<!-- version: 4 -->' docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md
|
||||
|
||||
grep -Fx '<!-- version: 4 -->' docs/rules/520-JAVA.md
|
||||
grep -Fx '<!-- version: 1 -->' docs/rules/521-MAVEN.md
|
||||
grep -Fx '<!-- version: 1 -->' docs/rules/522-GRADLE.md
|
||||
grep -Fx '<!-- version: 4 -->' docs/rules/520-JAVA_MAVEN_GRADLE.md
|
||||
grep -Fx '<!-- version: 3 -->' docs/rules/610-ANDROID.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.2/alpha.3.md').read_text(encoding='utf-8')
|
||||
assert re.search(r'## Statut\s+PASS\s', history)
|
||||
|
||||
java = Path('docs/rules/520-JAVA.md').read_text(encoding='utf-8')
|
||||
maven = Path('docs/rules/521-MAVEN.md').read_text(encoding='utf-8')
|
||||
gradle = Path('docs/rules/522-GRADLE.md').read_text(encoding='utf-8')
|
||||
legacy = Path('docs/rules/520-JAVA_MAVEN_GRADLE.md').read_text(encoding='utf-8')
|
||||
android = Path('docs/rules/610-ANDROID.md').read_text(encoding='utf-8')
|
||||
architecture = Path('docs/architecture/003-RULE_PROFILE_MODEL.md').read_text(encoding='utf-8')
|
||||
plan = Path('docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md').read_text(encoding='utf-8')
|
||||
|
||||
assert '# Profil Java' in java
|
||||
assert '# Profil Maven' in maven
|
||||
assert '# Profil Gradle' in gradle
|
||||
assert '`SUPERSEDED` depuis `0.1.2-alpha.3`.' in legacy
|
||||
assert 'Il ne constitue plus un profil sélectionnable' in legacy
|
||||
|
||||
for current in ('RULES.md', 'docs/000-README.md', 'docs/rules/000-README.md', 'docs/rules/610-ANDROID.md'):
|
||||
assert '520-JAVA_MAVEN_GRADLE.md' not in Path(current).read_text(encoding='utf-8'), current
|
||||
|
||||
for local_choice in (
|
||||
'JDK 25',
|
||||
'source/target 17',
|
||||
'Gradle 9.6.0',
|
||||
'Gradle 9.7.1',
|
||||
'AGP 9.4.0',
|
||||
):
|
||||
assert local_choice not in java, local_choice
|
||||
assert local_choice not in maven, local_choice
|
||||
assert local_choice not in gradle, local_choice
|
||||
|
||||
for android_term in (
|
||||
'compileSdk',
|
||||
'targetSdk',
|
||||
'minSdk',
|
||||
'NDK',
|
||||
'ABI/JNI',
|
||||
'APK/AAB',
|
||||
'device/AVD',
|
||||
'SDL3',
|
||||
):
|
||||
assert android_term not in maven, android_term
|
||||
assert android_term not in gradle, android_term
|
||||
|
||||
assert 'Matrice AGP / Gradle / JDK' in android
|
||||
assert '`compileSdk`, `targetSdk` et `minSdk`' in android
|
||||
|
||||
for phrase in (
|
||||
'## Réconciliation beta de Java / Maven / Gradle en `0.1.2`',
|
||||
'aucune preuve Maven réelle',
|
||||
'Aucun nouveau contrat sous `docs/validation/`, template, skeleton ou audit Python Java/Maven/Gradle n\'est justifié.',
|
||||
):
|
||||
assert phrase in architecture, phrase
|
||||
|
||||
for phrase in (
|
||||
'## Décision après `alpha.3` et réconciliation `beta.1`',
|
||||
'La gate opérateur de `alpha.3` est `PASS`',
|
||||
'aucun artefact technique supplémentaire',
|
||||
'aucun corpus Maven',
|
||||
'`0.1.3`',
|
||||
):
|
||||
assert phrase in plan, phrase
|
||||
|
||||
for foreign in (
|
||||
'Cargo.toml',
|
||||
'crates/knowledge-domain-lib/src/content_family.rs',
|
||||
'deltas/0.0.1/alpha.3.fix.2.md',
|
||||
'history/0.0.1/alpha.3.fix.1.md',
|
||||
):
|
||||
assert not Path(foreign).exists(), foreign
|
||||
|
||||
print('0.1.2 beta.1 reconciliation audit: clean (owners stable, Games-local choices not generalized, no extra artifacts justified, Android boundary preserved)')
|
||||
PYGATE
|
||||
|
||||
git diff --check
|
||||
|
||||
git add README.md VERSION \
|
||||
docs/000-README.md \
|
||||
docs/architecture/003-RULE_PROFILE_MODEL.md \
|
||||
docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md \
|
||||
deltas/0.1.2/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.2/beta.1.md
|
||||
M docs/000-README.md
|
||||
M docs/architecture/003-RULE_PROFILE_MODEL.md
|
||||
M docs/plans/008-V0_1_2_JAVA_GRADLE_REEVALUATION_PLAN.md
|
||||
```
|
||||
|
||||
La revue qualitative doit confirmer que :
|
||||
|
||||
- aucun choix local Games n'est promu comme minimum générique ;
|
||||
- Maven n'est pas présenté comme validé par Games ;
|
||||
- les owners `520/521/522` restent indépendants et composables ;
|
||||
- aucun nouveau fichier technique n'est ajouté pour satisfaire une structure théorique ;
|
||||
- Android reste entièrement hors du scope fonctionnel de `0.1.2` ;
|
||||
- la documentation durable reflète la scission et la décision d'artefacts sans réécrire les snapshots historiques.
|
||||
|
||||
## Transition
|
||||
|
||||
### PASS
|
||||
|
||||
Produire `history/0.1.2/beta.1.md`, puis préparer `0.1.2-rc.1` pour le gel de scope et la release gate complète.
|
||||
|
||||
### FAIL
|
||||
|
||||
Consigner le diagnostic réel dans `history/0.1.2/beta.1.md`, puis produire `beta.1.fix.N` ou effectuer un REPLAN uniquement si un défaut d'ownership ou de frontière ne peut pas être corrigé localement.
|
||||
Reference in New Issue
Block a user