Baz00k@
Ikona CompileHelper
Systém / vývoj

CompileHelper

0.1.0.0

Grafické rozhraní pro sestavování Python aplikací do samostatných Windows EXE pomocí PyInstalleru. Pomáhá vybrat projekt, entry point, ikonu, build profil a další parametry bez ručního skládání dlouhých příkazů.

Co projekt řeší

Grafické rozhraní pro sestavování Python aplikací do samostatných Windows EXE pomocí PyInstalleru. Pomáhá vybrat projekt, entry point, ikonu, build profil a další parametry bez ručního skládání dlouhých příkazů.

Jak aplikace funguje a k čemu slouží

Přehled aplikace

CompileHelper řeší opakovatelný build workflow napříč větším počtem app. Hlavní hodnota je sjednocení parametrů kompilace, snížení ručního přepisování příkazů, centralizace logů a lepší release disciplína.

  • Orchestrace: výběr jedné nebo více app z discovery seznamu.
  • Konzistence: profile-driven build režimy (onefile/onedir, console/noconsole).
  • Diagnostika: živý log, incidentní triáž, reprodukovatelné nastavení.
  • Audit: možnost standardizovat release artefakty a QA záznamy.

Co aplikace řeší (a co ne)

Co řeší

  • Dávkovou kompilaci více Python app do EXE.
  • Vizuální přehled kandidátů nalezených přes README discovery.
  • Parametrizaci PyInstaller běhů z jednoho místa.
  • Opakovatelnost buildů přes persistované nastavení.

Co není cílem

  • Plnohodnotný CI server (GitHub Actions/Jenkins nenahrazuje).
  • Automatické code signing a release upload.
  • Cross-platform packaging orchestrace pro všechny OS varianty.

UI Layout a operátorské ovládání

  • Seznam aplikací: tabulka nalezených kandidátů (multiselect).
  • Build přepínače: onefile, noconsole, clean, volitelné bundly.
  • Output panel: volba cílového adresáře a naming policy.
  • Log panel: real-time build výstup s diagnostickými signály.
  • Ovládací tlačítka: Compile, Compile All, Refresh, Stop.
  • Status row: aktivní app, krok pipeline, elapsed a výsledek.

Výstupy, struktura artifactů a naming

ArtifactDoporučený patternPoznámka
EXE outputJednoznačná identifikace buildu.
Build logArchivace pro diagnostiku.
Batch summaryStav všech app v dávce.
Incident noteForenzní stopa při failu.

Troubleshooting (operátorský playbook)

SymptomPravděpodobná příčinaDoporučené řešení
PyInstaller command failNeaktivní env nebo chybějící balíkAktivuj env, ověř instalaci, opakuj.
EXE padá hned po startuMissing plugin/importZapni console build, doplň hidden-import.
Qt UI bez ikon/assetůChybí add-dataPřidej asset bundling do build profilu/.spec.
Build extrémně dlouhýClean mode + velký dependency setVypni clean, optimalizuj profil.
Antivirus blokuje EXEHeuristika AVPřidej výjimku build složky nebo signování.
Batch fail na jedné appSpecifická závislost appIzoluj app a buildni samostatně.
Output přepsánNesprávná naming politikaZapni safe overwrite + timestamp suffix.
Neúplná discovery tabulkaREADME pattern mismatchZkontroluj naming snapshotů.

Recepty (provozní scénáře)

RECEPT 03 — Řešení missing module incidentu

  1. Přepni build na console + clean.
  2. Zachyť přesný ModuleNotFoundError.
  3. Doplň hidden import do profilu/.spec.
  4. Opakuj build a potvrď runtime stabilitu.

FAQ Extended (Q01–Q50)

  1. Q01: Můžu buildit více app najednou? Ano, přes multiselect a batch dispatch.
  2. Q02: Je lepší onefile nebo onedir? Pro diagnostiku a stabilitu začni onedir.
  3. Q03: Proč mám missing module až v EXE? Dynamický import nebyl zahrnut, přidej hidden-import.
  4. Q04: Kdy zapínat clean build? Při cache regresi nebo po větší změně závislostí.
  5. Q05: Co dělat při failu jedné app v dávce? Izolovat app a spustit debug build.
  6. Q06: Jak kontrolovat kvalitu release? QA matrix + smoke run na čistém stroji.
  7. Q07: Je compilehelper CI náhrada? Ne, je to lokální orchestrátor.
  8. Q08: Kam ukládat build logy? Do timestampované release složky.
  9. Q09: Co když discovery nenačte appku? Ověř naming README snapshotu.
  10. Q10: Jak zabránit přepsání outputu? Safe overwrite + timestamp suffix.
  11. Q11: Proč noconsole build padá bez logu? Nejprve buildni s console.
  12. Q12: Lze profilovat build časy? Ano, ukládej elapsed metadata.
  13. Q13: Co s AV false-positive? Přidej výjimku nebo code signing workflow.
  14. Q14: Musím testovat na čistém stroji? Ano, aspoň smoke validace.
  15. Q15: Kdy použít .spec? U komplexních app s custom packaging pravidly.
  16. Q16: Jak přibalit assets? Přes add-data nebo .spec datas sekci.
  17. Q17: Co s Qt pluginy? Zkontroluj přítomnost platforms/imageformats.
  18. Q18: Jak auditovat batch run? Build summary + incident list.
  19. Q19: Co je minimální release bundle? EXE + log + summary + notes.
  20. Q20: Lze mít profile per-app? Ano, doporučený režim.
  21. Q21: Jak poznat, že env je „čisté“? Žádné náhodné globální package interference.
  22. Q22: Co když output dir není dostupný? Build abort + jasná hláška.
  23. Q23: Jak řešit dlouhé build časy? Omez clean, zmenši dependency scope.
  24. Q24: Je možné build zastavit? Ano, ale loguj partial state dávky.
  25. Q25: Jak řešit neúplný artifact? Ověř pass/fail status a filesystem errors.
  26. Q26: Proč někdy funguje jen onedir? Onefile může mít jiný runtime behavior.
  27. Q27: Jak držet konzistenci mezi releasy? Lock profil + lock env + lock naming.
  28. Q28: Lze skipnout fail app a pokračovat? Ano, batch summary to musí zaznamenat.
  29. Q29: Co evidovat u incidentu? App, error, krok, mitigace, reprodukce.
  30. Q30: Jak ověřit output kvalitu? Smoke + quick functional sanity.
  31. Q31: Jaké klíče configu jsou kritické? output_dir, profile toggles, safety flags.
  32. Q32: Co když config parse fail? Fallback default + upozornění.
  33. Q33: Jak validovat entrypoint mapování? Existence souboru + spustitelnost.
  34. Q34: Jak řešit chyby jen v release režimu? Přepnout na console debug variantu.
  35. Q35: Má smysl onefile pro interní QA? Obvykle ne, raději onedir.
  36. Q36: Co když build obsahuje moc balíků? Revize import stromu a env hygieny.
  37. Q37: Jak trackovat regresi? Srovnávej elapsed + fail patterns mezi verzemi.
  38. Q38: Co dělat při náhodném failu? Re-run v čistém env + incident note.
  39. Q39: Lze použít compilehelper pro nightly? Ano, pokud máš externí scheduler.
  40. Q40: Jak předejít lidským chybám? Používej checklisty a předpřipravené profily.
  41. Q41: Kde evidovat release rozhodnutí? V release note šabloně.
  42. Q42: Jaké minimum testu po buildu? App start + základní UI workflow.
  43. Q43: Jak ošetřit rozpad pluginů po update Qt? Rebuild + plugin audit.
  44. Q44: Jak řešit změnu licence závislosti? Zapsat do release compliance poznámky.
  45. Q45: Mám archivovat i fail buildy? Ano, aspoň log + metadata.
  46. Q46: Co je „release ready“? P0 QA pass + artifact smoke + dokumentace.
  47. Q47: Jak řešit rollback? Vrátit předchozí artifact set + potvrdit smoke.
  48. Q48: Je možné mít více output rootů? Ano, dle profilu nebo týmu.
  49. Q49: Jak zabránit driftu profilů? Versionuj config šablony.
  50. Q50: Co je nejlepší další krok po dávce? Uzavřít summary, incidenty a archivaci.