0.3.0-3-rc.1

This commit is contained in:
2026-09-20 15:25:55 +02:00
parent 45c31d4721
commit a9620ef84c
7 changed files with 147 additions and 7 deletions

View File

@@ -1,8 +1,19 @@
<!-- file: CHANGELOG.md --> <!-- file: CHANGELOG.md -->
<!-- version: 12 --> <!-- version: 13 -->
# Changelog # Changelog
## 0.3.0-3-rc.1 — 2026-09-20
- gel fonctionnel du premier POC Snake Web direct après validation beta et consolidation documentaire ;
- gameplay Snake conservé dans `game-snake-poc`, avec adapter `game-snake-poc-wasm` dédié et host navigateur Vite/TypeScript séparé ;
- shell Web responsive fondé sur Bootstrap 5/Bootswatch, SimpleBar et Canvas au ratio logique du jeu, avec clavier et contrôles pointer/tactiles ;
- lifecycle navigateur fixed-step sans rattrapage massif, resize `devicePixelRatio`, assets `common/` + `game/`, logging frontend structuré et provenance `Web / Browser / Wasm` ;
- runner Desktop SDL3 maintenu comme témoin de non-régression et builds release Desktop/Web déjà exercés pendant la beta ;
- prompt `0.3.1` préparé pour le second host Snake Tauri Android, avec workflow de session, commandes et validations consolidés.
La RC n'ouvre aucun nouveau scope. Les détails des phases `pre`, `beta` et de leurs correctifs restent dans `deltas/0.3.0/` et `history/0.3.0/`.
## 0.2.0 — conception modulaire, POC et Uroburas ## 0.2.0 — conception modulaire, POC et Uroburas
- Gouvernance documentaire renforcée : catégories `ideas/studies/architecture/rules`, immutabilité des deltas, conventions de statuts et workflow de session/version. - Gouvernance documentaire renforcée : catégories `ideas/studies/architecture/rules`, immutabilité des deltas, conventions de statuts et workflow de session/version.

View File

@@ -1,5 +1,5 @@
# file: Cargo.toml # file: Cargo.toml
# version: 68 # version: 69
[workspace] [workspace]
resolver = "3" resolver = "3"
@@ -20,7 +20,7 @@ members = [
] ]
[workspace.package] [workspace.package]
version = "0.3.0-2-beta.2" version = "0.3.0-3-rc.1"
edition = "2024" edition = "2024"
license = "MIT" license = "MIT"
repository = "https://git.sasedev.com/Sasedev/games" repository = "https://git.sasedev.com/Sasedev/games"

View File

@@ -1,5 +1,5 @@
<!-- file: README.md --> <!-- file: README.md -->
<!-- version: 38 --> <!-- version: 39 -->
# games.sasedev # games.sasedev
@@ -26,7 +26,7 @@ Workspace expérimental puis productif pour des jeux multiplateformes principale
Version stable de référence : `0.2.0`. Version stable de référence : `0.2.0`.
Version de développement : `0.3.0-2-beta.2`. Version de développement : `0.3.0-3-rc.1`.
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. 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.

View File

@@ -1,7 +1,7 @@
{ {
"name": "game-snake-poc-web", "name": "game-snake-poc-web",
"private": true, "private": true,
"version": "0.3.0-2-beta.2", "version": "0.3.0-3-rc.1",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

88
deltas/0.3.0/3-rc.1.md Normal file
View File

@@ -0,0 +1,88 @@
<!-- file: deltas/0.3.0/3-rc.1.md -->
<!-- version: 1 -->
# Delta 0.3.0-3-rc.1
## Base requise
`0.3.0-2-beta.2.fix.2`.
Cette base a été validée par revue humaine et audit Markdown proportionnel au correctif documentaire.
## Objectif
Créer la candidate de publication `0.3.0` sans rouvrir le scope fonctionnel.
## Gel RC
Le scope `0.3.0` est gelé. Cette tranche n'ajoute :
- aucune fonctionnalité ;
- aucune capability ;
- aucun refactor architectural ;
- aucune dépendance ;
- aucun changement de gameplay ou de runtime.
Seuls les correctifs autorisés par `VER-RC-*` pourront suivre sous `3-rc.1.fix.N`.
## Changements
- passage de `workspace.package.version` à `0.3.0-3-rc.1` ;
- passage du package Web Snake à `0.3.0-3-rc.1` ;
- affichage de la candidate courante dans `README.md` ;
- création de l'entrée RC `0.3.0-3-rc.1` dans `CHANGELOG.md` ;
- enregistrement de la validation `2-beta.2.fix.2` sous `history/0.3.0/` ;
- réconciliation du plan `0.3.0` avec l'ouverture de la RC ;
- revue finale de `prompts/003-V0_3_1_START_PROMPT.md` : aucune modification supplémentaire requise.
Les métadonnées Android historiques restent inchangées : `0.3.0` ne livre pas un nouveau host Android. Le package Tauri Reflex historique reste également hors scope.
## Validation RC
Appliquer `docs/testing/004-V0_3_0_RC_VALIDATION_MATRIX.md`.
### Gate workspace
```bash
cargo fmt --all
cargo fmt --all -- --check
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 Web deltas history
python3 scripts/audit_distribution_layout.py
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-targets --all-features
```
Le test workspace complet est volontairement exécuté à ce jalon RC final. Aucun `cargo tree` n'est requis puisque les dépendances/features ne changent pas.
### Desktop Snake release
```bash
cargo build -p game-snake-poc-desktop --release
../builds/sasedev-games/target/release/game-snake-poc-desktop
```
Critères : démarrage, rendu, contrôles et arrêt propre.
### Web/WASM release
```bash
cargo build -p game-snake-poc-wasm --release --target wasm32-unknown-unknown
wasm-bindgen \
../builds/sasedev-games/target/wasm32-unknown-unknown/release/game_snake_poc_wasm.wasm \
--target web \
--out-dir ../builds/sasedev-games/game-snake-poc-web/wasm \
--out-name game_snake_poc_wasm
(cd Web/game-snake-poc && npm install && npm run build && npm run preview)
```
Ouvrir `http://127.0.0.1:4174/main.html` et confirmer Canvas, inputs, SimpleBar, assets, provenance, resize, lifecycle et absence d'erreur runtime bloquante.
## Après validation
Si la gate RC est propre et qu'aucun correctif n'est nécessaire, la promotion vers `0.3.0` est mécanique : versions stables, entrée stable du `CHANGELOG.md`, historique RC et delta de release, sans nouveau scope.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/plans/001-V0_3_0_WEB_SNAKE_POC_PLAN.md --> <!-- file: docs/plans/001-V0_3_0_WEB_SNAKE_POC_PLAN.md -->
<!-- version: 15 --> <!-- version: 16 -->
# Plan v0.3.0 — baseline Snake et premier POC Web direct # Plan v0.3.0 — baseline Snake et premier POC Web direct
@@ -119,10 +119,16 @@ Suivi `2-beta.2.fix.1` : la gate mécanique de `2-beta.2` passe, mais la revue h
Suivi `2-beta.2.fix.2` : la revue du prompt enrichi valide son niveau de contexte, mais précise la gouvernance des commandes afin d'éviter des validations trop larges ou répétitives. Le fix rend obligatoires `cargo fmt`, `cargo check --workspace` et Clippy workspace strict dès que Rust ou ses dépendances changent, garde les tests ciblés comme norme, réserve le test workspace complet à quelques jalons planifiés, limite `cargo tree` aux changements/diagnostics de dépendances, sélectionne les audits Python selon les fichiers touchés, impose les sous-shells pour les changements de répertoire et rappelle que Tauri possède Vite via `cargo tauri dev/build`. Ce correctif reste strictement documentaire et ne modifie aucune version technique. Suivi `2-beta.2.fix.2` : la revue du prompt enrichi valide son niveau de contexte, mais précise la gouvernance des commandes afin d'éviter des validations trop larges ou répétitives. Le fix rend obligatoires `cargo fmt`, `cargo check --workspace` et Clippy workspace strict dès que Rust ou ses dépendances changent, garde les tests ciblés comme norme, réserve le test workspace complet à quelques jalons planifiés, limite `cargo tree` aux changements/diagnostics de dépendances, sélectionne les audits Python selon les fichiers touchés, impose les sous-shells pour les changements de répertoire et rappelle que Tauri possède Vite via `cargo tauri dev/build`. Ce correctif reste strictement documentaire et ne modifie aucune version technique.
Validation `2-beta.2.fix.2` : l'audit Markdown ciblé passe (`5` tables, `189` fichiers) et la revue utilisateur autorise l'ouverture de la RC. Aucune autre gate n'est attribuée à ce correctif strictement documentaire.
### `3-rc.1` — candidate gelée ### `3-rc.1` — candidate gelée
Reproductibilité, validation finale de la candidate et derniers défauts strictement nécessaires à la publication. Le prompt suivant préparé pendant la consolidation est vérifié/complété si l'état RC apporte une information nouvelle. Aucun nouveau POC ni nouvelle capability. Reproductibilité, validation finale de la candidate et derniers défauts strictement nécessaires à la publication. Le prompt suivant préparé pendant la consolidation est vérifié/complété si l'état RC apporte une information nouvelle. Aucun nouveau POC ni nouvelle capability.
Livraison candidate : passage des versions techniques au jalon `0.3.0-3-rc.1`, entrée RC du `CHANGELOG.md`, enregistrement de `2-beta.2.fix.2` dans `history/`, revue finale du prompt `0.3.1` et gel explicite du scope. Le prompt est jugé suffisamment complet et ne reçoit aucun changement sémantique supplémentaire dans cette tranche.
Gate RC : appliquer intégralement `docs/testing/004-V0_3_0_RC_VALIDATION_MATRIX.md`. Le test workspace complet est volontairement exécuté à ce jalon final ; aucun `cargo tree` n'est requis en l'absence de changement de dépendances.
### `0.3.0` — release stable ### `0.3.0` — release stable
Publication mécanique de l'état RC validé. Publication mécanique de l'état RC validé.

View File

@@ -0,0 +1,35 @@
<!-- file: history/0.3.0/2-beta.2.fix.2.md -->
<!-- version: 1 -->
# Historique 0.3.0-2-beta.2.fix.2
## Statut
Correctif documentaire validé par l'utilisateur le 2026-09-20. Le workflow de commandes et le prompt `0.3.1` sont acceptés ; la RC `0.3.0-3-rc.1` peut être ouverte.
## Validation utilisateur
La gate proportionnelle au scope strictement documentaire a été exécutée :
```text
python3 scripts/audit_markdown_tables.py docs prompts deltas history
Markdown table audit: clean (5 table(s), 189 file(s))
```
Aucune gate Cargo, npm, Gradle, Tauri, distribution ou smoke n'était applicable à ce correctif, qui ne modifiait ni code, ni dépendance, ni manifeste runtime/build.
## Décision
Les règles suivantes sont considérées consolidées pour la suite :
```text
fmt/check/Clippy workspace lorsque Rust ou ses dépendances changent
tests Cargo ciblés par défaut
test workspace complet seulement aux jalons planifiés ou portées incertaines
cargo tree uniquement pour dépendances/features ou diagnostic explicite
audits Python sélectionnés selon les fichiers touchés
sous-shell obligatoire pour les commandes avec changement de répertoire
Tauri : npm pour dépendances, cargo tauri dev pour smoke, cargo tauri build pour packaging final
```
Le prompt `prompts/003-V0_3_1_START_PROMPT.md` est jugé suffisamment autonome pour la transmission.