0.2.0-0-pre.8.fix.1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
// file: Android/game-reflex-poc/build.gradle
|
// file: Android/game-reflex-poc/build.gradle
|
||||||
// version: 42
|
// version: 43
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
@@ -18,7 +18,7 @@ android {
|
|||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 36
|
targetSdk 36
|
||||||
versionCode 2
|
versionCode 2
|
||||||
versionName '0.2.0-0-pre.8'
|
versionName '0.2.0-0-pre.8.fix.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: Android/game-snake-poc/build.gradle
|
// file: Android/game-snake-poc/build.gradle
|
||||||
// version: 42
|
// version: 43
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
@@ -18,7 +18,7 @@ android {
|
|||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 36
|
targetSdk 36
|
||||||
versionCode 2
|
versionCode 2
|
||||||
versionName '0.2.0-0-pre.8'
|
versionName '0.2.0-0-pre.8.fix.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 54
|
# version: 55
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
@@ -19,7 +19,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.2.0-0-pre.8"
|
version = "0.2.0-0-pre.8.fix.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/games"
|
repository = "https://git.sasedev.com/Sasedev/games"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: README.md -->
|
<!-- file: README.md -->
|
||||||
<!-- version: 22 -->
|
<!-- version: 23 -->
|
||||||
|
|
||||||
# games.sasedev
|
# 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 stable de référence : `0.1.0`.
|
||||||
|
|
||||||
Version candidate en cours de conception : `0.2.0-0-pre.8`.
|
Version candidate en cours de conception : `0.2.0-0-pre.8.fix.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.
|
||||||
|
|
||||||
|
|||||||
40
deltas/0.2.0/0-pre.8.fix.1.md
Normal file
40
deltas/0.2.0/0-pre.8.fix.1.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<!-- file: deltas/0.2.0/0-pre.8.fix.1.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.2.0-0-pre.8.fix.1
|
||||||
|
|
||||||
|
## Base
|
||||||
|
|
||||||
|
Base déclarée : `0.2.0-0-pre.8`.
|
||||||
|
|
||||||
|
Le delta `0-pre.8.md` reste immuable.
|
||||||
|
|
||||||
|
## Objet
|
||||||
|
|
||||||
|
Renforcer le prompt de démarrage `0.3.x` afin qu'il fournisse un véritable plan de session exploitable, inspiré du modèle KSP mais plus compact.
|
||||||
|
|
||||||
|
## Correction
|
||||||
|
|
||||||
|
Le prompt ajoute :
|
||||||
|
|
||||||
|
- mission bornée de `0.3.0` ;
|
||||||
|
- cadrage `0-pre.1` détaillé ;
|
||||||
|
- forecast souple tranche par tranche pour `0.3.0` ;
|
||||||
|
- objectifs et critères des phases pre/alpha/beta/rc candidates ;
|
||||||
|
- règles de fusion/scission/report ;
|
||||||
|
- forecast initial `0.3.0` à `0.3.6` ;
|
||||||
|
- dépendances entre versions ;
|
||||||
|
- ordre de préférence des premiers POC ;
|
||||||
|
- critères de fin explicites.
|
||||||
|
|
||||||
|
Le forecast n'est pas contractuel : `pre.1` doit le corriger immédiatement si le sizing réel le contredit.
|
||||||
|
|
||||||
|
## 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucune gate Cargo/Gradle/smoke n'est requise : ce fix est documentaire hors métadonnées de version.
|
||||||
@@ -1,129 +1,52 @@
|
|||||||
<!-- file: prompts/002-V0_3_X_START_PROMPT.md -->
|
<!-- file: prompts/002-V0_3_X_START_PROMPT.md -->
|
||||||
<!-- version: 1 -->
|
<!-- version: 2 -->
|
||||||
|
|
||||||
# Prompt de démarrage — série 0.3.x POC plateforme et réseau
|
# Prompt de démarrage — `0.3.0` / série `0.3.x` POC plateforme et réseau
|
||||||
|
|
||||||
## Base
|
## Base
|
||||||
|
|
||||||
Partir du tag stable `v0.2.0` ou, avant publication, de la dernière candidate validée dont le contenu est strictement équivalent à la release.
|
Partir du tag stable `v0.2.0`.
|
||||||
|
|
||||||
Lire en priorité :
|
Avant toute modification :
|
||||||
|
|
||||||
|
1. lire `RULES.md`, `ROADMAP.md`, `CHANGELOG.md` et `docs/000-README.md` ;
|
||||||
|
2. lire les règles de session, commandes et validation ;
|
||||||
|
3. lire les architectures consolidées `012` à `016` ;
|
||||||
|
4. vérifier l'état Git/workspace ;
|
||||||
|
5. exécuter les audits applicables à la base ;
|
||||||
|
6. confirmer la version workspace avant `0.3.0-0-pre.1`.
|
||||||
|
|
||||||
|
Documents prioritaires :
|
||||||
|
|
||||||
- `RULES.md` ;
|
|
||||||
- `ROADMAP.md` ;
|
|
||||||
- `CHANGELOG.md` ;
|
|
||||||
- `docs/000-README.md` ;
|
|
||||||
- `docs/rules/RULES_SESSION_PLANNING.md` ;
|
- `docs/rules/RULES_SESSION_PLANNING.md` ;
|
||||||
- `docs/rules/RULES_COMMANDS.md` ;
|
- `docs/rules/RULES_COMMANDS.md` ;
|
||||||
- `docs/rules/RULES_VALIDATION_MATRIX.md` ;
|
- `docs/rules/RULES_VALIDATION_MATRIX.md` ;
|
||||||
|
- `docs/rules/RULES_SERVER_HOSTING.md` ;
|
||||||
- `docs/architecture/012-MODULAR_LAYERING_AND_OWNERSHIP.md` ;
|
- `docs/architecture/012-MODULAR_LAYERING_AND_OWNERSHIP.md` ;
|
||||||
- `docs/architecture/013-NETWORK_AND_SERVER_ARCHITECTURE.md` ;
|
- `docs/architecture/013-NETWORK_AND_SERVER_ARCHITECTURE.md` ;
|
||||||
- `docs/architecture/014-UROBURAS_TARGET_ARCHITECTURE.md` ;
|
- `docs/architecture/014-UROBURAS_TARGET_ARCHITECTURE.md` ;
|
||||||
- `docs/architecture/015-PLATFORM_POC_ARCHITECTURE.md`.
|
- `docs/architecture/015-PLATFORM_POC_ARCHITECTURE.md` ;
|
||||||
|
- `docs/architecture/016-V0_2_0_CONSOLIDATED_BASELINE.md`.
|
||||||
|
|
||||||
## Objectif de session
|
## Mission de `0.3.0`
|
||||||
|
|
||||||
La série `0.3.x` est consacrée aux POC plateforme et réseau.
|
`0.3.0` ouvre la série de POC.
|
||||||
|
|
||||||
Elle ne développe pas encore Uroburas comme produit réel.
|
Son objectif n'est pas de commencer Uroburas, mais de rendre la base Snake suffisamment propre pour servir de sonde multiplateforme et de réaliser un premier POC de bout en bout sans duplication incontrôlée.
|
||||||
|
|
||||||
Snake est le jeu-sonde principal.
|
Résultat attendu :
|
||||||
|
|
||||||
La session doit valider les frontières décidées en `0.2.0`, mesurer les duplications, identifier les adapters/capabilities manquants et décider quels chemins techniques sont conservés avant `0.4.x`.
|
- baseline Snake réutilisable ;
|
||||||
|
- inventaire des adapters/capabilities réellement nécessaires ;
|
||||||
|
- premier chemin POC exécuté de bout en bout ;
|
||||||
|
- procédures de build natives documentées ;
|
||||||
|
- validations reproductibles ;
|
||||||
|
- décision explicite sur ce qui est extrait, conservé localement ou reporté ;
|
||||||
|
- version suivante planifiée à partir des résultats réels.
|
||||||
|
|
||||||
## Règle de cadrage
|
## Contraintes gelées
|
||||||
|
|
||||||
Commencer impérativement par `0.3.0-0-pre.1`.
|
Préserver :
|
||||||
|
|
||||||
Cette première tranche doit :
|
|
||||||
|
|
||||||
- auditer la base stable ;
|
|
||||||
- vérifier les règles et scripts ;
|
|
||||||
- inventorier les POC réellement exécutables dans l'environnement courant ;
|
|
||||||
- dimensionner la série `0.3.x` ;
|
|
||||||
- proposer le découpage en versions/sessions ;
|
|
||||||
- identifier les dépendances et commandes de validation ;
|
|
||||||
- signaler immédiatement tout objectif trop gros pour tenir dans une session.
|
|
||||||
|
|
||||||
Une version doit pouvoir être terminée dans une seule session.
|
|
||||||
|
|
||||||
Les deltas `pre/alpha/beta/rc` visent normalement 15 à 30 minutes de travail effectif.
|
|
||||||
|
|
||||||
## POC plateforme prioritaires
|
|
||||||
|
|
||||||
Première vague :
|
|
||||||
|
|
||||||
1. Tauri Android + Snake ;
|
|
||||||
2. Web navigateur direct + Snake ;
|
|
||||||
3. Tauri Desktop + Snake ;
|
|
||||||
4. build Android multi-ABI avec outils natifs.
|
|
||||||
|
|
||||||
Plateformes supplémentaires seulement si l'environnement réel permet une validation :
|
|
||||||
|
|
||||||
- Windows SDL natif ;
|
|
||||||
- macOS SDL natif ;
|
|
||||||
- iOS SDL natif.
|
|
||||||
|
|
||||||
Ne pas simuler une validation plateforme avec un simple cross-build lorsque le smoke réel est requis.
|
|
||||||
|
|
||||||
## POC réseau
|
|
||||||
|
|
||||||
Préparer un POC comparatif avant gel long terme du transport realtime :
|
|
||||||
|
|
||||||
- WebSocket / `tokio-tungstenite` ;
|
|
||||||
- WebTransport / QUIC ;
|
|
||||||
- fallback automatique ;
|
|
||||||
- même protocole métier au-dessus des transports ;
|
|
||||||
- charge concurrente ;
|
|
||||||
- mémoire/connexion ;
|
|
||||||
- CPU ;
|
|
||||||
- p50/p95/p99 ;
|
|
||||||
- backpressure ;
|
|
||||||
- reconnect/resync ;
|
|
||||||
- mobilité réseau ;
|
|
||||||
- snapshots/deltas ;
|
|
||||||
- broadcast/interest management.
|
|
||||||
|
|
||||||
La simulation/game logic ne doit dépendre directement d'aucun type Tungstenite, QUIC ou WebTransport.
|
|
||||||
|
|
||||||
## Web et assets
|
|
||||||
|
|
||||||
Conserver :
|
|
||||||
|
|
||||||
- Actix Web pour Web/API ;
|
|
||||||
- Maud pour HTML server-side ;
|
|
||||||
- Fluent/fluent-bundle pour localisation ;
|
|
||||||
- Lettre pour email ;
|
|
||||||
- auto-hébergement comme direction par défaut ;
|
|
||||||
- asset delivery séparé logiquement ;
|
|
||||||
- HTTP/2 baseline ;
|
|
||||||
- HTTP/3/QUIC à tester là où pertinent ;
|
|
||||||
- aucun CDN tiers obligatoire.
|
|
||||||
|
|
||||||
Debian Stable reste la cible opérationnelle préférée.
|
|
||||||
|
|
||||||
Ne pas figer HAProxy, nginx ou un autre edge avant POC/benchmark réel.
|
|
||||||
|
|
||||||
## Build et validation
|
|
||||||
|
|
||||||
Les builds utilisent les outils natifs appropriés :
|
|
||||||
|
|
||||||
- Cargo ;
|
|
||||||
- Gradle ;
|
|
||||||
- Tauri CLI ;
|
|
||||||
- toolchains plateforme.
|
|
||||||
|
|
||||||
Les scripts Python sont autorisés pour audits, validations complémentaires et contrôles statiques, mais pas pour piloter le build.
|
|
||||||
|
|
||||||
L'utilisateur exécute les builds, tests unitaires, intégration et smoke tests demandés.
|
|
||||||
|
|
||||||
Le delta doit toujours lister les commandes exactes à exécuter.
|
|
||||||
|
|
||||||
## Architecture à préserver
|
|
||||||
|
|
||||||
Ne pas transformer les POC en nouvelle architecture monolithique.
|
|
||||||
|
|
||||||
Maintenir les frontières :
|
|
||||||
|
|
||||||
```text
|
```text
|
||||||
game-specific
|
game-specific
|
||||||
@@ -135,47 +58,383 @@ technical capabilities
|
|||||||
engine kernel
|
engine kernel
|
||||||
```
|
```
|
||||||
|
|
||||||
et composer adapters/providers au niveau app/product.
|
Les adapters/providers sont composés au niveau app/product.
|
||||||
|
|
||||||
Ne pas introduire une crate par concept sans frontière/API réellement justifiée.
|
Snake est le jeu-sonde principal de `0.3.x`.
|
||||||
|
|
||||||
## Uroburas
|
Uroburas reste réservé à `0.4.x`.
|
||||||
|
|
||||||
Uroburas est réservé à la série `0.4.x`.
|
Les builds utilisent Cargo, Gradle, Tauri CLI ou la toolchain native appropriée.
|
||||||
|
|
||||||
Les POC `0.3.x` doivent préparer ses fondations, notamment :
|
Python reste autorisé pour audits et validations complémentaires, jamais comme orchestrateur de build.
|
||||||
|
|
||||||
- grid/tilemap ;
|
L'utilisateur exécute les builds, tests unitaires/intégration et smoke tests demandés.
|
||||||
- input Desktop/Mobile ;
|
|
||||||
- Web/WASM ;
|
|
||||||
- Tauri ;
|
|
||||||
- Android ;
|
|
||||||
- networking ;
|
|
||||||
- assets/content ;
|
|
||||||
- realtime transport.
|
|
||||||
|
|
||||||
Ils ne doivent pas implémenter les règles finales Uroburas sauf ce qui est strictement nécessaire à la sonde Snake.
|
## `0.3.0-0-pre.1` — cadrage obligatoire
|
||||||
|
|
||||||
## Livraisons
|
Cette tranche précède toute implémentation lourde.
|
||||||
|
|
||||||
Chaque tranche livre un delta ZIP immutable :
|
Elle doit couvrir :
|
||||||
|
|
||||||
|
### Audit de la base
|
||||||
|
|
||||||
|
- crates Snake existantes ;
|
||||||
|
- Desktop SDL ;
|
||||||
|
- Android SDL/Java/JNI ;
|
||||||
|
- Tauri/WASM Reflex existant comme référence technique ;
|
||||||
|
- abstractions déjà réutilisables ;
|
||||||
|
- duplications ;
|
||||||
|
- scripts/outils ;
|
||||||
|
- procédures de build réellement disponibles ;
|
||||||
|
- contraintes de l'environnement courant.
|
||||||
|
|
||||||
|
### Requirements POC
|
||||||
|
|
||||||
|
Identifier les besoins réels pour Snake :
|
||||||
|
|
||||||
|
- input clavier ;
|
||||||
|
- virtual directional buttons tactiles ;
|
||||||
|
- viewport/resize ;
|
||||||
|
- lifecycle ;
|
||||||
|
- runtime provenance ;
|
||||||
|
- assets ;
|
||||||
|
- logging ;
|
||||||
|
- WASM bridge ;
|
||||||
|
- Tauri bridge ;
|
||||||
|
- Android packaging ;
|
||||||
|
- multi-ABI.
|
||||||
|
|
||||||
|
### Sizing
|
||||||
|
|
||||||
|
Le forecast ci-dessous est une hypothèse.
|
||||||
|
|
||||||
|
`pre.1` doit explicitement :
|
||||||
|
|
||||||
|
- le confirmer ou le corriger ;
|
||||||
|
- fusionner les tranches trop petites ;
|
||||||
|
- scinder les tranches trop lourdes ;
|
||||||
|
- reporter ce qui ne tient pas dans `0.3.0` ;
|
||||||
|
- vérifier que `0.3.0` peut être terminé dans une seule session.
|
||||||
|
|
||||||
|
Si ce n'est pas réaliste, réduire immédiatement le scope de `0.3.0`.
|
||||||
|
|
||||||
|
## Forecast souple de `0.3.0`
|
||||||
|
|
||||||
|
### `0-pre.1` — audit / brainstorming / requirements / sizing
|
||||||
|
|
||||||
|
Objectif :
|
||||||
|
|
||||||
|
- audit de la baseline ;
|
||||||
|
- requirements ;
|
||||||
|
- graphe de dépendances ;
|
||||||
|
- choix du premier POC ;
|
||||||
|
- forecast corrigé ;
|
||||||
|
- commandes prévues ;
|
||||||
|
- critères de sortie.
|
||||||
|
|
||||||
|
Pas de gros développement avant fermeture de ce cadrage.
|
||||||
|
|
||||||
|
### `0-pre.2` — Snake portability baseline
|
||||||
|
|
||||||
|
Objectif candidat :
|
||||||
|
|
||||||
|
- corriger les dépendances trop spécifiques à un launcher ;
|
||||||
|
- stabiliser les semantic actions ;
|
||||||
|
- vérifier gameplay vs platform input ;
|
||||||
|
- préparer plusieurs hosts ;
|
||||||
|
- ne pas ajouter de logique Uroburas.
|
||||||
|
|
||||||
|
Validation candidate :
|
||||||
|
|
||||||
|
- tests ciblés Snake ;
|
||||||
|
- Desktop SDL toujours fonctionnel ;
|
||||||
|
- dependency audit ciblé.
|
||||||
|
|
||||||
|
### `0-pre.3` — adapters/capabilities minimaux
|
||||||
|
|
||||||
|
Objectif candidat :
|
||||||
|
|
||||||
|
- extraire uniquement ce que le premier POC prouve nécessaire ;
|
||||||
|
- éviter duplication bridge/frontend ;
|
||||||
|
- préparer input/resize/lifecycle/runtime provenance ;
|
||||||
|
- documenter les duplications provisoires.
|
||||||
|
|
||||||
|
Cette tranche peut être fusionnée avec `pre.2`.
|
||||||
|
|
||||||
|
### `0-pre.4` — premier POC de bout en bout
|
||||||
|
|
||||||
|
Préférence initiale :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Tauri Android + Snake
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternative si `pre.1` la juge plus rationnelle :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Web navigateur direct + Snake
|
||||||
|
```
|
||||||
|
|
||||||
|
Le POC doit couvrir :
|
||||||
|
|
||||||
|
- build avec outil natif ;
|
||||||
|
- lancement ;
|
||||||
|
- rendu ;
|
||||||
|
- contrôles ;
|
||||||
|
- resize/orientation selon host ;
|
||||||
|
- lifecycle ;
|
||||||
|
- logging ;
|
||||||
|
- assets ;
|
||||||
|
- runtime provenance.
|
||||||
|
|
||||||
|
Compiler seul ne suffit pas.
|
||||||
|
|
||||||
|
### `0-pre.5` — corrections/généralisation issues du POC
|
||||||
|
|
||||||
|
Créer seulement si le POC révèle un besoin réel :
|
||||||
|
|
||||||
|
- supprimer duplication avérée ;
|
||||||
|
- corriger frontières mal placées ;
|
||||||
|
- ajouter tests nécessaires ;
|
||||||
|
- documenter ce qui reste spécifique.
|
||||||
|
|
||||||
|
### `1-alpha.1` — intégration éventuelle
|
||||||
|
|
||||||
|
À utiliser seulement si le volume de code nouveau justifie une phase distincte.
|
||||||
|
|
||||||
|
Objectif :
|
||||||
|
|
||||||
|
- stabiliser interfaces Snake/capabilities/host ;
|
||||||
|
- fermer les défauts structurels ;
|
||||||
|
- aucun nouveau scope.
|
||||||
|
|
||||||
|
Sinon, ne pas créer cette tranche artificiellement.
|
||||||
|
|
||||||
|
### `2-beta.1` — validation large
|
||||||
|
|
||||||
|
Objectif :
|
||||||
|
|
||||||
|
- feature-complete pour le scope réel de `0.3.0` ;
|
||||||
|
- builds/tests applicables ;
|
||||||
|
- smoke du POC ;
|
||||||
|
- documentation des commandes ;
|
||||||
|
- vérification qu'aucune abstraction spéculative n'a été ajoutée.
|
||||||
|
|
||||||
|
### `3-rc.1` — candidate
|
||||||
|
|
||||||
|
Scope gelé.
|
||||||
|
|
||||||
|
Autorisé :
|
||||||
|
|
||||||
|
- bugfix ;
|
||||||
|
- tests ;
|
||||||
|
- documentation ;
|
||||||
|
- packaging ;
|
||||||
|
- compatibilité.
|
||||||
|
|
||||||
|
Interdit :
|
||||||
|
|
||||||
|
- nouveau POC ;
|
||||||
|
- nouvelle capability non nécessaire ;
|
||||||
|
- changement d'objectif.
|
||||||
|
|
||||||
|
### `0.3.0`
|
||||||
|
|
||||||
|
Release mécanique après validation RC.
|
||||||
|
|
||||||
|
## Forecast initial de la série `0.3.x`
|
||||||
|
|
||||||
|
Ce forecast est indicatif et doit évoluer avec les résultats.
|
||||||
|
|
||||||
|
### `0.3.0` — baseline POC + premier host
|
||||||
|
|
||||||
|
- nettoyer la sonde Snake ;
|
||||||
|
- éprouver une première composition multiplateforme ;
|
||||||
|
- premier POC de bout en bout.
|
||||||
|
|
||||||
|
### `0.3.1` — second host Snake
|
||||||
|
|
||||||
|
Candidat :
|
||||||
|
|
||||||
|
- Web direct si Tauri Android a été fait en `0.3.0` ;
|
||||||
|
- Tauri Android si Web direct a été fait en `0.3.0`.
|
||||||
|
|
||||||
|
But : vérifier que les abstractions du premier POC ne sont pas sur-spécialisées.
|
||||||
|
|
||||||
|
### `0.3.2` — Tauri Desktop + Snake / factorisation WebView
|
||||||
|
|
||||||
|
- éprouver la réutilisation bridge/frontend ;
|
||||||
|
- factoriser uniquement ce que les POC justifient.
|
||||||
|
|
||||||
|
### `0.3.3` — Android multi-ABI natif
|
||||||
|
|
||||||
|
- Cargo/Gradle réels ;
|
||||||
|
- ARM64 ;
|
||||||
|
- x86_64 ;
|
||||||
|
- Debug/Release selon scope ;
|
||||||
|
- procédures reproductibles ;
|
||||||
|
- aucun script Python de build.
|
||||||
|
|
||||||
|
### `0.3.4` — realtime transport API + WebSocket baseline
|
||||||
|
|
||||||
|
- API de transport indépendante ;
|
||||||
|
- `tokio-tungstenite` baseline ;
|
||||||
|
- codec/protocol/session séparés ;
|
||||||
|
- harness de test ;
|
||||||
|
- aucun serveur Uroburas Mode 3.
|
||||||
|
|
||||||
|
### `0.3.5` — WebTransport/QUIC POC
|
||||||
|
|
||||||
|
- implémentation candidate ;
|
||||||
|
- fallback WebSocket ;
|
||||||
|
- même protocole ;
|
||||||
|
- comparaison charge/latence/mémoire/backpressure/reconnect ;
|
||||||
|
- décision conserver/report/rejeter.
|
||||||
|
|
||||||
|
### `0.3.6` — consolidation POC
|
||||||
|
|
||||||
|
- réconcilier résultats plateforme/réseau ;
|
||||||
|
- promouvoir décisions validées ;
|
||||||
|
- retirer les abstractions non justifiées ;
|
||||||
|
- préparer la baseline `0.4.x`.
|
||||||
|
|
||||||
|
La numérotation `0.3.1+` n'est pas contractuelle.
|
||||||
|
|
||||||
|
Une version peut être fusionnée, scindée, reportée ou supprimée.
|
||||||
|
|
||||||
|
## Dépendances entre versions
|
||||||
|
|
||||||
|
Ne pas commencer un POC parce qu'il figure dans le forecast.
|
||||||
|
|
||||||
|
Avant ouverture :
|
||||||
|
|
||||||
|
- version précédente validée ;
|
||||||
|
- abstractions produites comprises ;
|
||||||
|
- nouvelle question technique encore ouverte ;
|
||||||
|
- environnement réel disponible.
|
||||||
|
|
||||||
|
Windows/macOS/iOS SDL ne sont ouverts qu'avec un environnement permettant une validation réelle.
|
||||||
|
|
||||||
|
## POC réseau
|
||||||
|
|
||||||
|
Architecture à préserver :
|
||||||
|
|
||||||
|
```text
|
||||||
|
realtime transport
|
||||||
|
↓
|
||||||
|
wire codec
|
||||||
|
↓
|
||||||
|
session protocol
|
||||||
|
↓
|
||||||
|
sync/reconnect
|
||||||
|
↓
|
||||||
|
consumer
|
||||||
|
```
|
||||||
|
|
||||||
|
Candidats :
|
||||||
|
|
||||||
|
```text
|
||||||
|
WebSocket
|
||||||
|
tokio-tungstenite
|
||||||
|
|
||||||
|
WebTransport
|
||||||
|
QUIC
|
||||||
|
```
|
||||||
|
|
||||||
|
WebSocket reste baseline/fallback.
|
||||||
|
|
||||||
|
WebTransport n'est conservé que si les mesures justifient sa complexité.
|
||||||
|
|
||||||
|
Mesures candidates :
|
||||||
|
|
||||||
|
- connexions concurrentes ;
|
||||||
|
- mémoire/connexion ;
|
||||||
|
- CPU ;
|
||||||
|
- messages/s ;
|
||||||
|
- bytes/s ;
|
||||||
|
- p50/p95/p99 ;
|
||||||
|
- backpressure ;
|
||||||
|
- perte réseau ;
|
||||||
|
- reconnect ;
|
||||||
|
- changement réseau ;
|
||||||
|
- snapshots/deltas.
|
||||||
|
|
||||||
|
## Web / serveur / auto-hébergement
|
||||||
|
|
||||||
|
Références :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Tokio
|
||||||
|
Actix Web
|
||||||
|
Maud
|
||||||
|
Fluent / fluent-bundle
|
||||||
|
Lettre
|
||||||
|
```
|
||||||
|
|
||||||
|
Tonic/gRPC reste conditionnel aux besoins server-to-server.
|
||||||
|
|
||||||
|
Asset delivery :
|
||||||
|
|
||||||
|
```text
|
||||||
|
self-hosted
|
||||||
|
HTTP/2 baseline
|
||||||
|
HTTP/3/QUIC candidat
|
||||||
|
```
|
||||||
|
|
||||||
|
Debian Stable reste la cible opérationnelle préférée.
|
||||||
|
|
||||||
|
Ne pas figer HAProxy, nginx ou autre edge sans POC et vérification de maturité/disponibilité sur Debian Stable.
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
Appliquer les gates proportionnelles au scope.
|
||||||
|
|
||||||
|
Toujours distinguer :
|
||||||
|
|
||||||
|
- validations exécutées ;
|
||||||
|
- validations à exécuter par l'utilisateur ;
|
||||||
|
- validations impossibles dans l'environnement courant.
|
||||||
|
|
||||||
|
Les commandes doivent être copiables depuis le delta.
|
||||||
|
|
||||||
|
Préférer les validations ciblées pendant les tranches ; réserver les gates larges aux frontières beta/RC.
|
||||||
|
|
||||||
|
## Livraison
|
||||||
|
|
||||||
|
Chaque tranche produit :
|
||||||
|
|
||||||
```text
|
```text
|
||||||
games-sasedev-<semver>-delta.zip
|
games-sasedev-<semver>-delta.zip
|
||||||
```
|
```
|
||||||
|
|
||||||
Les deltas précédents ne sont jamais enrichis sémantiquement.
|
Les deltas sont immuables.
|
||||||
|
|
||||||
Une erreur dans une tranche livrée se corrige par `.fix.N`.
|
Une correction s'effectue via `.fix.N`.
|
||||||
|
|
||||||
## Condition de fin de session
|
Les changements réels incrémentent les en-têtes `version`.
|
||||||
|
|
||||||
La session se termine lorsque la version ciblée par le sizing de `pre.1` est entièrement développée, validée et livrée, avec :
|
## Discipline de session
|
||||||
|
|
||||||
- deltas ;
|
Le forecast sert à estimer et ordonner, pas à imposer des prereleases inutiles.
|
||||||
- validations ;
|
|
||||||
- documentation durable mise à jour ;
|
|
||||||
- ROADMAP/CHANGELOG selon le stade ;
|
|
||||||
- prompt suivant si la version clôt une session majeure.
|
|
||||||
|
|
||||||
Ne pas interrompre volontairement une version au milieu de son scope.
|
Une version doit être terminée dans une seule session.
|
||||||
|
|
||||||
|
Si un objectif devient trop gros :
|
||||||
|
|
||||||
|
- fermer proprement le scope courant ;
|
||||||
|
- reporter explicitement le reste ;
|
||||||
|
- ouvrir une version suivante.
|
||||||
|
|
||||||
|
## Condition de fin de `0.3.0`
|
||||||
|
|
||||||
|
`0.3.0` est terminée lorsque :
|
||||||
|
|
||||||
|
- le scope corrigé en `pre.1` est intégralement livré ;
|
||||||
|
- le premier POC choisi fonctionne réellement sur son host ;
|
||||||
|
- les builds utilisent les outils natifs ;
|
||||||
|
- Snake reste séparé des adapters ;
|
||||||
|
- les abstractions extraites sont justifiées ;
|
||||||
|
- tests/gates applicables validés ;
|
||||||
|
- documentation durable à jour ;
|
||||||
|
- ROADMAP/CHANGELOG mis à jour selon le stade ;
|
||||||
|
- version suivante préparée à partir des résultats réels.
|
||||||
|
|||||||
Reference in New Issue
Block a user