documentazione
L'unico requisito è un Docker Desktop in esecuzione. Sulla macchina non si installa nulla: né Go, né compilatori, né strumenti di pacchettizzazione.
git clone https://github.com/Vitalii-Yemets/holdtotype cd holdtotype .\build.ps1 # modello small, circa 466 MB .\build.ps1 -Model medium # più preciso, più grande
Il risultato finisce in dist/:
holdtotype.exetray client: Go, WinAPI, WebView2
whisper-server.exerecognition, whisper.cpp, static build
sherpa-server.exerecognition, sherpa-onnx, official static build, pinned and checksum-verified
sherpa-online-server.exestreaming recognition, sherpa-onnx, from the same pinned archive
llama-server.exethe editor model for post-processing, llama.cpp
models/the model you chose at build time
config.default.jsondefault settings
Compilazione incrociata MinGW-w64 di whisper.cpp e llama.cpp dentro un container Linux, il client Go con cgo per la cattura del microfono, generazione delle icone, pacchettizzazione dell'installer. È tutto in build/Dockerfile. Entrambi i motori sono fissati a versioni precise, così le build restano riproducibili.
Anche tutto questo gira in container, niente da installare:
docker build --file build/Dockerfile --target gotest . # test unitari Go e go vet, destinazione Windows docker run --rm -v "${PWD}:/w" -w /w node:20 sh -c "node test/build-page.js && cd test && npm i --no-save --silent jsdom && node ui.test.js" # la pagina delle impostazioni in jsdom
client/internal/... — test unitari delle parti che portano la logica: confronto di versioni, scorciatoie duplicate, regole per applicazione, sostituzioni, comandi vocali, cronologia, catene di prompt, analisi del suono, hash dei file e il file degli elenchi.test/ui.test.js — la vera pagina delle impostazioni resa in jsdom: cambio di sezione, la matrice di traduzione, l'editor dei prompt, regole, sostituzioni, comandi, cronologia, eliminazione dei modelli, la procedura guidata al primo avvio, e nessun errore JavaScript.test/locales.test.js — ognuna delle otto lingue contiene ogni stringa che la pagina e il programma richiedono.test/setup.test.js — la pagina dell'installer: i passi, la scelta del modello, le opzioni silenziose.client/internal/theme — ogni design mantiene il proprio volto, angoli, tacche di livello e spie.Poi esegui la tua build invece di quella scaricata. È lo stesso programma, fatto dagli stessi sorgenti.