From 63dcb2af4ec89140f2cce56344a62ca629f8e8c0 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 18 Sep 2026 13:32:09 +0200 Subject: [PATCH] 0.2.0-0-pre.1-fix.2 --- Android/game-reflex-poc/build.gradle | 4 +- Android/game-snake-poc/build.gradle | 4 +- Cargo.toml | 4 +- README.md | 4 +- deltas/0.2.0/0-pre.1.fix.2.md | 63 +++++++++++++++++++++++++++ docs/rules/FILE_CONTRACTS.md | 10 ++++- docs/rules/RULES_DOCUMENTATION.md | 19 +++++++- docs/rules/RULES_PROJECT.md | 8 +++- docs/rules/RULES_VALIDATION_MATRIX.md | 14 +++++- docs/rules/VERSION_WORKFLOW.md | 9 +++- 10 files changed, 126 insertions(+), 13 deletions(-) create mode 100644 deltas/0.2.0/0-pre.1.fix.2.md diff --git a/Android/game-reflex-poc/build.gradle b/Android/game-reflex-poc/build.gradle index 009e3c3..13d61e8 100644 --- a/Android/game-reflex-poc/build.gradle +++ b/Android/game-reflex-poc/build.gradle @@ -1,5 +1,5 @@ // file: Android/game-reflex-poc/build.gradle -// version: 26 +// version: 27 plugins { id 'com.android.application' @@ -18,7 +18,7 @@ android { minSdk 21 targetSdk 36 versionCode 2 - versionName '0.2.0-0-pre.1.fix.1' + versionName '0.2.0-0-pre.1.fix.2' } compileOptions { diff --git a/Android/game-snake-poc/build.gradle b/Android/game-snake-poc/build.gradle index 6f4f323..9f5de18 100644 --- a/Android/game-snake-poc/build.gradle +++ b/Android/game-snake-poc/build.gradle @@ -1,5 +1,5 @@ // file: Android/game-snake-poc/build.gradle -// version: 26 +// version: 27 plugins { id 'com.android.application' @@ -18,7 +18,7 @@ android { minSdk 21 targetSdk 36 versionCode 2 - versionName '0.2.0-0-pre.1.fix.1' + versionName '0.2.0-0-pre.1.fix.2' } compileOptions { diff --git a/Cargo.toml b/Cargo.toml index 5db9ed8..7577deb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ # file: Cargo.toml -# version: 38 +# version: 39 [workspace] resolver = "3" @@ -19,7 +19,7 @@ members = [ ] [workspace.package] -version = "0.2.0-0-pre.1.fix.1" +version = "0.2.0-0-pre.1.fix.2" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/games" diff --git a/README.md b/README.md index b1f1f49..cab5b84 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # games.sasedev @@ -25,7 +25,7 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale Version stable de référence : `0.1.0`. -Version candidate en cours de conception : `0.2.0-0-pre.1.fix.1`. +Version candidate en cours de conception : `0.2.0-0-pre.1.fix.2`. Les deux premiers jeux sont des POC structurels : `game-reflex-poc` et `game-snake-poc`. Ils existent d'abord pour valider les frontières du workspace, le moteur, les assets et le packaging multiplateforme. diff --git a/deltas/0.2.0/0-pre.1.fix.2.md b/deltas/0.2.0/0-pre.1.fix.2.md new file mode 100644 index 0000000..494adff --- /dev/null +++ b/deltas/0.2.0/0-pre.1.fix.2.md @@ -0,0 +1,63 @@ + + + +# Delta 0.2.0-0-pre.1.fix.2 + +## Base + +Base déclarée : `0.2.0-0-pre.1.fix.1`. + +## Objet + +Ce fix formalise l'immuabilité des deltas, le contrat des manifests de suppression et l'incrément obligatoire des versions d'en-tête. + +Les deltas déjà livrés ne sont pas modifiés. + +## Deltas immuables + +- un fichier `deltas/**/*.md` livré est immuable sur le fond ; +- seules les corrections non sémantiques de forme peuvent toucher le fichier existant ; +- toute correction de forme autorisée incrémente son en-tête `version` ; +- toute correction sémantique ou tout ajout produit un nouveau delta ou `.fix.N`. + +## Manifests `*.delete.txt` + +Les manifests de suppression sont désormais un contrat documenté : + +- un chemin relatif à la racine par ligne ; +- aucune commande shell dans le manifest ; +- le delta Markdown associé décrit la raison de chaque groupe de suppressions ; +- le delta Markdown associé fournit la procédure d'application ; +- toute modification sémantique des suppressions passe par un nouveau delta/fix. + +## Versions d'en-tête + +Toute modification réelle d'un fichier versionné incrémente son en-tête `version`. + +Les seuls changements qui n'imposent pas cet incrément sont les transformations purement mécaniques réalisées par un formatter officiel, sans autre modification réelle. + +Un renommage qui modifie l'en-tête `file:` compte comme une modification réelle. + +## Fichiers modifiés par ce fix + +- `Cargo.toml` ; +- `Android/game-reflex-poc/build.gradle` ; +- `Android/game-snake-poc/build.gradle` ; +- `README.md` ; +- `docs/rules/RULES_DOCUMENTATION.md` ; +- `docs/rules/FILE_CONTRACTS.md` ; +- `docs/rules/VERSION_WORKFLOW.md` ; +- `docs/rules/RULES_PROJECT.md` ; +- `docs/rules/RULES_VALIDATION_MATRIX.md`. + +Tous les fichiers ci-dessus qui possèdent un en-tête de version ont été incrémentés. + +## Validation + +```bash +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates Android deltas history +python3 scripts/audit_distribution_layout.py +``` + +Aucun code Rust, Java ou TypeScript n'est modifié dans ce fix. diff --git a/docs/rules/FILE_CONTRACTS.md b/docs/rules/FILE_CONTRACTS.md index 6c8d1d5..4b70f8d 100644 --- a/docs/rules/FILE_CONTRACTS.md +++ b/docs/rules/FILE_CONTRACTS.md @@ -1,5 +1,5 @@ - + # Contrats des fichiers principaux @@ -41,3 +41,11 @@ - Un README propre à une crate, un package ou un répertoire technique peut conserver `README.md` lorsque cet usage est naturel à son écosystème. - Un répertoire documentaire conçu pour accumuler plusieurs fichiers Markdown utilise `000-README.md` comme point d'entrée. - `history/000-README.md` est le point d'entrée de l'historique validé. + +## Immutabilité et suppressions dans les deltas + +- Les fichiers `deltas/**/*.md` livrés sont immuables sur le fond. +- Une correction de forme sans changement de sens peut modifier un delta existant uniquement en incrémentant son en-tête `version`. +- Toute correction sémantique ou tout ajout produit un nouveau delta ou `.fix.N`. +- Les fichiers `deltas/**/*.delete.txt` sont des manifests de suppression contractuels. +- Chaque manifest contient un chemin relatif par ligne et est expliqué dans le fichier Markdown du delta qui l'introduit. diff --git a/docs/rules/RULES_DOCUMENTATION.md b/docs/rules/RULES_DOCUMENTATION.md index b7d7557..aa2fe9e 100644 --- a/docs/rules/RULES_DOCUMENTATION.md +++ b/docs/rules/RULES_DOCUMENTATION.md @@ -1,5 +1,5 @@ - + # Règles de documentation @@ -92,3 +92,20 @@ - **DOC-MAT-004** — `Planned` signifie qu'une implémentation est affectée à une version ou un jalon de roadmap. - **DOC-MAT-005** — `Experimental` signifie qu'un POC ou une implémentation d'évaluation existe ou est explicitement planifié ; ce statut ne remplace pas `Reserved` pour une simple possibilité. - **DOC-MAT-006** — Une idée purement spéculative ne devient pas une capability réservée uniquement pour préserver une possibilité future. + +## Immutabilité des deltas + +- **DOC-DELTA-002** — Un fichier `deltas/**/*.md` livré est immuable sur le fond. Il ne reçoit jamais ultérieurement de nouveau scope, de nouvelle règle, de nouvelle validation, de nouveau résultat ou de nouvelle justification. +- **DOC-DELTA-003** — Une correction strictement non sémantique d'un delta livré est autorisée uniquement pour la forme : orthographe, typographie, alignement de tableau ou correction mécanique équivalente. +- **DOC-DELTA-004** — Toute correction autorisée par `DOC-DELTA-003` incrémente le numéro `version` d'en-tête du fichier corrigé. +- **DOC-DELTA-005** — Toute correction sémantique ou tout ajout produit un nouveau delta ou un nouveau `.fix.N` ; l'ancien delta reste inchangé. +- **DOC-DELTA-006** — Un fichier `deltas/**/*.delete.txt` fait partie du contrat de livraison et doit être documenté explicitement par le fichier Markdown du même delta. +- **DOC-DELTA-007** — Un manifest `*.delete.txt` contient uniquement des chemins relatifs à la racine, un par ligne. Le delta associé documente la raison des suppressions et la commande d'application. + +## Versions d'en-tête + +- **DOC-HEAD-001** — Tout fichier géré par le projet qui possède un en-tête `version` incrémente ce numéro lors de toute modification réelle de contenu. +- **DOC-HEAD-002** — Une modification réelle inclut ajout, suppression, déplacement, reformulation, changement de valeur de configuration, changement de contrat ou changement de chemin dans l'en-tête `file:`. +- **DOC-HEAD-003** — Une transformation purement mécanique par un formatter officiel du projet, telle que `cargo fmt`, ne déclenche pas à elle seule d'incrément de version. +- **DOC-HEAD-004** — Si un formatter est exécuté après une modification réelle du fichier, l'incrément reste requis à cause de la modification réelle. +- **DOC-HEAD-005** — Un nouveau fichier versionné commence normalement à `version: 1`. diff --git a/docs/rules/RULES_PROJECT.md b/docs/rules/RULES_PROJECT.md index 4c867bd..a11e88b 100644 --- a/docs/rules/RULES_PROJECT.md +++ b/docs/rules/RULES_PROJECT.md @@ -1,5 +1,5 @@ - + # Règles spécifiques games.sasedev @@ -82,3 +82,9 @@ - **GAME-PLATFORM-017** — Téléphone, tablette et futures classes de device sont des dimensions distinctes de l'OS et du backend technique. - **GAME-PLATFORM-018** — SDL3 reste le backend natif de référence du POC, mais l'architecture de jeu ne doit pas assimiler une plateforme à SDL ni empêcher un adapter différent lorsque la plateforme l'exige. - **GAME-PLATFORM-019** — Une plateforme réservée n'est ni implémentée ni planifiée tant qu'une ligne ROADMAP ou un delta ne l'engage explicitement. + +## Version d'en-tête des fichiers + +- **GAME-FILE-001** — Toute modification réelle d'un fichier qui possède un en-tête `version` incrémente ce numéro. +- **GAME-FILE-002** — Les transformations purement mécaniques réalisées par les formatters officiels n'incrémentent pas à elles seules cet en-tête. +- **GAME-FILE-003** — Un changement du champ d'en-tête `file:` dû à un renommage est une modification réelle et incrémente la version. diff --git a/docs/rules/RULES_VALIDATION_MATRIX.md b/docs/rules/RULES_VALIDATION_MATRIX.md index 9de082d..2ad2f43 100644 --- a/docs/rules/RULES_VALIDATION_MATRIX.md +++ b/docs/rules/RULES_VALIDATION_MATRIX.md @@ -1,5 +1,5 @@ - + # Matrice normative des commandes et validations @@ -63,3 +63,15 @@ La politique est donc double : Le nettoyage complet est normalement positionné au début d'un nouveau cycle de développement lorsque l'on souhaite évacuer les artefacts de la version précédente, ou avant une validation finale RC/stable lorsqu'un rebuild propre est recherché et que l'espace disque le justifie. Le delta ou le plan de version indique quel jalon de nettoyage est retenu. Il n'est pas nécessaire d'exécuter `cargo clean` à chaque prerelease. + +## Vérification des versions d'en-tête + +Avant livraison d'un delta : + +1. fichier modifié réellement et déjà versionné → en-tête incrémenté ; +2. fichier uniquement reformaté mécaniquement → en-tête inchangé ; +3. nouveau fichier versionné → `version: 1` sauf règle spécialisée ; +4. renommage modifiant `file:` → en-tête incrémenté ; +5. delta antérieur → aucun ajout sémantique rétroactif. + +Cette vérification fait partie de la revue de livraison même lorsqu'aucun audit automatisé ne dispose encore de la version précédente pour comparer. diff --git a/docs/rules/VERSION_WORKFLOW.md b/docs/rules/VERSION_WORKFLOW.md index a6dae2e..379198f 100644 --- a/docs/rules/VERSION_WORKFLOW.md +++ b/docs/rules/VERSION_WORKFLOW.md @@ -1,5 +1,5 @@ - + # Versionnement, maturité et livraisons @@ -122,3 +122,10 @@ PLAN → IMPLEMENT → INTEGRATE → VALIDATE → CANDIDATE → RELEASE - **VER-TAURI-002** — `tauri.conf.json` omet `version` lorsque Tauri peut hériter de la version `Cargo.toml`. - **VER-TAURI-003** — La `version` de `package.json` décrit le package frontend local et n'est pas synchronisée à chaque `pre.N` ou `.fix.N`. - **VER-TAURI-004** — Tant que le frontend n'est pas publié comme package npm, sa version est mise à jour uniquement aux jalons significatifs retenus par le projet, au minimum lorsque cela est nécessaire pour alpha, beta, RC ou stable. + +## Corrections des deltas déjà livrés + +- **VER-DELTA-001** — Un delta livré n'est jamais enrichi après coup. +- **VER-DELTA-002** — Une correction purement orthographique, typographique, d'alignement ou de forme sans changement de sens peut être appliquée au fichier delta existant si son en-tête `version` est incrémenté. +- **VER-DELTA-003** — Une correction qui change le sens, le scope, les validations, les suppressions ou les décisions produit un nouveau `.fix.N`. +- **VER-DELTA-004** — Les manifests `*.delete.txt` sont toujours décrits dans le delta Markdown qui les introduit.