0.1.0-2-beta.1.fix.2
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
// file: Android/game-reflex-poc/build.gradle
|
// file: Android/game-reflex-poc/build.gradle
|
||||||
// version: 18
|
// version: 19
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
@@ -18,7 +18,7 @@ android {
|
|||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 36
|
targetSdk 36
|
||||||
versionCode 1
|
versionCode 1
|
||||||
versionName '0.1.0-2-beta.1.fix.1'
|
versionName '0.1.0-2-beta.1.fix.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: Android/game-snake-poc/build.gradle
|
// file: Android/game-snake-poc/build.gradle
|
||||||
// version: 18
|
// version: 19
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
@@ -18,7 +18,7 @@ android {
|
|||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 36
|
targetSdk 36
|
||||||
versionCode 1
|
versionCode 1
|
||||||
versionName '0.1.0-2-beta.1.fix.1'
|
versionName '0.1.0-2-beta.1.fix.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.1.0-2-beta.1.fix.1"
|
version = "0.1.0-2-beta.1.fix.2"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/games"
|
repository = "https://git.sasedev.com/Sasedev/games"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "game-reflex-poc-tauri",
|
"name": "game-reflex-poc-tauri",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.0-2-beta.1.fix.1",
|
"version": "0.1.0-2-beta.1.fix.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "Reflex POC Tauri",
|
"productName": "Reflex POC Tauri",
|
||||||
"version": "0.1.0-2-beta.1.fix.1",
|
"version": "0.1.0-2-beta.1.fix.2",
|
||||||
"identifier": "com.sasedev.games.reflex.tauri",
|
"identifier": "com.sasedev.games.reflex.tauri",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": {
|
"beforeDevCommand": {
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"script": "python3 ../../../scripts/build_reflex_tauri_wasm.py && npm run build",
|
"script": "python3 ../../../scripts/build_reflex_tauri_wasm.py && npm run build",
|
||||||
"cwd": "."
|
"cwd": "."
|
||||||
},
|
},
|
||||||
"frontendDist": "../../../builds/sasedev-games/game-reflex-poc-tauri/dist"
|
"frontendDist": "../../../../builds/sasedev-games/game-reflex-poc-tauri/dist"
|
||||||
},
|
},
|
||||||
"app": {
|
"app": {
|
||||||
"windows": [
|
"windows": [
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/apps/game-reflex-poc-tauri/vite.config.ts
|
// file: crates/apps/game-reflex-poc-tauri/vite.config.ts
|
||||||
// version: 1
|
// version: 2
|
||||||
|
|
||||||
import { fileURLToPath } from "node:url";
|
import { fileURLToPath } from "node:url";
|
||||||
import { resolve } from "node:path";
|
import { resolve } from "node:path";
|
||||||
@@ -7,10 +7,13 @@ import { defineConfig, normalizePath } from "vite";
|
|||||||
|
|
||||||
const appRoot = fileURLToPath(new URL(".", import.meta.url));
|
const appRoot = fileURLToPath(new URL(".", import.meta.url));
|
||||||
const frontendRoot = normalizePath(resolve(appRoot, "frontend"));
|
const frontendRoot = normalizePath(resolve(appRoot, "frontend"));
|
||||||
const frontendDist = normalizePath(resolve(appRoot, "../../../builds/sasedev-games/game-reflex-poc-tauri/dist"));
|
const externalBuildRoot = normalizePath(resolve(appRoot, "../../../../builds/sasedev-games/game-reflex-poc-tauri"));
|
||||||
|
const frontendDist = normalizePath(resolve(externalBuildRoot, "dist"));
|
||||||
|
const viteCacheDir = normalizePath(resolve(externalBuildRoot, "vite-cache"));
|
||||||
const devHost = process.env.TAURI_DEV_HOST;
|
const devHost = process.env.TAURI_DEV_HOST;
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
cacheDir: viteCacheDir,
|
||||||
clearScreen: false,
|
clearScreen: false,
|
||||||
root: frontendRoot,
|
root: frontendRoot,
|
||||||
publicDir: false,
|
publicDir: false,
|
||||||
|
|||||||
111
deltas/0.1.0/2-beta.1.fix.2.md
Normal file
111
deltas/0.1.0/2-beta.1.fix.2.md
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<!-- file: deltas/0.1.0/2-beta.1.fix.2.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.1.0-2-beta.1.fix.2
|
||||||
|
|
||||||
|
## Base
|
||||||
|
|
||||||
|
Base déclarée : `0.1.0-2-beta.1.fix.1`.
|
||||||
|
|
||||||
|
Le packaging Tauri de `fix.1` passe, mais le chemin de sortie Vite pointe encore dans la racine du dépôt.
|
||||||
|
|
||||||
|
## Défaut
|
||||||
|
|
||||||
|
Depuis :
|
||||||
|
|
||||||
|
```text
|
||||||
|
crates/apps/game-reflex-poc-tauri
|
||||||
|
```
|
||||||
|
|
||||||
|
le chemin :
|
||||||
|
|
||||||
|
```text
|
||||||
|
../../../builds/sasedev-games/game-reflex-poc-tauri/dist
|
||||||
|
```
|
||||||
|
|
||||||
|
résout vers :
|
||||||
|
|
||||||
|
```text
|
||||||
|
sasedev-games/builds/sasedev-games/game-reflex-poc-tauri/dist
|
||||||
|
```
|
||||||
|
|
||||||
|
et fait apparaître un répertoire généré `builds/` dans le dépôt.
|
||||||
|
|
||||||
|
## Correctif
|
||||||
|
|
||||||
|
Vite utilise désormais :
|
||||||
|
|
||||||
|
```text
|
||||||
|
../../../../builds/sasedev-games/game-reflex-poc-tauri
|
||||||
|
```
|
||||||
|
|
||||||
|
avec :
|
||||||
|
|
||||||
|
```text
|
||||||
|
dist/
|
||||||
|
vite-cache/
|
||||||
|
```
|
||||||
|
|
||||||
|
`tauri.conf.json` utilise le même `dist/` externe.
|
||||||
|
|
||||||
|
Cette règle est cohérente avec `.cargo/config.toml`, qui place déjà Cargo sous :
|
||||||
|
|
||||||
|
```text
|
||||||
|
../builds/sasedev-games/target
|
||||||
|
```
|
||||||
|
|
||||||
|
## Audit
|
||||||
|
|
||||||
|
`scripts/audit_distribution_layout.py` rejette désormais explicitement :
|
||||||
|
|
||||||
|
```text
|
||||||
|
./builds
|
||||||
|
```
|
||||||
|
|
||||||
|
à la racine du dépôt.
|
||||||
|
|
||||||
|
## Nettoyage local unique
|
||||||
|
|
||||||
|
Si l'ancien répertoire généré existe encore :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm -rf builds
|
||||||
|
```
|
||||||
|
|
||||||
|
Cette suppression vise uniquement l'ancien artefact de build créé sous la racine du dépôt.
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
```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 deltas history
|
||||||
|
python3 scripts/audit_distribution_layout.py
|
||||||
|
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd crates/apps/game-reflex-poc-tauri
|
||||||
|
cargo tauri build
|
||||||
|
cd ../../..
|
||||||
|
```
|
||||||
|
|
||||||
|
Attendu côté Vite : le chemin affiché doit viser le répertoire frère `../builds/sasedev-games/game-reflex-poc-tauri/dist`, jamais `sasedev-games/builds/...`.
|
||||||
|
|
||||||
|
## Vérification
|
||||||
|
|
||||||
|
```bash
|
||||||
|
test ! -e builds
|
||||||
|
test -d ../builds/sasedev-games/game-reflex-poc-tauri/dist
|
||||||
|
test -d ../builds/sasedev-games/target
|
||||||
|
```
|
||||||
|
|
||||||
|
## Transition
|
||||||
|
|
||||||
|
Si ces gates passent, reprendre la matrice beta restante sur `0.1.0-2-beta.1.fix.2`.
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/development/008-WASM_TAURI_POC.md -->
|
<!-- file: docs/development/008-WASM_TAURI_POC.md -->
|
||||||
<!-- version: 4 -->
|
<!-- version: 5 -->
|
||||||
|
|
||||||
# POC WebAssembly embarqué dans Tauri
|
# POC WebAssembly embarqué dans Tauri
|
||||||
|
|
||||||
@@ -169,3 +169,25 @@ keydown Escape
|
|||||||
```
|
```
|
||||||
|
|
||||||
Une future politique de pause/confirmation pourra retourner `Continue` sans modifier le bridge Tauri.
|
Une future politique de pause/confirmation pourra retourner `Continue` sans modifier le bridge Tauri.
|
||||||
|
|
||||||
|
## Répertoire de build externe
|
||||||
|
|
||||||
|
Comme Cargo via `.cargo/config.toml`, Tauri/Vite ne doivent créer aucun répertoire de build dans `sasedev-games`.
|
||||||
|
|
||||||
|
Depuis `crates/apps/game-reflex-poc-tauri`, le root de build Vite résout désormais :
|
||||||
|
|
||||||
|
```text
|
||||||
|
../../../../builds/sasedev-games/game-reflex-poc-tauri/
|
||||||
|
```
|
||||||
|
|
||||||
|
soit, depuis la racine du dépôt :
|
||||||
|
|
||||||
|
```text
|
||||||
|
../builds/sasedev-games/game-reflex-poc-tauri/
|
||||||
|
├── dist/
|
||||||
|
└── vite-cache/
|
||||||
|
```
|
||||||
|
|
||||||
|
`tauri.conf.json` référence le même `dist/` externe.
|
||||||
|
|
||||||
|
La racine du dépôt ne doit jamais contenir `builds/`.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/rules/RULES_PROJECT.md -->
|
<!-- file: docs/rules/RULES_PROJECT.md -->
|
||||||
<!-- version: 7 -->
|
<!-- version: 8 -->
|
||||||
|
|
||||||
# Règles spécifiques games.sasedev
|
# Règles spécifiques games.sasedev
|
||||||
|
|
||||||
@@ -70,3 +70,5 @@
|
|||||||
|
|
||||||
- **GAME-PLATFORM-012** — Le plugin tracing Tauri ne remplace pas l'initialisation du subscriber Rust ; une app Tauri initialise le runtime de logging partagé avant son premier événement `tracing`.
|
- **GAME-PLATFORM-012** — Le plugin tracing Tauri ne remplace pas l'initialisation du subscriber Rust ; une app Tauri initialise le runtime de logging partagé avant son premier événement `tracing`.
|
||||||
- **GAME-PLATFORM-013** — Les demandes de sortie Tauri sont évaluées par la politique `EngineGame::quit_requested` avant toute fermeture native.
|
- **GAME-PLATFORM-013** — Les demandes de sortie Tauri sont évaluées par la politique `EngineGame::quit_requested` avant toute fermeture native.
|
||||||
|
|
||||||
|
- **GAME-BUILD-001** — Les artefacts générés Cargo, Tauri, Vite et caches frontend sont placés hors de la racine du dépôt, sous `../builds/sasedev-games/`; un répertoire racine `builds/` dans le dépôt est interdit.
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ import pathlib
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
FORBIDDEN_PATHS = (
|
||||||
|
"builds",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
REQUIRED_PATHS = (
|
REQUIRED_PATHS = (
|
||||||
"crates/apps/game-reflex-poc-desktop/Cargo.toml",
|
"crates/apps/game-reflex-poc-desktop/Cargo.toml",
|
||||||
"crates/apps/game-snake-poc-desktop/Cargo.toml",
|
"crates/apps/game-snake-poc-desktop/Cargo.toml",
|
||||||
@@ -42,15 +47,24 @@ def main() -> int:
|
|||||||
arguments = parser.parse_args()
|
arguments = parser.parse_args()
|
||||||
root = pathlib.Path(arguments.root).resolve()
|
root = pathlib.Path(arguments.root).resolve()
|
||||||
missing: list[str] = []
|
missing: list[str] = []
|
||||||
|
forbidden_present: list[str] = []
|
||||||
for relative in REQUIRED_PATHS:
|
for relative in REQUIRED_PATHS:
|
||||||
if not (root / relative).exists():
|
if not (root / relative).exists():
|
||||||
missing.append(relative)
|
missing.append(relative)
|
||||||
|
for relative in FORBIDDEN_PATHS:
|
||||||
|
if (root / relative).exists():
|
||||||
|
forbidden_present.append(relative)
|
||||||
if missing:
|
if missing:
|
||||||
for relative in missing:
|
for relative in missing:
|
||||||
print(f"DIST-LAYOUT-001: missing required path: {relative}", file=sys.stderr)
|
print(f"DIST-LAYOUT-001: missing required path: {relative}", file=sys.stderr)
|
||||||
print(f"Distribution layout audit: {len(missing)} violation(s)", file=sys.stderr)
|
print(f"Distribution layout audit: {len(missing)} violation(s)", file=sys.stderr)
|
||||||
return 1
|
return 1
|
||||||
print(f"Distribution layout audit: clean ({len(REQUIRED_PATHS)} required path(s))")
|
if forbidden_present:
|
||||||
|
for relative in forbidden_present:
|
||||||
|
print(f"DIST-LAYOUT-002: generated path must stay outside repository: {relative}", file=sys.stderr)
|
||||||
|
print(f"Distribution layout audit: {len(forbidden_present)} violation(s)", file=sys.stderr)
|
||||||
|
return 1
|
||||||
|
print(f"Distribution layout audit: clean ({len(REQUIRED_PATHS)} required path(s), {len(FORBIDDEN_PATHS)} forbidden path(s) absent)")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user