0.3.1-0-pre.2.fix.2
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# file: scripts/audit_distribution_layout.py
|
||||
# version: 9
|
||||
# version: 10
|
||||
|
||||
"""Audit the static distribution layout expected by supported POCs."""
|
||||
|
||||
@@ -34,7 +34,6 @@ REQUIRED_PATHS = (
|
||||
"crates/apps/game-snake-poc-tauri/README.md",
|
||||
"crates/apps/game-snake-poc-tauri/USAGE.md",
|
||||
"crates/apps/game-snake-poc-tauri/package.json",
|
||||
"crates/apps/game-snake-poc-tauri/scripts/prepare-android-gradle.mjs",
|
||||
"crates/apps/game-snake-poc-tauri/tsconfig.json",
|
||||
"crates/apps/game-snake-poc-tauri/vite.config.ts",
|
||||
"crates/apps/game-snake-poc-tauri/tauri.conf.json",
|
||||
@@ -157,11 +156,10 @@ def audit_snake_tauri_android_integration(root: pathlib.Path) -> list[str]:
|
||||
tauri_path = root / "crates/apps/game-snake-poc-tauri/tauri.conf.json"
|
||||
tauri_rust_path = root / "crates/apps/game-snake-poc-tauri/src/tauri.rs"
|
||||
build_script_path = root / "crates/apps/game-snake-poc-tauri/build.rs"
|
||||
gradle_prepare_path = root / "crates/apps/game-snake-poc-tauri/scripts/prepare-android-gradle.mjs"
|
||||
frontend_path = root / "crates/apps/game-snake-poc-tauri/frontend/ts/main.ts"
|
||||
logging_path = root / "crates/apps/game-snake-poc-tauri/frontend/ts/logging.ts"
|
||||
wasm_runtime_path = root / "crates/apps/game-snake-poc-wasm/src/runtime.rs"
|
||||
paths = (cargo_path, package_path, tauri_path, tauri_rust_path, build_script_path, gradle_prepare_path, frontend_path, logging_path, wasm_runtime_path)
|
||||
paths = (cargo_path, package_path, tauri_path, tauri_rust_path, build_script_path, frontend_path, logging_path, wasm_runtime_path)
|
||||
if not all(path.exists() for path in paths):
|
||||
return violations
|
||||
|
||||
@@ -170,7 +168,6 @@ def audit_snake_tauri_android_integration(root: pathlib.Path) -> list[str]:
|
||||
tauri = tauri_path.read_text(encoding="utf-8")
|
||||
tauri_rust = tauri_rust_path.read_text(encoding="utf-8")
|
||||
build_script = build_script_path.read_text(encoding="utf-8")
|
||||
gradle_prepare = gradle_prepare_path.read_text(encoding="utf-8")
|
||||
frontend = frontend_path.read_text(encoding="utf-8")
|
||||
logging = logging_path.read_text(encoding="utf-8")
|
||||
wasm_runtime = wasm_runtime_path.read_text(encoding="utf-8")
|
||||
@@ -179,14 +176,9 @@ def audit_snake_tauri_android_integration(root: pathlib.Path) -> list[str]:
|
||||
(cargo, 'tauri-plugin-tracing.workspace = true', "DIST-LAYOUT-022: Snake Tauri host must enable the tracing plugin"),
|
||||
(package, '"wasm:dev": "cargo build -p game-snake-poc-wasm', "DIST-LAYOUT-023: Snake Tauri dev hook must build the shared Snake WASM adapter"),
|
||||
(package, 'wasm-bindgen ../../../../builds/sasedev-games/', "DIST-LAYOUT-024: Snake Tauri bindings must be generated outside the repository"),
|
||||
(package, '"android:prepare": "node scripts/prepare-android-gradle.mjs"', "DIST-LAYOUT-036: Snake Tauri host must prepare the generated Android Gradle project through its native Node hook"),
|
||||
(package, '"dev": "npm run android:prepare && npm run wasm:dev && vite"', "DIST-LAYOUT-037: Snake Tauri dev hook must prepare Gradle before WASM/Vite"),
|
||||
(package, '"build": "npm run android:prepare && npm run wasm:build && tsc && vite build"', "DIST-LAYOUT-038: Snake Tauri build hook must prepare Gradle before WASM/Vite"),
|
||||
(gradle_prepare, 'const GRADLE_VERSION = "9.6.1";', "DIST-LAYOUT-039: Snake Tauri Android preparation must pin the reviewed Gradle 9 version"),
|
||||
(gradle_prepare, 'const AGP_VERSION = "9.3.1";', "DIST-LAYOUT-040: Snake Tauri Android preparation must pin the reviewed AGP version"),
|
||||
(gradle_prepare, 'const KOTLIN_VERSION = "2.2.10";', "DIST-LAYOUT-041: Snake Tauri Android preparation must pin the reviewed Kotlin plugin version"),
|
||||
(gradle_prepare, 'org.gradle.process.ExecOperations', "DIST-LAYOUT-042: Snake Tauri Gradle 9 preparation must migrate removed Project.exec usage"),
|
||||
(build_script, 'val implementation = configurations.getByName', "DIST-LAYOUT-043: Snake Tauri build script must repair the tauri-build Gradle bridge for Gradle 9"),
|
||||
(package, '"dev": "npm run wasm:dev && vite"', "DIST-LAYOUT-036: Snake Tauri dev hook must leave Android generation to Tauri"),
|
||||
(package, '"build": "npm run wasm:build && tsc && vite build"', "DIST-LAYOUT-037: Snake Tauri build hook must leave Android generation to Tauri"),
|
||||
(build_script, "tauri_build::build();", "DIST-LAYOUT-038: Snake Tauri build script must delegate Android integration to tauri-build"),
|
||||
(tauri, '"script": "npm run dev"', "DIST-LAYOUT-025: Tauri must own the frontend development hook"),
|
||||
(tauri, '"script": "npm run build"', "DIST-LAYOUT-026: Tauri must own the frontend production hook"),
|
||||
(tauri_rust, '#[tauri::mobile_entry_point]', "DIST-LAYOUT-027: Snake Tauri run entry point must support Tauri mobile"),
|
||||
@@ -201,6 +193,8 @@ def audit_snake_tauri_android_integration(root: pathlib.Path) -> list[str]:
|
||||
violations.append(message)
|
||||
forbidden_fragments = (
|
||||
(package, "python", "DIST-LAYOUT-033: Snake Tauri build hooks must not use Python"),
|
||||
(package, "android:prepare", "DIST-LAYOUT-039: Snake Tauri build hooks must not patch generated Android Gradle files"),
|
||||
(build_script, "gen/android", "DIST-LAYOUT-040: Snake Tauri build script must not mutate generated Android Gradle files"),
|
||||
(tauri, "python", "DIST-LAYOUT-034: Snake Tauri configuration must not use Python build orchestration"),
|
||||
(frontend, "console.", "DIST-LAYOUT-035: Snake Tauri application frontend must not log directly through console.*"),
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
# file: scripts/audit_project_workspace_rules.py
|
||||
# version: 6
|
||||
# version: 7
|
||||
|
||||
"""Audit mechanically verifiable games.sasedev workspace boundaries."""
|
||||
|
||||
@@ -15,6 +15,13 @@ import tomllib
|
||||
SEMVER = re.compile(r"^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-(?:0-pre|1-alpha|2-beta|3-rc)\.[1-9][0-9]*(?:\.fix\.[1-9][0-9]*)?)?$", re.ASCII)
|
||||
|
||||
|
||||
def is_generated_path(path: pathlib.Path, root: pathlib.Path) -> bool:
|
||||
"""Return whether a path belongs to an ignored generated tree."""
|
||||
|
||||
relative = path.relative_to(root)
|
||||
return "gen" in relative.parts
|
||||
|
||||
|
||||
def main() -> int:
|
||||
"""Run project-specific workspace audits."""
|
||||
|
||||
@@ -86,10 +93,14 @@ def main() -> int:
|
||||
errors.append(
|
||||
f"DOC-011: documentary directory entry point must use 000-README.md: {readme_path.relative_to(root).as_posix()}"
|
||||
)
|
||||
forbidden_assets = [path for path in (root / "crates").rglob("assets") if path.is_dir()]
|
||||
forbidden_assets = [
|
||||
path for path in (root / "crates").rglob("assets") if path.is_dir() and not is_generated_path(path, root)
|
||||
]
|
||||
for path in forbidden_assets:
|
||||
errors.append(f"GAME-ASSET-001: assets directory forbidden inside crates: {path.relative_to(root).as_posix()}")
|
||||
for java_path in sorted(root.rglob("*.java")):
|
||||
if is_generated_path(java_path, root):
|
||||
continue
|
||||
if not java_path.is_relative_to(root / "Android"):
|
||||
errors.append(f"GAME-ANDROID-001: Java source outside Android/: {java_path.relative_to(root).as_posix()}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user