docs
La seule condition est un Docker Desktop en marche. Rien n'est installé sur la machine : pas de Go, pas de compilateurs, pas d'outils d'empaquetage.
git clone https://github.com/Vitalii-Yemets/holdtotype cd holdtotype .\build.ps1 # modèle small, environ 466 Mo .\build.ps1 -Model medium # plus précis, plus gros
Le résultat arrive dans 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
Compilation croisée MinGW-w64 de whisper.cpp et llama.cpp dans un conteneur Linux, le client Go avec cgo pour la capture du micro, génération des icônes, empaquetage de l'installateur. Tout est dans build/Dockerfile. Les deux moteurs sont figés sur des versions précises, donc les builds restent reproductibles.
Tout tourne aussi dans des conteneurs, rien à installer :
docker build --file build/Dockerfile --target gotest . # tests unitaires Go et go vet, cible 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 page des réglages dans jsdom
client/internal/... — tests unitaires des parties qui portent la logique : comparaison de versions, doublons de raccourcis, règles par application, remplacements, commandes vocales, historique, chaînes de prompts, analyse du son, hachages de fichiers et le fichier des listes.test/ui.test.js — la vraie page des réglages rendue dans jsdom : changement de section, la matrice de traduction, l'éditeur de prompts, règles, remplacements, commandes, historique, suppression de modèles, l'assistant du premier lancement, et aucune erreur JavaScript.test/locales.test.js — chacune des huit langues porte chaque chaîne que la page et le programme demandent.test/setup.test.js — la page de l'installateur : les étapes, le choix du modèle, les options silencieuses.client/internal/theme — chaque design garde son propre visage, ses coins, ses repères de niveau et ses voyants.Puis lancez votre propre build au lieu de celui téléchargé. C'est le même programme, fait des mêmes sources.