From 999f47092d68e45b3306110a507ab89ecb7bc917 Mon Sep 17 00:00:00 2001 From: "Adriano (daitarn)" Date: Fri, 6 Nov 2026 11:54:59 +0100 Subject: [PATCH] sviluppo.ps1 scrive vision-engine-version.txt, gitignore (#109) Co-Authored-By: Claude Sonnet 5.5 --- .gitignore | 3 +++ packaging/windows/sviluppo.ps1 | 22 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 4301c01..527572a 100644 --- a/.gitignore +++ b/.gitignore @@ -76,3 +76,6 @@ docker-compose.override.yml # Generato da packaging/windows/build.ps1 (TieMeasureFlow#82): moduli-strumento dagli entry point packaging/windows/_strumenti.py + +# #109: scritto da packaging/windows/sviluppo.ps1 (sha del submodule), non va versionato +/vision-engine-version.txt diff --git a/packaging/windows/sviluppo.ps1 b/packaging/windows/sviluppo.ps1 index df96d83..094b6cc 100644 --- a/packaging/windows/sviluppo.ps1 +++ b/packaging/windows/sviluppo.ps1 @@ -4,14 +4,15 @@ Nuitka (che richiede ~20 minuti): stessi quattro server e stesse porte dell'exe 8000 backend, 8100 visione, 8765 camera), stessa cartella dati %PROGRAMDATA%\Tielogic\TieMeasureFlow. Prima dell'avvio: ambiente Python 3.13 in build\venv313 (uv sync, solo con -Sincronizza o se manca), tailwind.css e traduzioni .mo ricompilati, DLL di WeasyPrint in build\gtk (scaricate con -pdf\prendi-gtk.ps1 se mancano). +pdf\prendi-gtk.ps1 se mancano). Scrive vision-engine-version.txt nella radice (sha del submodule +vendor/visionsuite) se git c'e'; senza git e senza il file si ferma con un errore chiaro (#109). Come si usa (dalla radice del repo): powershell -ExecutionPolicy Bypass -File packaging\windows\sviluppo.ps1 [-Sincronizza] [-Ascolto 0.0.0.0] [-EscludiCamere OECS] Dopo una modifica: Ctrl+C e rilancio (pochi secondi). Template e JS non richiedono altro; classi Tailwind nuove e msgid nuovi vengono ricompilati a ogni avvio. -Dipende da: uv, npx (Node), la licenza tiemeasureflow di QUESTA macchina in +Dipende da: uv, npx (Node), git (opzionale: senza, serve vision-engine-version.txt gia' nella radice), la licenza tiemeasureflow di QUESTA macchina in %PROGRAMDATA%\Tielogic\licenze\tiemeasureflow.json (impronta: avvio.py --impronta). #> param( @@ -47,6 +48,23 @@ if (-not (Test-Path (Join-Path $gtk '*.dll'))) { } $env:WEASYPRINT_DLL_DIRECTORIES = $gtk +# #109: il worker di visione rifiuta ogni job senza VISION_ENGINE_VERSION, che avvio.py legge da +# ision-engine-version.txt (come nel pacchetto, build.ps1). Da sorgente lo scrive questo script. +$versione = Join-Path $radice 'vision-engine-version.txt' +$shaMotore = $null +if (Get-Command git -ErrorAction SilentlyContinue) { + $shaMotore = (git -C (Join-Path $radice 'vendor isionsuite') rev-parse HEAD 2>$null) + if ($LASTEXITCODE -ne 0) { $shaMotore = $null } +} +if ($shaMotore) { + # 40 caratteri ASCII, UTF8 senza BOM e senza a capo (avvio.py fa .strip(), che non toglie il BOM) + [System.IO.File]::WriteAllText($versione, $shaMotore.Trim(), (New-Object System.Text.UTF8Encoding $false)) +} elseif (Test-Path $versione) { + Write-Host "git non disponibile: uso $versione = $((Get-Content -Raw $versione).Trim())" +} else { + throw "Manca vision-engine-version.txt e git non puo' leggere vendor isionsuite. Rimedio: crea l'archivio con 'uv run python scripts/archivio_sorgente.py --out tmf.zip' da un clone con git, oppure scrivi in $versione lo sha del submodule (40 caratteri, ASCII, senza BOM e senza a capo)." +} + if ($EscludiCamere) { $env:VS_CAMERA_ESCLUDI = $EscludiCamere } # #339: stesso percorso camera del PC fiera Set-Location $radice & $py (Join-Path $PSScriptRoot 'avvio.py') --senza-browser --senza-finestre --host $Ascolto # errori in console, niente MessageBox